UNPKG

@click-chutney/analytics

Version:

Complete website analytics solution. Everything you need to understand your visitors - no Google Analytics required.

94 lines 2.25 kB
export interface ClickChutneyConfig { trackingId: string; apiUrl?: string; debug?: boolean; autoTrack?: boolean; sessionTimeout?: number; flushInterval?: number; maxBatchSize?: number; maxRetries?: number; retryDelay?: number; enableOfflineSupport?: boolean; corsMode?: 'same-origin' | 'cors' | 'no-cors'; timeout?: number; } export interface PageViewEvent { type: 'pageview'; url: string; title: string; referrer?: string; path?: string; } export interface CustomEvent { type: 'event'; name: string; properties?: Record<string, any>; } export interface PerformanceEvent { type: 'performance'; metrics: { loadTime?: number; fcp?: number; lcp?: number; cls?: number; fid?: number; }; } export interface UserIdentifyEvent { type: 'identify'; userId: string; traits?: Record<string, any>; } export interface SessionEvent { type: 'session'; action: 'start' | 'end'; sessionId: string; duration?: number; } export type AnalyticsEvent = PageViewEvent | CustomEvent | PerformanceEvent | UserIdentifyEvent | SessionEvent; export interface EventPayload { id?: string; trackingId: string; event: string; domain: string; timestamp: string; sessionId: string; userId?: string; data: Record<string, any>; userAgent?: string; url?: string; referrer?: string; retryCount?: number; queuedAt?: number; } export interface SessionData { id: string; startTime: number; lastActivity: number; pageViews: number; events: number; isActive: boolean; deviceId?: string; } export interface UserData { id?: string; traits?: Record<string, any>; firstSeen?: number; lastSeen?: number; deviceId?: string; consentGiven?: boolean; } export interface TrackerOptions { debug?: boolean; autoTrack?: boolean; sessionTimeout?: number; queueSize?: number; flushInterval?: number; maxBatchSize?: number; maxRetries?: number; retryDelay?: number; enableOfflineSupport?: boolean; corsMode?: 'same-origin' | 'cors' | 'no-cors'; timeout?: number; } //# sourceMappingURL=types.d.ts.map