import { Event, type Resolver } from "../hook/event.js";
import { Hook } from "../hook/hook.js";
export type Address = {
    Name?: string;
    Address: string;
};
export type Message = {
    From: Address;
    To: Address[];
    Bcc: Address[];
    Cc: Address[];
    Subject: string;
    HTML: string;
    Text: string;
    Headers?: Record<string, string>;
    Attachments?: Record<string, unknown>;
    InlineAttachments?: Record<string, unknown>;
};
export interface Mailer {
    Send(message: Message): Error | null | Promise<Error | null | void> | void;
}
export interface SendInterceptor {
    OnSend(): Hook<SendEvent>;
}
export declare class SendEvent extends Event implements Resolver {
    Message: Message;
    constructor(message: Message);
}
export declare function newSendHook(): Hook<SendEvent>;
export declare function addressesToStrings(addresses: Address[], withName: boolean): string[];
export declare function detectReaderMimeType(data: unknown): [Uint8Array, string, Error | null];
