import { type AttachmentInput } from './attachments';
export type SendMailInput = {
    to: string | string[];
    subject: string;
    text: string;
    html?: string;
    from?: {
        address?: string;
        name?: string;
    };
    attachments?: AttachmentInput[];
};
export type SendMailResult = {
    ok: boolean;
    driver: 'sendgrid' | 'disabled' | 'smtp' | 'ses' | 'mailgun' | 'nodemailer';
    messageId?: string;
};
export interface RenderMailInput {
    template: string;
    variables?: Record<string, unknown>;
}
export declare const Mail: Readonly<{
    /**
     * Render a template with variables and return HTML (preview only).
     */
    render(input: RenderMailInput): Promise<string>;
    /** Alias of render */
    view(input: RenderMailInput): Promise<string>;
    /**
     * Select a named mailer (key from mailConfig.drivers).
     *
     * Example: `Mail.mailer('transactional').send(...)`
     */
    mailer(name: string): Readonly<{
        send: (input: SendMailInput) => Promise<SendMailResult>;
    }>;
    send(input: SendMailInput): Promise<SendMailResult>;
}>;
export default Mail;
//# sourceMappingURL=index.d.ts.map