import type { EmailProcessingMode } from '../delivery/interfaces.js'; export type { EmailProcessingMode }; /** * Domain rule interface for pattern-based routing */ export interface IDomainRule { pattern: string; mode: EmailProcessingMode; target?: { server: string; port?: number; useTls?: boolean; authentication?: { user?: string; pass?: string; }; }; mtaOptions?: IMtaOptions; contentScanning?: boolean; scanners?: IContentScanner[]; transformations?: ITransformation[]; rateLimits?: { maxMessagesPerMinute?: number; maxRecipientsPerMessage?: number; }; } /** * MTA options interface */ export interface IMtaOptions { domain?: string; allowLocalDelivery?: boolean; localDeliveryPath?: string; dkimSign?: boolean; dkimOptions?: { domainName: string; keySelector: string; privateKey?: string; }; smtpBanner?: string; maxConnections?: number; connTimeout?: number; spoolDir?: string; } /** * Content scanner interface */ export interface IContentScanner { type: 'spam' | 'virus' | 'attachment'; threshold?: number; action: 'tag' | 'reject'; blockedExtensions?: string[]; } /** * Transformation interface */ export interface ITransformation { type: string; header?: string; value?: string; domains?: string[]; append?: boolean; [key: string]: any; }