export interface ClientParams { url: string; debug?: boolean; domain?: string; token: string; } interface EmailAddress { address: string; name: string; } interface CcBccItem { email_address: EmailAddress; } interface MimeHeader { [key: string]: string; } interface BasicEmailParams { from: { address: string; name: string; }; subject: string; reply_to?: EmailAddress[]; textbody?: string; htmlbody?: string; cc?: CcBccItem[]; bcc?: CcBccItem[]; track_clicks?: boolean; track_opens?: boolean; client_reference?: string; mime_headers?: MimeHeader; attachments?: Array<{ name: string; mime_type?: string; file_cache_key?: string; content?: string; }>; inline_images?: Array<{ cid: string; mime_type?: string; file_cache_key?: string; content?: string; }>; merge_info?: { [key: string]: string; }; } export interface Sendmail extends BasicEmailParams { to: CcBccItem[]; } export interface SendmailBatch extends BasicEmailParams { to: Array<{ email_address: EmailAddress; merge_info?: { [key: string]: string; }; }>; } interface TemplateBasicParams { from: { address: string; name: string; }; mail_template_key?: string; template_alias?: string; template_key?: string; reply_to?: EmailAddress[]; cc?: CcBccItem[]; bcc?: CcBccItem[]; track_clicks?: boolean; track_opens?: boolean; client_reference?: string; mime_headers?: MimeHeader; merge_info?: { [key: string]: string; }; } export interface TemplateQueryParams extends TemplateBasicParams { to: CcBccItem[]; } export interface TemplateBatchParams extends TemplateBasicParams { to: Array<{ email_address: EmailAddress; merge_info?: { [key: string]: string; }; }>; } export interface SendMailParams { options: Sendmail; } export interface SendBatchMailParams { options: SendmailBatch; } export interface SendTemplateMailParams { options: TemplateQueryParams; } export interface SendTemplateBatchMailParams { options: TemplateBatchParams; } export {};