mentiq-sdk
Version:
A powerful analytics SDK for React and Next.js with heatmap tracking, session monitoring, and performance analytics
85 lines • 3.28 kB
TypeScript
import { AnalyticsConfig, AnalyticsInstance, AnalyticsProvider, EventProperties, PageProperties, UserProperties, SessionData, PerformanceData } from "./types";
export declare class Analytics implements AnalyticsInstance {
config: AnalyticsConfig & {
endpoint: string;
debug: boolean;
sessionTimeout: number;
batchSize: number;
flushInterval: number;
enableAutoPageTracking: boolean;
enablePerformanceTracking: boolean;
enableHeatmapTracking: boolean;
enableSessionRecording: boolean;
enableErrorTracking: boolean;
maxQueueSize: number;
retryAttempts: number;
retryDelay: number;
};
private eventQueue;
private providers;
private flushTimer?;
private sessionTimer?;
private isInitialized;
private sessionData;
private heatmapListeners;
private errorListeners;
private sessionRecorder?;
private funnelState;
private funnelAbandonmentTimer;
constructor(config: AnalyticsConfig);
private initializeSession;
private initialize;
private setupSessionTracking;
private setupHeatmapTracking;
private setupErrorTracking;
private getElementSelector;
private endSession;
private setupAutoFlush;
private setupAutoPageTracking;
private setupPerformanceTracking;
addProvider(provider: AnalyticsProvider): void;
track(event: string, properties?: EventProperties): void;
page(properties?: PageProperties): void;
identify(userId: string, traits?: UserProperties & {
email?: string;
}): void;
alias(newId: string, previousId?: string): void;
reset(): void;
flush(): Promise<void>;
setUserId(userId: string): void;
getUserId(): string | null;
getAnonymousId(): string;
getSessionId(): string;
getSessionData(): SessionData;
getActiveSession(): SessionData;
calculateEngagementScore(): number;
private calculateDetailedSessionMetrics;
private calculateBounceLikelihood;
trackCustomError(error: string | Error, properties?: EventProperties): void;
trackPerformance(performanceData: PerformanceData): void;
trackFeatureUsage(featureName: string, properties?: EventProperties): void;
trackFunnelStep(funnelName: string, stepName: string, stepIndex: number, properties?: EventProperties): void;
completeFunnel(funnelName: string, properties?: EventProperties): void;
startFunnel(funnelName: string, properties?: EventProperties): void;
advanceFunnel(funnelName: string, stepName: string, properties?: EventProperties): void;
abandonFunnel(funnelName: string, reason?: string, properties?: EventProperties): void;
getFunnelState(funnelName: string): any;
private clearFunnelState;
private resetAbandonmentTimer;
private calculateFunnelCompletion;
getQueueSize(): number;
clearQueue(): void;
private enqueueEvent;
private createBatches;
private sendBatch;
private transformEventForBackend;
private sendEvent;
private setupSessionRecording;
startRecording(): void;
stopRecording(): void;
pauseRecording(): void;
resumeRecording(): void;
isRecordingActive(): boolean;
destroy(): void;
}
//# sourceMappingURL=analytics.d.ts.map