export type EventNameEnumType = 'pageview' | ''; export type Dict = { [key: string]: T }; export interface GlobalEventType { id: string; eventName: string; eventVariable: string; triggerTime: number; } export type TrackEventType = 'click' | 'menu'; export interface TrackActionOption extends Dict { eventType: string; maxWaitTime?: number; } export type EventReturnType = Promise; export interface IBaseAction { trackView(url: string, referrer: string, uuid: string): EventReturnType; trackEvent(event_name: string, event_data: string, url?: string, uuid?: string): EventReturnType; sendEvent(value: string, type: string, url?: string, uuid?: string): EventReturnType; } export interface ICustomAction { track(trackActionName: string, trackActionOption?: TrackActionOption): EventReturnType; startTrack(trackActionName: string, trackActionOption?: TrackActionOption): EventReturnType; endTrack(trackActionName: string, trackActionOption?: TrackActionOption): EventReturnType; }