export type Identifiers = {
    id: string | number;
} | {
    email: string;
};
export type SendEmailRequestRequiredOptions = {
    to: string;
    identifiers: Identifiers;
};
export type SendEmailRequestOptionalOptions = Partial<{
    message_data: Record<string, any>;
    headers: Record<string, any>;
    preheader: string;
    reply_to: string;
    bcc: string;
    plaintext_body: string;
    amp_body: string;
    fake_bcc: boolean;
    disable_message_retention: boolean;
    send_to_unsubscribed: boolean;
    tracked: boolean;
    queue_draft: boolean;
    send_at: number;
    disable_css_preprocessing: boolean;
    language: string;
}>;
export type SendEmailRequestWithTemplate = SendEmailRequestRequiredOptions & SendEmailRequestOptionalOptions & {
    transactional_message_id: string | number;
};
export type SendEmailRequestWithoutTemplate = SendEmailRequestRequiredOptions & SendEmailRequestOptionalOptions & {
    body: string;
    subject: string;
    from: string;
};
export type SendEmailRequestOptions = SendEmailRequestWithTemplate | SendEmailRequestWithoutTemplate;
export type Message = Partial<SendEmailRequestWithTemplate & SendEmailRequestWithoutTemplate> & {
    attachments: Record<string, string>;
};
export declare class SendEmailRequest {
    message: Message;
    constructor(opts: SendEmailRequestOptions);
    attach(name: string, data: any, { encode }?: {
        encode?: boolean | undefined;
    }): void;
}
