import { type Transporter } from 'nodemailer';
import type { MessengerAdapter, MessageContext } from '../../../core/types.js';
interface SmtpConfig {
    host: string;
    port: number;
    secure: boolean;
    user: string;
    pass: string;
    from: string;
}
export declare class EmailAdapter implements MessengerAdapter {
    readonly name = "email";
    private transporter;
    private config;
    private started;
    start(): Promise<void>;
    stop(): Promise<void>;
    onMessage(_handler: (ctx: MessageContext) => Promise<void>): void;
    /**
     * Send the message body to the email address in `threadId`. Subject is
     * derived from the first line (capped at 100 chars). When SMTP isn't
     * configured we throw a clear "not configured" error so the reminder
     * engine writes it as the failure reason.
     */
    sendMessage(threadId: string, text: string): Promise<void>;
    /** Test/inspection hook — used by unit tests to verify env reading. */
    getEffectiveConfig(): SmtpConfig | null;
    /** Test hook — inject a mocked transporter to bypass SMTP. */
    _setTransporterForTest(t: Transporter, cfg: SmtpConfig): void;
}
export declare const emailAdapter: EmailAdapter;
export {};
//# sourceMappingURL=email-adapter.d.ts.map