69 lines
2.2 KiB
TypeScript
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
|