export interface QueuedEvent { id: string; timestamp: number; type: 'track' | 'identify' | 'error' | 'revenue' | 'screenView' | 'userProperties'; data: Record; retryCount: number; } export declare class EventQueue { private static instance; private queue; private processing; private maxRetries; private batchSize; private maxQueueSize; private flushInterval; private intervalId?; private listeners; private providerQueues; private constructor(); static getInstance(): EventQueue; start(): void; stop(): void; add(event: Omit): void; addListener(listener: (events: QueuedEvent[]) => Promise): void; removeListener(listener: (events: QueuedEvent[]) => Promise): void; flush(): Promise; clear(): void; /** * Remove and return every queued event in FIFO order, clearing persistence. Used by * the core to replay events that were buffered before initialize() completed. */ drain(): QueuedEvent[]; getQueueSize(): number; private generateId; private persistEvents; private loadPersistedEvents; private clearPersistedEvents; getEventsForProvider(providerId: string): QueuedEvent[]; addEventForProvider(providerId: string, event: QueuedEvent): void; }