import type { ModuleController } from "@86d-app/core/types/module"; export type WaitlistStatus = "waiting" | "notified" | "purchased" | "cancelled"; export type WaitlistEntry = { id: string; productId: string; productName: string; variantId?: string | undefined; variantLabel?: string | undefined; email: string; customerId?: string | undefined; status: WaitlistStatus; notifiedAt?: Date | undefined; createdAt: Date; }; export type WaitlistSummary = { totalWaiting: number; totalNotified: number; topProducts: Array<{ productId: string; productName: string; count: number; }>; }; export type WaitlistController = ModuleController & { subscribe(params: { productId: string; productName: string; variantId?: string | undefined; variantLabel?: string | undefined; email: string; customerId?: string | undefined; }): Promise; unsubscribe(id: string): Promise; cancelByEmail(email: string, productId: string): Promise; getEntry(id: string): Promise; isSubscribed(email: string, productId: string): Promise; listByProduct(productId: string, params?: { status?: WaitlistStatus | undefined; take?: number | undefined; skip?: number | undefined; }): Promise; listByEmail(email: string, params?: { take?: number | undefined; skip?: number | undefined; }): Promise; listAll(params?: { productId?: string | undefined; email?: string | undefined; status?: WaitlistStatus | undefined; take?: number | undefined; skip?: number | undefined; }): Promise; countByProduct(productId: string): Promise; markNotified(productId: string): Promise; markPurchased(email: string, productId: string): Promise; getSummary(): Promise; }; //# sourceMappingURL=service.d.ts.map