/**
 * SmartLead MCP Server - Lead Management Client
 *
 * Client module for lead management API endpoints.
 * Handles all lead-related operations including CRUD operations, status management, and messaging.
 *
 * @author LeadMagic Team
 * @version 1.5.0
 */
import { BaseSmartLeadClient } from '../../client/base.js';
import type { Lead, ListLeadsByCampaignRequest, ReplyToLeadFromMasterInboxRequest, SuccessResponse, UpdateLeadByIdRequest } from '../../types.js';
export interface FetchAllLeadsFromAccountParams {
    limit?: number;
    offset?: number;
    search?: string;
    status?: string;
}
export interface FetchLeadsFromGlobalBlocklistParams {
    limit?: number;
    offset?: number;
}
export interface ForwardReplyRequest {
    forward_to_email: string;
    message?: string;
    include_original?: boolean;
}
/**
 * Lead Management Client
 *
 * Provides methods for managing SmartLead leads including:
 * - Adding and updating leads
 * - Managing lead status and categories
 * - Lead messaging and communication
 * - Global blocklist management
 */
export declare class LeadClient extends BaseSmartLeadClient {
    /**
     * List all leads by campaign ID
     */
    listLeadsByCampaign(campaignId: number, params?: ListLeadsByCampaignRequest): Promise<SuccessResponse>;
    /**
     * Fetch lead categories
     */
    fetchLeadCategories(): Promise<SuccessResponse>;
    /**
     * Fetch lead by email address
     */
    fetchLeadByEmail(email: string): Promise<SuccessResponse>;
    /**
     * Add leads to a campaign by ID
     */
    addLeadsToCampaign(campaignId: number, leads: Lead[]): Promise<SuccessResponse>;
    /**
     * Resume lead by campaign ID
     */
    resumeLeadByCampaign(campaignId: number, leadId: number): Promise<SuccessResponse>;
    /**
     * Pause lead by campaign ID
     */
    pauseLeadByCampaign(campaignId: number, leadId: number): Promise<SuccessResponse>;
    /**
     * Delete lead by campaign ID
     */
    deleteLeadByCampaign(campaignId: number, leadId: number): Promise<SuccessResponse>;
    /**
     * Unsubscribe/Pause lead from campaign
     */
    unsubscribeLeadFromCampaign(campaignId: number, leadId: number): Promise<SuccessResponse>;
    /**
     * Unsubscribe lead from all campaigns
     */
    unsubscribeLeadFromAllCampaigns(leadId: number): Promise<SuccessResponse>;
    /**
     * Add lead/domain to global block list
     */
    addLeadToGlobalBlocklist(email: string): Promise<SuccessResponse>;
    /**
     * Fetch all leads from entire account
     */
    fetchAllLeadsFromAccount(params?: FetchAllLeadsFromAccountParams): Promise<SuccessResponse>;
    /**
     * Fetch leads from global block list
     */
    fetchLeadsFromGlobalBlocklist(params?: FetchLeadsFromGlobalBlocklistParams): Promise<SuccessResponse>;
    /**
     * Update lead using the lead ID
     */
    updateLeadById(leadId: number, leadData: UpdateLeadByIdRequest): Promise<SuccessResponse>;
    /**
     * Update a lead's category based on their campaign
     */
    updateLeadCategory(campaignId: number, leadId: number, category: string): Promise<SuccessResponse>;
    /**
     * Fetch lead message history based on campaign
     */
    fetchLeadMessageHistory(campaignId: number, leadId: number): Promise<SuccessResponse>;
    /**
     * Reply to lead from master inbox via API
     */
    replyToLeadFromMasterInbox(campaignId: number, leadId: number, message: ReplyToLeadFromMasterInboxRequest): Promise<SuccessResponse>;
    /**
     * Forward a reply
     */
    forwardReply(campaignId: number, leadId: number, forwardData: ForwardReplyRequest): Promise<SuccessResponse>;
}
//# sourceMappingURL=client.d.ts.map