/**
 * SmartLead MCP Server - Main Client
 *
 * Main client that combines all API modules into a single interface.
 * Provides a unified API for accessing all SmartLead functionality.
 *
 * @author LeadMagic Team
 * @version 1.5.0
 */
import { AnalyticsClient } from '../modules/analytics/client.js';
import { CampaignManagementClient } from '../modules/campaigns/client.js';
import { ClientManagementClient } from '../modules/client-management/client.js';
import { EmailAccountManagementClient } from '../modules/email-accounts/client.js';
import { LeadClient } from '../modules/leads/client.js';
import { SmartDeliveryClient } from '../modules/smart-delivery/client.js';
import { SmartSendersClient } from '../modules/smart-senders/client.js';
import { StatisticsClient } from '../modules/statistics/client.js';
import { WebhooksClient } from '../modules/webhooks/client.js';
import type { SmartLeadConfig } from '../types/config.js';
import type { AnalyticsCampaignFollowUpReplyRateRequest, AnalyticsCampaignLeadsTakeForFirstReplyRequest, AnalyticsCampaignLeadToReplyTimeRequest, AnalyticsCampaignListRequest, AnalyticsCampaignOverallStatsRequest, AnalyticsCampaignResponseStatsRequest, AnalyticsCampaignStatusStatsRequest, AnalyticsClientListRequest, AnalyticsClientMonthWiseCountRequest, AnalyticsClientOverallStatsRequest, AnalyticsDayWiseOverallStatsRequest, AnalyticsLeadCategoryWiseResponseRequest, AnalyticsLeadOverallStatsRequest, AnalyticsMailboxDomainWiseHealthMetricsRequest, AnalyticsMailboxNameWiseHealthMetricsRequest, AnalyticsMailboxOverallStatsRequest, AnalyticsMailboxProviderWiseOverallPerformanceRequest, AnalyticsOverallStatsV2Request, AnalyticsTeamBoardOverallStatsRequest, CreateCampaignRequest, EmailSequence, ExportCampaignDataRequest, FetchCampaignAnalyticsByDateRangeRequest, GetCampaignSequenceAnalyticsRequest, GetCampaignsWithAnalyticsRequest, Lead, ListCampaignsRequest, ListLeadsRequest, UpdateCampaignScheduleRequest, UpdateCampaignSettingsRequest, UpdateLeadRequest } from '../types.js';
import { BaseSmartLeadClient } from './base.js';
interface EmailAccountRequest {
    email: string;
    password: string;
    smtp_host: string;
    smtp_port: number;
    imap_host: string;
    imap_port: number;
    name?: string;
}
interface UpdateEmailAccountRequest {
    name?: string;
    settings?: Record<string, unknown>;
    status?: 'active' | 'inactive' | 'warmup';
}
interface WarmupSettings {
    email_account_id: number;
    emails_per_day?: number;
    warmup_reputation?: boolean;
    ramp_up_increment?: number;
    reply_rate_percentage?: number;
}
interface EmailAccountHealthParams {
    start_date?: string;
    end_date?: string;
    metrics?: string[];
}
/**
 * Main SmartLead API Client
 *
 * Unified client that provides access to all SmartLead API functionality
 * through modular sub-clients for different API categories.
 */
export declare class SmartLeadClient extends BaseSmartLeadClient {
    readonly campaigns: CampaignManagementClient;
    readonly leads: LeadClient;
    readonly analytics: AnalyticsClient;
    readonly emailAccounts: EmailAccountManagementClient;
    readonly clientManagement: ClientManagementClient;
    readonly webhooks: WebhooksClient;
    readonly smartDelivery: SmartDeliveryClient;
    readonly statistics: StatisticsClient;
    readonly smartSenders: SmartSendersClient;
    constructor(config: SmartLeadConfig);
    createCampaign(params: CreateCampaignRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    updateCampaignSchedule(campaignId: number, params: UpdateCampaignScheduleRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    updateCampaignSettings(campaignId: number, params: UpdateCampaignSettingsRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    updateCampaignStatus(campaignId: number, status: string): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getCampaign(campaignId: number): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    listCampaigns(params?: ListCampaignsRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    saveCampaignSequence(campaignId: number, sequence: EmailSequence): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getCampaignSequence(campaignId: number): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getCampaignsWithAnalytics(params?: GetCampaignsWithAnalyticsRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    deleteCampaign(campaignId: number): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    exportCampaignData(campaignId: number, params?: ExportCampaignDataRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    fetchCampaignAnalyticsByDateRange(campaignId: number, params: FetchCampaignAnalyticsByDateRangeRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getCampaignSequenceAnalytics(campaignId: number, params?: GetCampaignSequenceAnalyticsRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    fetchAllCampaignsUsingLeadId(leadId: number): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    listLeadsByCampaign(campaignId: number, params?: {
        limit?: number;
        offset?: number;
        search?: string;
        status?: string;
    }): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    fetchLeadCategories(): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    fetchLeadByEmail(email: string): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    addLeadsToCampaign(campaignId: number, leads: Lead[]): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    resumeLeadByCampaign(campaignId: number, leadId: number): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    pauseLeadByCampaign(campaignId: number, leadId: number): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    deleteLeadByCampaign(campaignId: number, leadId: number): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    unsubscribeLeadFromCampaign(campaignId: number, leadId: number): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    unsubscribeLeadFromAllCampaigns(leadId: number): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    addLeadToGlobalBlocklist(email: string): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    fetchAllLeadsFromAccount(params?: ListLeadsRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    fetchLeadsFromGlobalBlocklist(params?: ListLeadsRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    updateLeadById(leadId: number, leadData: UpdateLeadRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    updateLeadCategory(campaignId: number, leadId: number, category: string): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    fetchLeadMessageHistory(campaignId: number, leadId: number): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    replyToLeadFromMasterInbox(campaignId: number, leadId: number, message: {
        subject: string;
        message: string;
    }): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    forwardReply(campaignId: number, leadId: number, forwardData: {
        forward_to: string;
        message?: string;
    }): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getAnalyticsCampaignList(params?: AnalyticsCampaignListRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getAnalyticsClientList(params?: AnalyticsClientListRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getAnalyticsClientMonthWiseCount(params?: AnalyticsClientMonthWiseCountRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getAnalyticsOverallStatsV2(params?: AnalyticsOverallStatsV2Request): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getAnalyticsDayWiseOverallStats(params?: AnalyticsDayWiseOverallStatsRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getAnalyticsDayWisePositiveReplyStats(params?: AnalyticsDayWiseOverallStatsRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getAnalyticsCampaignOverallStats(params?: AnalyticsCampaignOverallStatsRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getAnalyticsClientOverallStats(params?: AnalyticsClientOverallStatsRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getAnalyticsMailboxNameWiseHealthMetrics(params?: AnalyticsMailboxNameWiseHealthMetricsRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getAnalyticsMailboxDomainWiseHealthMetrics(params?: AnalyticsMailboxDomainWiseHealthMetricsRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getAnalyticsMailboxProviderWiseOverallPerformance(params?: AnalyticsMailboxProviderWiseOverallPerformanceRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getAnalyticsTeamBoardOverallStats(params?: AnalyticsTeamBoardOverallStatsRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getAnalyticsLeadOverallStats(params?: AnalyticsLeadOverallStatsRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getAnalyticsLeadCategoryWiseResponse(params?: AnalyticsLeadCategoryWiseResponseRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getAnalyticsCampaignLeadsTakeForFirstReply(params?: AnalyticsCampaignLeadsTakeForFirstReplyRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getAnalyticsCampaignFollowUpReplyRate(params?: AnalyticsCampaignFollowUpReplyRateRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getAnalyticsCampaignLeadToReplyTime(params?: AnalyticsCampaignLeadToReplyTimeRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getAnalyticsCampaignResponseStats(params?: AnalyticsCampaignResponseStatsRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getAnalyticsCampaignStatusStats(params?: AnalyticsCampaignStatusStatsRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getAnalyticsMailboxOverallStats(params?: AnalyticsMailboxOverallStatsRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    addEmailAccount(params: EmailAccountRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getAllEmailAccounts(): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getEmailAccountById(accountId: number): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    updateEmailAccount(accountId: number, params: UpdateEmailAccountRequest): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    deleteEmailAccount(_accountId: number): Promise<void>;
    testEmailAccountConnection(accountId: number): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getEmailAccountWarmupStatus(accountId: number): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    updateEmailAccountWarmupSettings(accountId: number, params: WarmupSettings): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    getEmailAccountHealthMetrics(accountId: number, params?: EmailAccountHealthParams): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    assignEmailAccountsToCampaign(campaignId: number, accountIds: number[]): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    removeEmailAccountsFromCampaign(campaignId: number, accountIds: number[]): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
    listEmailAccountsPerCampaign(campaignId: number): Promise<{
        success: boolean;
        message?: string | undefined;
        data?: unknown;
    }>;
}
export { AnalyticsClient } from '../modules/analytics/client.js';
export { CampaignManagementClient } from '../modules/campaigns/client.js';
export { ClientManagementClient } from '../modules/client-management/client.js';
export { EmailAccountManagementClient } from '../modules/email-accounts/client.js';
export { LeadClient } from '../modules/leads/client.js';
export { SmartDeliveryClient } from '../modules/smart-delivery/client.js';
export { SmartSendersClient } from '../modules/smart-senders/client.js';
export { StatisticsClient } from '../modules/statistics/client.js';
export { WebhooksClient } from '../modules/webhooks/client.js';
export { SmartLeadConfig } from '../types/config.js';
export { BaseSmartLeadClient, SmartLeadError } from './base.js';
//# sourceMappingURL=index.d.ts.map