import { HeyReachConfig, Campaign, Lead, MessageTemplate, CampaignMetrics, SocialAction, ApiResponse, PaginatedResponse, AddLeadsToCampaignParams, SendMessageParams, SocialActionParams, CreateCampaignParams } from './types.js';
export declare class HeyReachClient {
    private client;
    private apiKey;
    constructor(config: HeyReachConfig);
    /**
     * Verify API key is valid
     */
    checkApiKey(): Promise<ApiResponse<boolean>>;
    /**
     * Get all campaigns
     */
    getAllCampaigns(): Promise<PaginatedResponse<Campaign>>;
    /**
     * Get campaign details
     */
    getCampaignDetails(campaignId: string): Promise<ApiResponse<Campaign>>;
    /**
     * Create a new campaign
     */
    createCampaign(params: CreateCampaignParams): Promise<ApiResponse<Campaign>>;
    /**
     * Add leads to campaign
     */
    addLeadsToCampaign(params: AddLeadsToCampaignParams): Promise<ApiResponse<{
        addedCount: number;
    }>>;
    /**
     * Get leads in a campaign
     */
    getCampaignLeads(campaignId: string, page?: number, limit?: number): Promise<PaginatedResponse<Lead>>;
    /**
     * Update lead status
     */
    updateLeadStatus(leadId: string, status: Lead['status']): Promise<ApiResponse<Lead>>;
    /**
     * Send message to lead
     */
    sendMessage(params: SendMessageParams): Promise<ApiResponse<{
        messageId: string;
    }>>;
    /**
     * Get message templates
     */
    getMessageTemplates(): Promise<PaginatedResponse<MessageTemplate>>;
    /**
     * Perform social action
     */
    performSocialAction(params: SocialActionParams): Promise<ApiResponse<SocialAction>>;
    /**
     * Get campaign metrics
     */
    getCampaignMetrics(campaignId: string): Promise<ApiResponse<CampaignMetrics>>;
    /**
     * Pause or resume campaign
     */
    toggleCampaignStatus(campaignId: string, action: 'pause' | 'resume'): Promise<ApiResponse<Campaign>>;
}
