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<string, string>;
    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<boolean>;
    /**
     * Load SMTP configuration from secret store
     */
    loadConfig(): Promise<EmailConfig | null>;
    /**
     * Test SMTP connection with current configuration
     */
    testConnection(): Promise<EmailResult>;
    /**
     * Send a single email
     */
    sendEmail(message: EmailMessage, fromName?: string): Promise<EmailResult>;
    /**
     * Send bulk emails with rate limiting
     */
    sendBulkEmails(options: BulkEmailOptions): Promise<Array<EmailResult & {
        to: string;
        subject: string;
    }>>;
    /**
     * 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<void>;
//# sourceMappingURL=emailTools.d.ts.map