import type { NonEmptyReadonlyArray } from "./Array.js";
import * as Context from "./Context.js";
import type * as Effect from "./Effect.js";
import type { Email } from "./Schema.js";
declare const SendMailError_base: new = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
readonly _tag: "SendMailError";
} & Readonly;
export declare class SendMailError extends SendMailError_base<{
readonly raw: Error;
}> {
}
declare const Emailer_base: Context.OpaqueClass Effect.Effect;
}>;
export declare class Emailer extends Emailer_base {
}
export type EmailData = Email | {
name?: string;
email: Email;
};
export interface EmailContentPart {
type: string;
value: string;
}
export type EmailRecipients = EmailData | NonEmptyReadonlyArray;
export interface EmailMsgBase {
readonly to: EmailRecipients;
readonly cc?: EmailRecipients;
readonly bcc?: EmailRecipients;
readonly from: EmailData;
readonly replyTo?: EmailData;
readonly subject?: string;
/**
* should multiple `to` addresess be considered multiple emails?
* defaults to `true`, not to leak email addresses
*/
readonly isMultiple?: boolean;
}
export type EmailContent = {
text: string;
} | {
html: string;
} | {
templateId: string;
} | {
content: NonEmptyReadonlyArray;
};
export type EmailMsg = EmailMsgBase & EmailContent;
export type EmailMsgOptionalFrom = Omit & Partial> & EmailContent;
export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW1haWxlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0VtYWlsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdkQsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUE7QUFDdkMsT0FBTyxLQUFLLEtBQUssTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUMxQyxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUE7Ozs7QUFFeEMscUJBQWEsYUFBYyxTQUFRLG1CQUFrQztJQUNuRSxRQUFRLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQTtDQUNwQixDQUFDO0NBQUc7O2NBR08sQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDOztBQUQ3RSxxQkFBYSxPQUFRLFNBQVEsWUFFSDtDQUFHO0FBRTdCLE1BQU0sTUFBTSxTQUFTLEdBQUcsS0FBSyxHQUFHO0lBQzlCLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQTtJQUNiLEtBQUssRUFBRSxLQUFLLENBQUE7Q0FDYixDQUFBO0FBRUQsTUFBTSxXQUFXLGdCQUFnQjtJQUMvQixJQUFJLEVBQUUsTUFBTSxDQUFBO0lBQ1osS0FBSyxFQUFFLE1BQU0sQ0FBQTtDQUNkO0FBRUQsTUFBTSxNQUFNLGVBQWUsR0FBRyxTQUFTLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUE7QUFFMUUsTUFBTSxXQUFXLFlBQVk7SUFDM0IsUUFBUSxDQUFDLEVBQUUsRUFBRSxlQUFlLENBQUE7SUFDNUIsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFLGVBQWUsQ0FBQTtJQUM3QixRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsZUFBZSxDQUFBO0lBQzlCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFBO0lBQ3hCLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTLENBQUE7SUFDNUIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQTtJQUN6Qjs7O09BR0c7SUFDSCxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsT0FBTyxDQUFBO0NBQzlCO0FBRUQsTUFBTSxNQUFNLFlBQVksR0FDcEI7SUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFBO0NBQUUsR0FDaEI7SUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFBO0NBQUUsR0FDaEI7SUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFBO0NBQUUsR0FDdEI7SUFBRSxPQUFPLEVBQUUscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtDQUFFLENBQUE7QUFFeEQsTUFBTSxNQUFNLFFBQVEsR0FDaEIsWUFBWSxHQUNaLFlBQVksQ0FBQTtBQUVoQixNQUFNLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQSJ9