import { HeyReachConfig, Campaign, Lead, ApiResponse, PaginatedResponse, Conversation, OverallStats, LeadList, MyNetworkProfile, LinkedInAccount, CampaignSequence, CampaignSettings, CampaignAnalytics } from './types.js';
export declare class HeyReachClient {
    private client;
    private apiKey;
    constructor(config: HeyReachConfig);
    /**
     * Verify API key is valid - TESTED AND WORKING ✅
     */
    checkApiKey(): Promise<ApiResponse<boolean>>;
    /**
     * Get all campaigns - TESTED AND WORKING ✅
     */
    getAllCampaigns(offset?: number, limit?: number): Promise<PaginatedResponse<Campaign>>;
    /**
     * Get campaign details - FIXED TO USE WORKING ENDPOINT ✅
     */
    getCampaignDetails(campaignId: number): Promise<ApiResponse<Campaign>>;
    /**
     * Pause or resume campaign - TESTED AND WORKING ✅
     */
    toggleCampaignStatus(campaignId: number, action: 'pause' | 'resume'): Promise<ApiResponse<Campaign>>;
    /**
     * Get conversations - NEW WORKING ENDPOINT ✅
     */
    getConversations(filters?: {
        linkedInAccountIds?: number[];
        campaignIds?: number[];
        searchString?: string;
        leadLinkedInId?: string;
        leadProfileUrl?: string;
        seen?: boolean;
    }, offset?: number, limit?: number): Promise<PaginatedResponse<Conversation>>;
    /**
     * Get lead details - NEW WORKING ENDPOINT ✅
     */
    getLeadDetails(profileUrl: string): Promise<ApiResponse<Lead>>;
    /**
     * Get overall stats - NEW WORKING ENDPOINT ✅
     */
    getOverallStats(accountIds?: number[], campaignIds?: number[], startDate?: string, endDate?: string): Promise<ApiResponse<OverallStats>>;
    /**
     * Get all lists - NEW WORKING ENDPOINT ✅
     */
    getAllLists(offset?: number, limit?: number): Promise<PaginatedResponse<LeadList>>;
    /**
     * Create empty list - NEW WORKING ENDPOINT ✅
     */
    createEmptyList(name: string, type?: 'USER_LIST' | 'COMPANY_LIST'): Promise<ApiResponse<LeadList>>;
    /**
     * Get my network for sender - NEW WORKING ENDPOINT ✅
     */
    getMyNetworkForSender(senderId: number, pageNumber?: number, pageSize?: number): Promise<PaginatedResponse<MyNetworkProfile>>;
    /**
     * Add leads to campaign - PRODUCTION-READY IMPLEMENTATION ✅
     * Based on HeyReach API docs with comprehensive validation
     */
    addLeadsToCampaign(campaignId: number, leads: Array<{
        linkedInAccountId?: number | null;
        lead: {
            firstName?: string;
            lastName?: string;
            profileUrl: string;
            location?: string;
            summary?: string;
            companyName?: string;
            position?: string;
            about?: string;
            emailAddress?: string;
            customUserFields?: Array<{
                name: string;
                value: string;
            }>;
        };
    }>): Promise<ApiResponse<{
        addedCount: number;
    }>>;
    /**
     * Get LinkedIn accounts - CRITICAL NEW ENDPOINT ✅
     */
    getLinkedInAccounts(offset?: number, limit?: number): Promise<PaginatedResponse<LinkedInAccount>>;
    /**
     * Create campaign - CRITICAL NEW ENDPOINT ✅
     */
    createCampaign(name: string, listId: number, linkedInAccountIds: number[], sequence: CampaignSequence, settings?: CampaignSettings): Promise<ApiResponse<Campaign>>;
    /**
     * Pause campaign - SEPARATE ENDPOINT ✅
     */
    pauseCampaign(campaignId: number): Promise<ApiResponse<Campaign>>;
    /**
     * Resume campaign - SEPARATE ENDPOINT ✅
     */
    resumeCampaign(campaignId: number): Promise<ApiResponse<Campaign>>;
    /**
     * Remove lead from campaign - NEW ENDPOINT ✅
     */
    removeLeadFromCampaign(campaignId: number, leadId: string): Promise<ApiResponse<{
        removed: boolean;
    }>>;
    /**
     * Get campaign analytics - NEW ENDPOINT ✅
     */
    getCampaignAnalytics(campaignId: number, startDate?: string, endDate?: string): Promise<ApiResponse<CampaignAnalytics>>;
}
