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

50 lines
1.6 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>;
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