@loopkit/javascript
Version:
JavaScript SDK for LoopKit analytics platform
70 lines • 1.99 kB
TypeScript
import type { LoopKitConfig, IBrowserFeatures } from '../types/index.js';
import type { Logger } from '../utils/Logger.js';
import type { EventTracker } from './EventTracker.js';
import type { SessionManager } from './SessionManager.js';
import type { QueueManager } from './QueueManager.js';
import type { INetworkManager } from '../types/index.js';
/**
* Browser features for auto-tracking and browser-specific functionality
*/
export declare class BrowserFeatures implements IBrowserFeatures {
private config;
private logger;
private eventTracker;
private sessionManager;
private queueManager;
private networkManager?;
private clickHandler?;
private errorHandler?;
private unloadHandler?;
constructor(config: LoopKitConfig, logger: Logger, eventTracker: EventTracker, sessionManager: SessionManager, queueManager: QueueManager);
/**
* Setup all browser features based on configuration
*/
setupFeatures(): void;
/**
* Setup automatic click tracking
*/
setupAutoClickTracking(): void;
/**
* Setup automatic page view tracking
*/
setupAutoPageViews(): void;
/**
* Setup error tracking
*/
setupErrorTracking(): void;
/**
* Setup page unload handling
*/
setupPageUnloadHandling(): void;
/**
* Update configuration
*/
updateConfig(config: LoopKitConfig): void;
/**
* Set network manager
*/
setNetworkManager(networkManager: INetworkManager): void;
/**
* Track a page view
*/
private trackPageView;
/**
* Find clickable element by walking up the DOM
*/
private findClickableElement;
/**
* Extract click properties from element
*/
private extractClickProperties;
/**
* Get element type for analytics
*/
private getElementType;
/**
* Get readable text from element
*/
private getElementText;
}
//# sourceMappingURL=BrowserFeatures.d.ts.map