import type { DB } from '../db/client.js'; import type { WhatsAppClient } from '../client/whatsapp.js'; import type { Emit } from '../events/emit.js'; export interface BroadcastOptions { client: WhatsAppClient; db: DB; channel: string; sendIntervalMs?: number; limit?: number; emit?: Emit; } export interface BroadcastUser { whatsapp: string; [k: string]: unknown; } export interface BroadcastResult { candidates: number; delivered: number; skipped: number; } export interface BroadcastRunArgs { send: (user: BroadcastUser) => Promise; /** * Custom audience generator. When omitted, the default audience is * opt-in users with an open message window who haven't been logged * on `channel` today. */ audience?: () => Promise; } export declare class Broadcast { readonly client: WhatsAppClient; readonly db: DB; readonly channel: string; readonly sendIntervalMs: number; readonly limit: number; readonly emit: Emit | null; constructor({ client, db, channel, sendIntervalMs, limit, emit }: BroadcastOptions); defaultAudience(): Promise; run({ send, audience }: BroadcastRunArgs): Promise; logDelivered(whatsapp: string): Promise; wasDeliveredToday(whatsapp: string): Promise; } //# sourceMappingURL=broadcast.d.ts.map