UNPKG

isometrik-web-tracker

Version:

Production-grade user tracking library with multiple tracking methods

124 lines 3.36 kB
import { ActivityStats, ElementTrackingData, FormattedData, SessionData, TimeTrackingData, TrackerOptions } from './types'; export declare class PageTimeTracker { private startTime; private totalTime; private activeTime; private idleTime; private lastActivityTime; private isActive; private isVisible; private pageVisits; private sessionStartTime; private sessionId; private idleThreshold; private trackingInterval; private enableConsoleLog; private secureModeEnabled; private trackingKey; private onActivityChange?; private onTimeUpdate?; private onElementVisible?; private onElementHidden?; private onTrackingEvent?; private activityDetector; private elementVisibilityTracker; private mouseTracker; private scrollTracker; private keyboardTracker; private touchTracker; private focusTracker; private networkTracker; private intervalId?; private idleTimeoutId?; private isDestroyed; private activityHistory; private elementTrackingData; constructor(options?: TrackerOptions); private initializeTrackingModules; private initialize; private setupEventListeners; private handleActivity; private handleMouseActivity; private handleScrollActivity; private handleKeyboardActivity; private handleTouchActivity; private handleElementVisible; private handleElementHidden; private handleFocusChange; private handleNetworkChange; private handleVisibilityChange; private handleFocus; private handleBlur; private handleBeforeUnload; private setActiveState; private resetIdleTimer; private startTracking; private updateTotalTime; private recordTrackingEvent; private generateSessionId; private generateTrackingKey; private log; /** * Track a specific element by adding a tracking key */ trackElement(element: Element | string, trackingKey: string, options?: { trackVisibility?: boolean; trackInteractions?: boolean; threshold?: number; }): void; /** * Stop tracking a specific element */ untrackElement(trackingKey: string): void; /** * Get tracking data for a specific element */ getElementTrackingData(trackingKey: string): ElementTrackingData | null; /** * Get all element tracking data */ getAllElementTrackingData(): Map<string, ElementTrackingData>; /** * Get current page tracking data */ getTrackingData(): TimeTrackingData; /** * Get formatted time data */ getFormattedData(): FormattedData; /** * Get activity statistics */ getActivityStats(): ActivityStats; private formatTime; /** * Reset all tracking data */ reset(): void; /** * Pause tracking */ pause(): void; /** * Resume tracking */ resume(): void; /** * Check if tracker is currently active */ isTracking(): boolean; /** * Get session information */ getSessionInfo(): SessionData; /** * Export tracking data for analytics */ exportData(): string; /** * Clean up and destroy the tracker */ destroy(): void; } export default PageTimeTracker; //# sourceMappingURL=PageTimeTracker.d.ts.map