import type { IUnifiedEmailServerOptions } from '@push.rocks/smartmta';
export interface IEmailPortConfig {
    /** External to internal SMTP port mapping. */
    portMapping?: Record<number, number>;
    /** Custom route settings for specific external ports. */
    portSettings?: Record<number, {
        terminateTls?: boolean;
        routeName?: string;
        [key: string]: unknown;
    }>;
    /** Path to store received emails, when configured by the runtime. */
    receivedEmailsPath?: string;
}
export interface IEmailServerSettings {
    enabled: boolean;
    hostname: string | null;
    ports: number[];
    portMapping: Record<number, number> | null;
    receivedEmailsPath: string | null;
    maxMessageSize: number | null;
    domainCount: number;
    routeCount: number;
    authUserCount: number;
    updatedAt: number;
    updatedBy: string;
}
export interface IEmailServerSettingsSeed {
    enabled?: boolean;
    emailConfig?: IUnifiedEmailServerOptions;
    emailPortConfig?: IEmailPortConfig;
}
export type TEmailServerSettingsUpdate = {
    enabled?: boolean;
    hostname?: string | null;
    ports?: number[];
    portMapping?: Record<number, number> | null;
    receivedEmailsPath?: string | null;
    maxMessageSize?: number | null;
};
