isometrik-web-tracker
Version:
Production-grade user tracking library with multiple tracking methods
124 lines • 3.36 kB
TypeScript
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