import type { IEmailDomainConfig } from './interfaces.js';
/**
 * Registry for email domain configurations
 * Provides fast lookups and validation for domains
 */
export declare class DomainRegistry {
    private domains;
    private defaults;
    constructor(domainConfigs: IEmailDomainConfig[], defaults?: {
        dnsMode?: 'forward' | 'internal-dns' | 'external-dns';
        dkim?: IEmailDomainConfig['dkim'];
        rateLimits?: IEmailDomainConfig['rateLimits'];
    });
    /**
     * Get default DKIM configuration
     */
    private getDefaultDkimConfig;
    /**
     * Apply defaults to a domain configuration
     */
    private applyDefaults;
    /**
     * Check if a domain is registered
     */
    isDomainRegistered(domain: string): boolean;
    /**
     * Check if an email address belongs to a registered domain
     */
    isEmailRegistered(email: string): boolean;
    /**
     * Get domain configuration
     */
    getDomainConfig(domain: string): IEmailDomainConfig | undefined;
    /**
     * Get domain configuration for an email address
     */
    getEmailDomainConfig(email: string): IEmailDomainConfig | undefined;
    /**
     * Extract domain from email address
     */
    private extractDomain;
    /**
     * Get all registered domains
     */
    getAllDomains(): string[];
    /**
     * Get all domain configurations
     */
    getAllConfigs(): IEmailDomainConfig[];
    /**
     * Get domains by DNS mode
     */
    getDomainsByMode(mode: 'forward' | 'internal-dns' | 'external-dns'): IEmailDomainConfig[];
}
