export interface ListmonkList {
    id: number;
    uuid: string;
    name: string;
    type: 'public' | 'private' | 'temporary';
    optin: 'single' | 'double';
    tags: string[];
    subscriber_count: number;
    created_at: string;
    updated_at: string;
}
export interface ListmonkSubscriber {
    id: number;
    uuid: string;
    email: string;
    name: string;
    status: 'enabled' | 'disabled' | 'blocklisted';
    lists: ListmonkList[];
    attribs: Record<string, unknown>;
    created_at: string;
    updated_at: string;
}
export interface BulkSyncResult {
    total: number;
    success: number;
    failed: number;
    errors: string[];
}
declare class ListmonkClient {
    private get baseUrl();
    private get authHeader();
    private get enabled();
    private assertEnabled;
    private request;
    checkHealth(): Promise<boolean>;
    getLists(): Promise<ListmonkList[]>;
    createList(name: string, type: 'public' | 'private', tags: string[]): Promise<ListmonkList>;
    findSubscriberByEmail(email: string): Promise<ListmonkSubscriber | null>;
    createSubscriber(email: string, name: string, listIds: number[], attribs: Record<string, unknown>): Promise<ListmonkSubscriber>;
    updateSubscriber(id: number, data: {
        email: string;
        name?: string;
        lists?: number[];
        attribs?: Record<string, unknown>;
    }): Promise<ListmonkSubscriber>;
    updateList(id: number, data: {
        name?: string;
        tags?: string[];
    }): Promise<ListmonkList>;
    deleteList(id: number): Promise<void>;
    removeSubscriberFromLists(subscriberId: number, listIdsToRemove: number[], currentEmail: string, currentListIds: number[]): Promise<ListmonkSubscriber>;
    /**
     * Get campaigns with stats (for dashboard)
     */
    getCampaigns(): Promise<Array<{
        id: number;
        name: string;
        status: string;
        sent: number;
        views: number;
        clicks: number;
        started_at: string | null;
        updated_at: string;
    }>>;
    upsertSubscriber(email: string, name: string, listIds: number[], attribs: Record<string, unknown>): Promise<ListmonkSubscriber>;
}
export declare const listmonkClient: ListmonkClient;
export {};
//# sourceMappingURL=listmonk.client.d.ts.map