export interface EmailProviderConfig { resend?: ResendConfig; sendgrid?: SendGridConfig; ses?: SESConfig; postmark?: PostmarkConfig; smtp?: SMTPConfig; } export interface ResendConfig { apiKey: string; baseUrl?: string; } export interface SendGridConfig { apiKey: string; baseUrl?: string; sandboxMode?: boolean; } export interface SESConfig { accessKeyId: string; secretAccessKey: string; region: string; endpoint?: string; } export interface PostmarkConfig { serverToken: string; accountToken?: string; baseUrl?: string; } export interface SMTPConfig { host: string; port: number; secure?: boolean; auth: { user: string; pass: string; }; tls?: { rejectUnauthorized?: boolean; }; } export interface EmailProviderInterface { send(options: any): Promise; sendBatch?(options: any): Promise; getTemplate?(id: string): Promise; validateApiKey?(): Promise; } export interface ProviderResponse { id: string; status: 'success' | 'error'; message?: string; data?: any; } export interface ProviderError { code: string; message: string; statusCode?: number; response?: any; }