/** * Datalyr Web SDK - Type Definitions */ export interface DatalyrConfig { workspaceId: string; endpoint?: string; debug?: boolean; batchSize?: number; flushInterval?: number; flushAt?: number; criticalEvents?: string[]; highPriorityEvents?: string[]; sessionTimeout?: number; trackSessions?: boolean; attributionWindow?: number; trackedParams?: string[]; respectDoNotTrack?: boolean; respectGlobalPrivacyControl?: boolean; privacyMode?: 'standard' | 'strict'; cookieDomain?: string | 'auto'; cookieExpires?: number; secureCookie?: boolean | 'auto'; sameSite?: 'Strict' | 'Lax' | 'None'; cookiePrefix?: string; enablePerformanceTracking?: boolean; enableFingerprinting?: boolean; maxRetries?: number; retryDelay?: number; maxOfflineQueueSize?: number; trackSPA?: boolean; trackPageViews?: boolean; enableContainer?: boolean; autoIdentify?: boolean; autoIdentifyForms?: boolean; autoIdentifyAPI?: boolean; autoIdentifyShopify?: boolean; autoIdentifyTrustedDomains?: string[]; shopifyCartAttributes?: boolean; platform?: 'shopify' | 'checkoutchamp' | 'generic'; checkoutChampDomains?: string[]; stripeCheckoutSessions?: boolean; inAppHandoff?: boolean; stripePaymentLinks?: boolean; stripeLinkDomains?: string[]; fallbackEndpoints?: string[]; plugins?: DatalyrPlugin[]; } export interface EventProperties { [key: string]: any; value?: number; currency?: string; product_id?: string; product_name?: string; category?: string; quantity?: number; price?: number; utm_source?: string; utm_medium?: string; utm_campaign?: string; utm_term?: string; utm_content?: string; utm_id?: string; fbclid?: string; gclid?: string; ttclid?: string; msclkid?: string; twclid?: string; li_fat_id?: string; } export interface UserTraits { [key: string]: any; email?: string; name?: string; firstName?: string; lastName?: string; phone?: string; avatar?: string; createdAt?: string | Date; plan?: string; } export interface PageProperties { title?: string; url?: string; path?: string; referrer?: string; search?: string; [key: string]: any; } export interface SessionData { id: string; startTime: number; lastActivity: number; pageViews: number; events: number; duration: number; isActive: boolean; } export interface Attribution { utm_source?: string | null; utm_medium?: string | null; utm_campaign?: string | null; utm_term?: string | null; utm_content?: string | null; utm_id?: string | null; source?: string | null; medium?: string | null; campaign?: string | null; term?: string | null; content?: string | null; clickId?: string | null; clickIdType?: string | null; referrer?: string | null; referrerHost?: string | null; landingPage?: string | null; landingPath?: string | null; timestamp?: number; [key: string]: any; } export interface TouchPoint { timestamp: number; source?: string; medium?: string; campaign?: string; sessionId: string; } export interface ConsentConfig { analytics?: boolean; marketing?: boolean; preferences?: boolean; sale?: boolean; } export interface DatalyrPlugin { name: string; initialize(datalyr: any): void; page?(properties: PageProperties): void; track?(eventName: string, properties: EventProperties): void; identify?(userId: string, traits: UserTraits): void; loaded?(): void; } export interface FingerprintData { timezone?: string | null; language?: string | null; screen_bucket?: string | null; dnt?: boolean | null; userAgent?: string | null; userAgentData?: { brands: Array<{ brand: string; version: string; }>; mobile: boolean; platform: string | null; } | null; } export interface IngestEventPayload { workspace_id: string; distinct_id: string; anonymous_id: string; user_id?: string; visitor_id: string; canonical_id: string; event_id: string; event_name: string; event_data: Record; session_id: string; utm_source?: string; utm_medium?: string; utm_campaign?: string; utm_term?: string; utm_content?: string; utm_id?: string; fingerprintData?: FingerprintData; fingerprint_data?: FingerprintData; source: 'web'; resolution_method: 'browser_sdk'; resolution_confidence: 1.0; timestamp?: string; received_at?: string; sdk_version?: string; sdk_name?: string; schema_version?: number; } export interface IngestBatchPayload { events: IngestEventPayload[]; batchId: string; timestamp: string; } export interface NetworkStatus { isOnline: boolean; lastOfflineAt: number | null; lastOnlineAt: number | null; } export interface ErrorInfo { message: string; stack?: string; context?: any; timestamp: string; url: string; } export interface PerformanceMetrics { pageLoadTime?: number; domReadyTime?: number; firstByteTime?: number; dnsTime?: number; tcpTime?: number; requestTime?: number; timeOnPage?: number; scrollDepth?: number; memoryUsed?: number; protocol?: string; } //# sourceMappingURL=types.d.ts.map