import { Firestore } from "@google-cloud/firestore"; import { CloudTasksClient } from "@google-cloud/tasks"; import { World } from "@workflow/world"; //#region src/streamer.d.ts interface FirestoreStreamerConfig { firestore: Firestore; /** * Streaming strategy: * - 'listener' (default): Firestore real-time listeners. Lowest latency but * costs scale with subscribers x updates (one read per document change per listener). * - 'polling': Periodic polling. Higher latency but costs scale with subscriber * count only, regardless of update frequency. */ mode?: 'listener' | 'polling'; /** * Polling interval (ms) when mode is 'polling'. * Default: 1000 */ pollIntervalMs?: number; } //#endregion //#region src/index.d.ts interface FirestoreTasksWorldConfig { firestore?: Firestore; tasksClient?: CloudTasksClient; project?: string; location?: string; queueName?: string; targetUrl?: string; deploymentId?: string; /** * Streaming strategy for readFromStream: * - 'listener' (default): Firestore real-time listeners (lowest latency, higher cost) * - 'polling': Periodic polling (higher latency, lower cost) */ streamerMode?: 'listener' | 'polling'; /** * Polling interval (ms) when streamerMode is 'polling'. Default: 1000 */ streamerPollIntervalMs?: number; } declare function createFirestoreTasksWorld(config?: FirestoreTasksWorldConfig): World & { start(): Promise; }; //#endregion export { type FirestoreStreamerConfig, FirestoreTasksWorldConfig, createFirestoreTasksWorld, createFirestoreTasksWorld as createWorld }; //# sourceMappingURL=index.d.ts.map