UNPKG

@tinytapanalytics/sdk

Version:

Behavioral psychology platform that detects visitor frustration, predicts abandonment, and helps you save at-risk conversions in real-time

84 lines 2.06 kB
/** * Event Queue for TinyTapAnalytics SDK * Handles batching, persistence, and intelligent retry logic for events */ import { TinyTapAnalyticsConfig } from '../types/index'; import { NetworkManager } from './NetworkManager'; export declare class EventQueue { private config; private networkManager; private queue; private isProcessing; private processingInterval; private persistenceKey; private readonly maxQueueSize; private readonly maxRetries; private readonly retentionHours; constructor(config: TinyTapAnalyticsConfig, networkManager: NetworkManager); /** * Enqueue an event for processing */ enqueue(payload: any, priority?: 'low' | 'normal' | 'high'): Promise<void>; /** * Flush all events immediately */ flush(): Promise<void>; /** * Get queue statistics */ getStats(): { queueSize: number; isProcessing: boolean; highPriorityCount: number; failedEventCount: number; }; /** * Start periodic queue processing */ private startProcessing; /** * Process the event queue */ private processQueue; /** * Handle failed events - add back to queue with retry logic */ private handleFailedEvents; /** * Handle a single failed event */ private handleFailedEvent; /** * Sort queue by priority and retry time */ private sortQueue; /** * Load persisted events from storage */ private loadPersistedEvents; /** * Persist queue to storage */ private persistQueue; /** * Clear persisted queue */ private clearPersistedQueue; /** * Setup page unload handler for final flush */ private setupUnloadHandler; /** * Chunk array into smaller batches */ private chunkArray; /** * Generate unique event ID */ private generateEventId; /** * Clean up and stop processing */ destroy(): void; } //# sourceMappingURL=EventQueue.d.ts.map