import type { Logger } from '@cedarjs/api/logger'; import type { AbstractMailHandler } from './handler.js'; import type { AbstractMailRenderer } from './renderer.js'; export type MailRenderedContent = { html: string; text: string; }; export type MailHandlers = Record; export type MailRenderers = Record; export type MailRendererOptions = { outputFormat?: TRenderOutputFormats; [key: string]: unknown; }; export type DefaultHandlerOptions = { [K in keyof THandlers]?: Parameters[2]; }; export type DefaultRendererOptions = { [K in keyof TRenderers]?: Parameters[1]; }; export type DefaultSendOptions = { attachments: MailAttachment[]; bcc: string[]; cc: string[]; from: string; headers: Record; replyTo: string; }; export type MailHandlersOptions = { handlers: THandlers; default: TDefaultHandler | keyof THandlers; options?: DefaultHandlerOptions; }; export type MailRenderersOptions = { renderers: TRenderers; default: TDefaultRenderer | keyof TRenderers; options?: DefaultRendererOptions; }; export interface ModeHandlerOptions { handler?: TModeHandler | null; when?: boolean | ((...args: any[]) => boolean); } export interface MailerConfig { handling: MailHandlersOptions; rendering: MailRenderersOptions; defaults?: Partial>; development?: ModeHandlerOptions; test?: ModeHandlerOptions; logger?: Logger; } export type MailAddress = string | { name?: string; address: string; }; export interface MailBasicSendOptions { to: MailAddress | MailAddress[]; cc?: MailAddress | MailAddress[]; bcc?: MailAddress | MailAddress[]; from?: MailAddress; replyTo?: MailAddress; subject: string; headers?: Record; attachments?: MailAttachment[]; } export interface MailSendWithoutRenderingOptions extends MailBasicSendOptions { handler?: THandler | keyof THandlers; } export interface MailSendOptions extends MailSendWithoutRenderingOptions { renderer?: TRenderer | keyof TRenderers; } export type MailAttachment = { filename?: string; path?: string; content?: string | Buffer; }; export type MailSendOptionsComplete = { to: string[]; cc: string[]; bcc: string[]; from: string; replyTo?: string; subject: string; headers: Record; attachments: MailAttachment[]; }; export type MailResult = { messageID?: string; handlerInformation?: unknown; }; export type MailUtilities = { logger?: Logger | Console; mode?: MailerMode; handler?: string | number | symbol; handlerOptions?: unknown; renderer?: string | number | symbol; rendererOptions?: unknown; }; export type MailerDefaults = Omit & { from?: string; replyTo?: string; }; export type MailerMode = 'test' | 'development' | 'production'; //# sourceMappingURL=types.d.ts.map