import type { MailContent, MailData } from "@sendgrid/helpers/classes/mail.js"; import type { ResponseError } from "@sendgrid/mail"; import type { NonEmptyReadonlyArray } from "effect-app/Array"; import * as Context from "effect-app/Context"; import type * as Effect from "effect-app/Effect"; import type { Email } from "effect-app/Schema"; import type * as Redacted from "effect/Redacted"; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0VtYWlsZXIvc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDOUUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDbkQsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUM3RCxPQUFPLEtBQUssT0FBTyxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sS0FBSyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUNoRCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUU5QyxPQUFPLEtBQUssS0FBSyxRQUFRLE1BQU0saUJBQWlCLENBQUE7Ozs7QUFFaEQscUJBQWEsYUFBYyxTQUFRLG1CQUFrQztJQUNuRSxRQUFRLENBQUMsR0FBRyxFQUFFLEtBQUssR0FBRyxhQUFhLENBQUE7Q0FDcEMsQ0FBQztDQUFHOztjQUdPLENBQUMsR0FBRyxFQUFFLG9CQUFvQixLQUFLLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQzs7QUFEN0UscUJBQWEsT0FBUSxTQUFRLFlBRUg7Q0FBRztBQUU3QixNQUFNLE1BQU0sU0FBUyxHQUFHLEtBQUssR0FBRztJQUM5QixJQUFJLENBQUMsRUFBRSxNQUFNLENBQUE7SUFDYixLQUFLLEVBQUUsS0FBSyxDQUFBO0NBQ2IsQ0FBQTtBQUVELE1BQU0sV0FBVyxjQUFjO0lBQzdCLGNBQWMsQ0FBQyxFQUFFLFNBQVMsQ0FBQTtJQUMxQixhQUFhLEVBQUUsTUFBTSxDQUFBO0lBQ3JCLFFBQVEsRUFBRSxPQUFPLENBQUE7SUFDakIsV0FBVyxFQUFFLFNBQVMsQ0FBQTtJQUN0QixNQUFNLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQTtJQUN6Qjs7OztPQUlHO0lBQ0gsZUFBZSxFQUFFLE1BQU0sQ0FBQTtDQUN4QjtBQUNELE1BQU0sTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLEdBQUc7SUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFBO0NBQUUsQ0FBQTtBQUVoRSxNQUFNLE1BQU0sZUFBZSxHQUFHLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUUxRSxNQUFNLE1BQU0sWUFBWSxHQUNwQixJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sR0FBRyxJQUFJLEdBQUcsS0FBSyxHQUFHLElBQUksR0FBRyxTQUFTLENBQUMsR0FDeEQ7SUFDQSxFQUFFLEVBQUUsU0FBUyxHQUFHLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ2hELEVBQUUsQ0FBQyxFQUFFLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNqRCxHQUFHLENBQUMsRUFBRSxTQUFTLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDbEQsSUFBSSxFQUFFLFNBQVMsQ0FBQTtJQUNmOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtDQUNyQixDQUFBO0FBRUgsTUFBTSxNQUFNLFlBQVksR0FBRztJQUFFLElBQUksRUFBRSxNQUFNLENBQUE7Q0FBRSxHQUFHO0lBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQTtDQUFFLEdBQUc7SUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFBO0NBQUUsR0FBRztJQUN4RixPQUFPLEVBQUUscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUE7Q0FDNUMsQ0FBQTtBQUVELE1BQU0sTUFBTSxRQUFRLEdBQ2hCLFlBQVksR0FDWixZQUFZLENBQUE7QUFFaEIsTUFBTSxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUEifQ==