@aftership/web-pixels
Version:
AfterShip Web Pixels for data anaylsis
42 lines (41 loc) • 1.2 kB
TypeScript
import { EventName, EventProperties } from '../../types/pixelEventsFormat';
export interface IQueueEventItem {
id: string;
name: EventName;
properties: EventProperties;
size: number;
timestamp: number;
}
interface IEventQueueState {
maxQueueCount: number;
maxQueueSize: number;
processInterval: number;
}
export declare class EventQueue {
private static instance;
private isDestroyed;
private queues;
private currentQueueIndex;
private queueSizes;
private state;
private processTimer;
private isFlushingLock;
private readonly MAX_QUEUES;
constructor(state?: IEventQueueState);
private initializeEventListeners;
private handleNetworkChange;
private handleVisibilityChange;
private startProcessTimer;
private stopProcessTimer;
private judgeCurrentQueueFull;
enqueue: (eventName: EventName, eventProperties: EventProperties) => Promise<void>;
private processQueues;
private flush;
private reEnqueueFailedEvents;
destroy: () => Promise<void>;
private ensureQueueConsistency;
private validateState;
private flushAll;
}
export declare const pixelEventQueue: EventQueue;
export {};