@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
TypeScript
/**
* 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