import type { IEmailDomainConfig } from './interfaces.js'; /** External DcRouter interface shape used by DnsManager */ interface IDcRouterLike { storageManager: IStorageManagerLike; dnsServer?: any; options?: { dnsNsDomains?: string[]; dnsScopes?: string[]; }; } /** External StorageManager interface shape used by DnsManager */ interface IStorageManagerLike { get(key: string): Promise; set(key: string, value: string): Promise; } /** * DNS validation result */ export interface IDnsValidationResult { valid: boolean; errors: string[]; warnings: string[]; requiredChanges: string[]; } /** * Manages DNS configuration for email domains * Handles both validation and creation of DNS records */ export declare class DnsManager { private dcRouter; private storageManager; constructor(dcRouter: IDcRouterLike); /** * Validate all domain configurations */ validateAllDomains(domainConfigs: IEmailDomainConfig[]): Promise>; /** * Validate a single domain configuration */ validateDomain(config: IEmailDomainConfig): Promise; /** * Validate forward mode configuration */ private validateForwardMode; /** * Validate internal DNS mode configuration */ private validateInternalDnsMode; /** * Validate external DNS mode configuration */ private validateExternalDnsMode; /** * Check DNS records for a domain */ private checkDnsRecords; /** * Resolve NS records for a domain */ private resolveNs; /** * Get base domain from email domain (e.g., mail.example.com -> example.com) */ private getBaseDomain; /** * Ensure all DNS records are created for configured domains * This is the main entry point for DNS record management */ ensureDnsRecords(domainConfigs: IEmailDomainConfig[], dkimCreator?: any): Promise; /** * Create DNS records for internal-dns mode domains */ private createInternalDnsRecords; /** * Create DKIM DNS records for all domains */ private createDkimRecords; } export {};