export interface EmailConfig { smtpUser: string; smtpPassword: string; smtpProvider?: string; smtpHost?: string; smtpPort?: number; smtpFromName?: string; useTls?: boolean; useSsl?: boolean; } export interface EmailMessage { to: string | string[]; subject: string; text: string; html?: string; cc?: string | string[]; bcc?: string | string[]; replyTo?: string; headers?: Record; attachments?: Array<{ filename: string; path?: string; content?: Buffer | string; contentType?: string; }>; } export interface EmailResult { success: boolean; messageId?: string; response?: string; error?: string; timestamp: string; bounced?: boolean; bounceReason?: string; permanentFailure?: boolean; } export interface BulkEmailOptions { emails: Array<{ to: string; subject: string; text: string; }>; delayBetweenEmails?: number; maxRetries?: number; stopOnError?: boolean; } export declare class EmailTools { private configDir; private logDir; constructor(); /** * Save SMTP configuration to secret store */ saveConfig(config: EmailConfig): Promise; /** * Load SMTP configuration from secret store */ loadConfig(): Promise; /** * Test SMTP connection with current configuration */ testConnection(): Promise; /** * Send a single email */ sendEmail(message: EmailMessage, fromName?: string): Promise; /** * Send bulk emails with rate limiting */ sendBulkEmails(options: BulkEmailOptions): Promise>; /** * Get email sending statistics */ getStats(): { total: number; successful: number; failed: number; lastSent: string | null; }; /** * List all sent emails */ listSent(limit?: number): Array<{ timestamp: string; to: string; subject: string; success: boolean; messageId?: string; }>; /** * Clear all logs */ clearLogs(): void; /** * Create transporter from configuration */ private createTransporter; /** * Log email sending activity */ private logEmail; /** * Save a non-working email address to the bounce list */ private saveNonWorkingEmail; /** * Get list of non-working emails */ getNonWorkingEmails(): Array<{ email: string; reason: string; permanent: boolean; bounceCount: number; firstBounce: string; lastBounce: string; error?: string; }>; /** * Get list of permanent failures */ getPermanentFailures(): Array<{ email: string; reason: string; timestamp: string; error?: string; }>; /** * Check if an email address is known to be non-working */ isNonWorkingEmail(email: string): boolean; /** * Clear non-working emails list */ clearNonWorkingEmails(): void; } export declare function handleEmailCommand(args: string[]): Promise; //# sourceMappingURL=emailTools.d.ts.map