50 lines
1.6 KiB
TypeScript
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
|