changemaker.lite/api/dist/services/listmonk.client.d.ts

69 lines
2.2 KiB
TypeScript

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