import { PageData } from 'analytics'; export interface PayloadProperties { title: string; url: string; path: string; hash: string; search: string; width: number; height: number; referrer: string; } export interface Payload { type: string; properties: PayloadProperties; anonymousId: string; event: string; meta: { rid: string; ts: number; hasCallback: boolean; }; } export interface AnalyticsData extends PageData { payload: Payload; config: PluginConfig; } /** * @version - 2 * web analytics event data version 2 */ export interface WebAnalyticEventData { eid?: string; en?: string; et?: string; etm?: number; uid?: string; sid?: string; pn?: string; pu?: string; ep?: Record; an?: string; av?: string; ua?: string; rf?: string; eo?: string; sfi?: string; pm?: { page_load_time_ms?: number; resource_load_times_ms?: any; }; } /** * Type of event that was performed * Type of events that can be performed */ export declare enum CustomEventTypes { Click = "Click" } /** * event type */ export declare enum WebAnalyticEventType { CustomEvent = "CUSTOM_EVENT", PageView = "PAGE_VIEW", Click = "CLICK" } /** * Page view data event */ export interface PageViewEvent { fullUrl?: string; hostname?: string; language?: string; pageLoadTime?: number; referrer?: string; screenSize?: string; sessionId?: string; url?: string; userId?: string; } export interface PluginConfig { analyticsUrl: string; accessToken?: string; } export interface ExternalPluginsConfig { googleAnalyticsV4MeasurementIds?: Array; googleAnalyticsV3TrackingId?: string; } export interface AnalyticsDetailsType { appName: string; appVersion: string; analyticsUrl: string; userId: string; accessToken?: string; externalPluginsConfig?: ExternalPluginsConfig; onAnalyticsError?: (error?: any) => void; disableCustomPlugin?: boolean; extraPlugins?: any; }