import { MauticConfig, MauticContact, MauticContactsResponse, ListContactsParams, MauticStatsResponse, MauticDataResponse, StatsParams, DataParams, MauticAsset, MauticAssetsResponse, ListAssetsParams, MauticSegment, MauticSegmentsResponse, ListSegmentsParams } from './types.js';
export declare class MauticClient {
    private auth;
    private config;
    constructor(config: MauticConfig);
    private makeRequest;
    listContacts(params?: ListContactsParams): Promise<MauticContactsResponse>;
    createContact(contact: Omit<MauticContact, 'id'>): Promise<{
        contact: MauticContact;
    }>;
    getContact(id: number): Promise<{
        contact: MauticContact;
    }>;
    updateContact(id: number, contact: Partial<MauticContact>): Promise<{
        contact: MauticContact;
    }>;
    deleteContact(id: number): Promise<{
        contact: MauticContact;
    }>;
    getStats(params?: StatsParams): Promise<MauticStatsResponse>;
    getData(params?: DataParams): Promise<MauticDataResponse>;
    getContactActivity(contactId: number, params?: {
        search?: string;
        includeEvents?: string[];
        excludeEvents?: string[];
    }): Promise<any>;
    listAssets(params?: ListAssetsParams): Promise<MauticAssetsResponse>;
    getAsset(id: number): Promise<{
        asset: MauticAsset;
    }>;
    createAsset(asset: Omit<MauticAsset, 'id'>): Promise<{
        asset: MauticAsset;
    }>;
    updateAsset(id: number, asset: Partial<MauticAsset>): Promise<{
        asset: MauticAsset;
    }>;
    deleteAsset(id: number): Promise<{
        asset: MauticAsset;
    }>;
    listSegments(params?: ListSegmentsParams): Promise<MauticSegmentsResponse>;
    getSegment(id: number): Promise<{
        list: MauticSegment;
    }>;
    createSegment(segment: Omit<MauticSegment, 'id'>): Promise<{
        list: MauticSegment;
    }>;
    updateSegment(id: number, segment: Partial<MauticSegment>): Promise<{
        list: MauticSegment;
    }>;
    deleteSegment(id: number): Promise<{
        list: MauticSegment;
    }>;
    addContactToSegment(segmentId: number, contactId: number): Promise<{
        success: boolean;
    }>;
    removeContactFromSegment(segmentId: number, contactId: number): Promise<{
        success: boolean;
    }>;
}
