start the path to rust

This commit is contained in:
2026-02-10 15:54:09 +00:00
parent 237dba3bab
commit 8bd8c295b0
318 changed files with 28352 additions and 428 deletions

View File

@@ -0,0 +1,54 @@
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[];
}