import type { MailContent, MailData } from "@sendgrid/helpers/classes/mail.js"; import type { ResponseError } from "@sendgrid/mail"; import { Context, type Effect, type NonEmptyReadonlyArray, type Redacted } from "effect-app"; import type { Email } from "effect-app/Schema"; 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 | ResponseError; }> { } 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 SendgridConfig { defaultReplyTo?: EmailData; subjectPrefix: string; realMail: boolean; defaultFrom: EmailData; apiKey: Redacted.Redacted; /** * Email address used for fake/test recipients. Use `{i}` as a placeholder for an auto-incrementing index to ensure uniqueness. * * @example "test+{i}@example.com" */ fakeMailAddress: string; } export type EmailTemplateMsg = MailData & { templateId: string; }; export type EmailRecipients = EmailData | NonEmptyReadonlyArray; export type EmailMsgBase = Omit & { to: EmailData | NonEmptyReadonlyArray; cc?: EmailData | NonEmptyReadonlyArray; bcc?: EmailData | NonEmptyReadonlyArray; from: EmailData; /** * should multiple `to` addresess be considered multiple emails? * defaults to `true`, not to leak email addresses */ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0VtYWlsZXIvc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDOUUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBUSxLQUFLLE1BQU0sRUFBRSxLQUFLLHFCQUFxQixFQUFFLEtBQUssUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2xHLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFBOzs7O0FBRTlDLHFCQUFhLGFBQWMsU0FBUSxtQkFBa0M7SUFDbkUsUUFBUSxDQUFDLEdBQUcsRUFBRSxLQUFLLEdBQUcsYUFBYSxDQUFBO0NBQ3BDLENBQUM7Q0FBRzs7Y0FHTyxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUM7O0FBRDdFLHFCQUFhLE9BQVEsU0FBUSxZQUVIO0NBQUc7QUFFN0IsTUFBTSxNQUFNLFNBQVMsR0FBRyxLQUFLLEdBQUc7SUFDOUIsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFBO0lBQ2IsS0FBSyxFQUFFLEtBQUssQ0FBQTtDQUNiLENBQUE7QUFFRCxNQUFNLFdBQVcsY0FBYztJQUM3QixjQUFjLENBQUMsRUFBRSxTQUFTLENBQUE7SUFDMUIsYUFBYSxFQUFFLE1BQU0sQ0FBQTtJQUNyQixRQUFRLEVBQUUsT0FBTyxDQUFBO0lBQ2pCLFdBQVcsRUFBRSxTQUFTLENBQUE7SUFDdEIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDakM7Ozs7T0FJRztJQUNILGVBQWUsRUFBRSxNQUFNLENBQUE7Q0FDeEI7QUFDRCxNQUFNLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxHQUFHO0lBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQTtDQUFFLENBQUE7QUFFaEUsTUFBTSxNQUFNLGVBQWUsR0FBRyxTQUFTLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUE7QUFFMUUsTUFBTSxNQUFNLFlBQVksR0FDcEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEdBQUcsSUFBSSxHQUFHLEtBQUssR0FBRyxJQUFJLEdBQUcsU0FBUyxDQUFDLEdBQ3hEO0lBQ0EsRUFBRSxFQUFFLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNoRCxFQUFFLENBQUMsRUFBRSxTQUFTLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDakQsR0FBRyxDQUFDLEVBQUUsU0FBUyxHQUFHLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ2xELElBQUksRUFBRSxTQUFTLENBQUE7SUFDZjs7O09BR0c7SUFDSCxVQUFVLENBQUMsRUFBRSxPQUFPLENBQUE7Q0FDckIsQ0FBQTtBQUVILE1BQU0sTUFBTSxZQUFZLEdBQUc7SUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFBO0NBQUUsR0FBRztJQUFFLElBQUksRUFBRSxNQUFNLENBQUE7Q0FBRSxHQUFHO0lBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQTtDQUFFLEdBQUc7SUFDeEYsT0FBTyxFQUFFLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFBO0NBQzVDLENBQUE7QUFFRCxNQUFNLE1BQU0sUUFBUSxHQUNoQixZQUFZLEdBQ1osWUFBWSxDQUFBO0FBRWhCLE1BQU0sTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsWUFBWSxDQUFBIn0=