Files
smartmta/dist_ts/mail/routing/classes.domain.registry.d.ts

55 lines
1.5 KiB
TypeScript
Raw Normal View History

2026-02-10 15:54:09 +00:00
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[];
}