UNPKG

saltfish

Version:

An interactive video-guided tour system for web applications

112 lines 3.58 kB
import type { SaltfishConfig, UserData } from '../types'; import { EventManager } from './EventManager'; /** * Manager class for tracking and reporting analytics events * * This class handles tracking of various events in the player, including: * - Standard events: playlistStart, playlistComplete, stepStarted, stepComplete * - Player state events: playerPaused, playerResumed, playerMinimized, playerMaximized * - Error events * * Events are queued and sent in batches to the backend analytics API. */ export declare class AnalyticsManager { private config; private user; private eventQueue; private isSending; private flushInterval; private eventManager; private sessionId; private analyticsEnabled; /** * Creates a new AnalyticsManager * @param eventManager - Optional event manager to subscribe to events */ constructor(eventManager?: EventManager); /** * Sets the event manager and subscribes to relevant events * @param eventManager - Event manager instance */ setEventManager(eventManager: EventManager): void; /** * Subscribe to relevant player events for analytics tracking */ private subscribeToEvents; /** * Helper to get the store state when needed */ private getStore; /** * Initializes the analytics manager * @param config - Saltfish configuration * @param sessionId - Unique session identifier */ initialize(config: SaltfishConfig, sessionId?: string): void; /** * Sets the current user * @param user - User data */ setUser(user: UserData): void; /** * Tracks a playlist start event * @param playlistId - playlist ID */ trackPlaylistStart(playlistId: string): void; /** * Tracks a playlist completion event * @param playlistId - playlist ID */ trackPlaylistComplete(playlistId: string): void; /** * Tracks a step started event * @param playlistId - playlist ID * @param stepId - Step ID */ trackStepStarted(playlistId: string, stepId: string): void; /** * Tracks a step completion event * @param playlistId - playlist ID * @param stepId - Step ID */ trackStepComplete(playlistId: string, stepId: string): void; /** * Tracks an interaction event * @param playlistId - playlist ID * @param stepId - Step ID * @param interactionData - Interaction data */ trackInteraction(playlistId: string, stepId: string, interactionData: Record<string, any>): void; /** * Tracks an error event * @param playlistId - playlist ID * @param error - Error object * @param stepId - Optional step ID * @param errorType - Optional error type/category (e.g., 'playlist', 'video', 'network', 'initialization') */ trackError(playlistId: string, error: Error, stepId?: string, errorType?: string): void; /** * Tracks a generic event * @param event - Event data */ private trackEvent; /** * Manually flush queued events immediately * This is useful for ensuring events are sent before player destruction */ flush(): Promise<void>; /** * Sends queued events to the backend */ private flushEvents; /** * Cleans up resources used by the analytics manager */ destroy(): void; /** * Gets the current runId from the player * @returns The current runId or null if not available */ private getRunId; } //# sourceMappingURL=AnalyticsManager.d.ts.map