/**
 * SmartLead MCP Server - Email Account Management Client
 *
 * Client module for email account management API endpoints.
 * Handles all email account-related operations including creation, updates, warmup settings, and health metrics.
 *
 * @author LeadMagic Team
 * @version 1.5.0
 */
import { BaseSmartLeadClient } from '../../client/base.js';
import type { SuccessResponse } from '../../types.js';
export interface EmailAccountRequest {
    email: string;
    password: string;
    smtp_host: string;
    smtp_port: number;
    imap_host: string;
    imap_port: number;
    name?: string;
}
export interface UpdateEmailAccountRequest {
    name?: string;
    settings?: Record<string, unknown>;
    status?: 'active' | 'inactive' | 'warmup';
}
export interface WarmupSettings {
    email_account_id: number;
    emails_per_day?: number;
    warmup_reputation?: boolean;
    ramp_up_increment?: number;
    reply_rate_percentage?: number;
}
export interface EmailAccountHealthParams {
    start_date?: string;
    end_date?: string;
    metrics?: string[];
}
export interface BulkUpdateEmailAccountRequest {
    email_account_ids: number[];
    settings?: Record<string, unknown>;
    status?: 'active' | 'inactive' | 'warmup';
}
export interface SendingLimitsRequest {
    daily_limit?: number;
    monthly_limit?: number;
    per_hour_limit?: number;
    warmup_limit?: number;
}
/**
 * Email Account Management Client
 *
 * Provides methods for managing SmartLead email accounts including:
 * - Creating and updating email accounts
 * - Managing warmup settings and status
 * - Health metrics and monitoring
 * - Campaign assignment and management
 */
export declare class EmailAccountManagementClient extends BaseSmartLeadClient {
    /**
     * List Email Accounts Per Campaign
     * GET /campaigns/{campaign_id}/email-accounts
     */
    listEmailAccountsPerCampaign(campaignId: number): Promise<SuccessResponse>;
    /**
     * Add Email Account To Campaign
     * POST /campaigns/{campaign_id}/email-accounts
     */
    addEmailAccountToCampaign(campaignId: number, params: {
        email_account_id: number;
    }): Promise<SuccessResponse>;
    /**
     * Remove Email Account From Campaign
     * DELETE /campaigns/{campaign_id}/email-accounts/{email_account_id}
     */
    removeEmailAccountFromCampaign(campaignId: number, emailAccountId: number): Promise<SuccessResponse>;
    /**
     * Get All Email Accounts
     * GET /email-accounts
     */
    getAllEmailAccounts(): Promise<SuccessResponse>;
    /**
     * Create Email Account
     * POST /email-accounts
     */
    createEmailAccount(params: EmailAccountRequest): Promise<SuccessResponse>;
    /**
     * Update Email Account
     * POST /email-accounts/{email_account_id}
     */
    updateEmailAccount(emailAccountId: number, params: UpdateEmailAccountRequest): Promise<SuccessResponse>;
    /**
     * Get Email Account By ID
     * GET /email-accounts/{email_account_id}
     */
    getEmailAccountById(emailAccountId: number): Promise<SuccessResponse>;
    /**
     * Start Email Account Warmup
     * POST /email-accounts/{email_account_id}/warmup
     */
    startEmailAccountWarmup(emailAccountId: number, params: WarmupSettings): Promise<SuccessResponse>;
    /**
     * Reconnect Failed Email Accounts
     * POST /email-accounts/reconnect
     */
    reconnectFailedEmailAccounts(params: {
        email_account_ids: number[];
    }): Promise<SuccessResponse>;
    /**
     * Update Email Account Tag
     * POST /email-accounts/{email_account_id}/tag
     */
    updateEmailAccountTag(emailAccountId: number, params: {
        tag: string;
    }): Promise<SuccessResponse>;
    /**
     * Test email account connection
     */
    testEmailAccountConnection(accountId: number): Promise<SuccessResponse>;
    /**
     * Get email account warmup status
     */
    getEmailAccountWarmupStatus(accountId: number): Promise<SuccessResponse>;
    /**
     * Update email account warmup settings
     */
    updateEmailAccountWarmupSettings(accountId: number, params: WarmupSettings): Promise<SuccessResponse>;
    /**
     * Get email account health metrics
     */
    getEmailAccountHealthMetrics(accountId: number, params?: EmailAccountHealthParams): Promise<SuccessResponse>;
    /**
     * Assign email accounts to campaign
     */
    assignEmailAccountsToCampaign(campaignId: number, accountIds: number[]): Promise<SuccessResponse>;
    /**
     * Remove email accounts from campaign
     */
    removeEmailAccountsFromCampaign(campaignId: number, accountIds: number[]): Promise<SuccessResponse>;
    /**
     * Update email account warmup
     */
    updateEmailAccountWarmup(emailAccountId: number, params: {
        warmup_enabled: boolean;
        warmup_reputation?: number;
        daily_ramp_up?: number;
        reply_rate_percentage?: number;
    }): Promise<SuccessResponse>;
    /**
     * Get campaign email accounts
     */
    getCampaignEmailAccounts(campaignId: number): Promise<SuccessResponse>;
    /**
     * Bulk update email account settings
     */
    bulkUpdateEmailAccountSettings(params: BulkUpdateEmailAccountRequest): Promise<SuccessResponse>;
    /**
     * Get email account sending limits
     */
    getEmailAccountSendingLimits(accountId: number): Promise<SuccessResponse>;
    /**
     * Update email account sending limits
     */
    updateEmailAccountSendingLimits(accountId: number, params: SendingLimitsRequest): Promise<SuccessResponse>;
}
//# sourceMappingURL=client.d.ts.map