import type { IUnifiedEmailServerOptions } from '@push.rocks/smartmta'; import type { IDcRouterOptions } from '../classes.dcrouter.js'; import type { IEmailPortConfig, IEmailServerSettings, TEmailOutboundMode, TEmailServerSettingsUpdate } from '../../dist_ts_interfaces/data/email-settings.js'; export declare class EmailSettingsManager { private options; private cachedEmailConfig?; private cachedEmailPortConfig?; private outboundMode; private enabled; private updatedAt; private updatedBy; constructor(options: IDcRouterOptions); start(): Promise; /** * One-time persisted-data normalization: the legacy bootstrap config carried * a catch-all `default-reject` route (recipients '*' → 550) that outranks * the per-domain inbound catch-all store policy, making every configured * domain send-only. The domain inboundPolicy is the canonical way to reject * inbound mail now, so the legacy route is removed outright. */ private removeLegacyDefaultRejectRoute; stop(): Promise; isEnabled(): boolean; getEmailConfig(): IUnifiedEmailServerOptions | undefined; getEmailPortConfig(): IEmailPortConfig | undefined; getOutboundMode(): TEmailOutboundMode; getPublicSettings(): IEmailServerSettings; updateSettings(updates: TEmailServerSettingsUpdate, updatedBy: string): Promise; private loadFromDoc; private applyToRuntimeOptions; private patchOutboundMode; private normalizeOutboundMode; private patchEmailConfig; /** * Remove persisted legacy routes by exact name — the internal-relay * retirement lever, not a general route editor. Refuses generated managed * route names (those are composed at runtime, never persisted here) and * fails loudly on unknown names instead of silently no-oping. */ private removeRoutesByName; private patchEmailPortConfig; private normalizePorts; private normalizePortMapping; }