import { EventEmitter } from '@jolibox/common'; import { TrackEvent } from '@jolibox/types'; type TaskEvent = 'OPEN_GAME' | 'PLAY_GAME' | 'CLOSE_GAME' | 'COMPLETE_GAME_LEVEL' | 'USE_GAME_ITEM' | 'IN_GAME_PURCHASES' | 'ADS_UNLOCK_GAME' | 'GAME_TASK_EVENT' | 'GAME_ENDED' | 'GAME_LEVEL_UP' | 'GAME_LEVEL_START' | 'GAME_LEVEL_FAIL' | 'COMPLETE_WATCH_ADS'; export type TaskPoint = { event: TaskEvent; params?: Record; extraParams?: Record; }; export declare abstract class TaskTracker { readonly eventEmitter: EventEmitter<{ visible: [boolean]; }>; interval: number; lastReportTime: number; visible: boolean; private reportCount; protected notifyIframeGameEvent: (eventName: string, data: any) => void; private playGame; timer: { start(): void; stop(): void; }; abstract reporter(point: TaskPoint): void; abstract tracker(point: TrackEvent, info: Record | null): void; constructor(eventEmitter: EventEmitter<{ visible: [boolean]; }>, interval?: number); start(duration?: number): void; close(duration: number): void; private createRAFTimer; } export {};