UNPKG

@loopkit/javascript

Version:

JavaScript SDK for LoopKit analytics platform

74 lines 1.87 kB
import type { LoopKitConfig, IQueueManager, INetworkManager, TrackEvent, IdentifyEvent, GroupEvent } from '../types/index.js'; import type { Logger } from '../utils/Logger.js'; import type { StorageManager } from './StorageManager.js'; interface QueuedEvent { type: 'track' | 'identify' | 'group'; event: TrackEvent | IdentifyEvent | GroupEvent; } /** * Queue manager for handling event batching and flushing */ export declare class QueueManager implements IQueueManager { private config; private logger; private storageManager; private networkManager?; eventQueue: QueuedEvent[]; private flushTimer?; private isInitialized; constructor(config: LoopKitConfig, logger: Logger, storageManager: StorageManager); /** * Add event to queue */ enqueueEvent(event: TrackEvent | IdentifyEvent | GroupEvent): void; /** * Flush events to API */ flush(networkManager: INetworkManager): Promise<void>; /** * Get current queue */ getQueue(): QueuedEvent[]; /** * Get queue size */ getQueueSize(): number; /** * Clear queue */ clearQueue(): void; /** * Reset queue state */ reset(): void; /** * Update configuration */ updateConfig(config: LoopKitConfig): void; /** * Set network manager */ setNetworkManager(networkManager: INetworkManager): void; /** * Schedule auto-flush */ scheduleFlush(): void; /** * Restart auto-flush with new config */ restartAutoFlush(): void; /** * Stop auto-flush timer */ private stopAutoFlush; /** * Persist queue to storage */ private persistQueue; /** * Load persisted queue from storage */ private loadPersistedQueue; } export {}; //# sourceMappingURL=QueueManager.d.ts.map