import type { ComponentType } from "react";
import type { SendEmailParams } from "../services/email/drivers/types";
interface SendEmailArgs<T> extends Partial<Omit<SendEmailParams, "html">> {
    data: Omit<T, "locale">;
    locale?: string;
}
export declare class Email {
    from: string;
    to: any[];
    subject: string | Record<string, string>;
    cc: any[];
    bcc: any[];
    attachments: any[];
    template: ComponentType<any>;
    headers: Record<string, string>;
    static send<T extends Email>(this: new () => T, args: SendEmailArgs<T["template"] extends (p: infer P) => any ? P : never>): Promise<void>;
    static preview<T extends Email>(this: new () => T, args: Pick<SendEmailArgs<T["template"] extends (p: infer P) => any ? P : never>, "data" | "locale">): Promise<string>;
    protected render<T extends Record<string, any>>(props: T): Promise<string>;
    protected renderText<T extends Record<string, any>>(props: T): Promise<string>;
}
export {};
//# sourceMappingURL=Email.d.ts.map