/** * LMS Progress Tracking Service * * This module handles video progress tracking for Learning Management Systems. * Features: * - Resume playback from saved position * - Track watched percentage * - Milestone notifications (25%, 50%, 75%, 90%, 100%) * - Periodic progress saving * - Completion tracking */ import type { LMSProgressConfig, LMSProgressData, ProgressMilestone } from '../types'; /** * Manages LMS progress tracking for video playback */ export declare class LMSProgressManager { private config; private progressData; private saveTimer; private isDestroyed; private hasEmittedFirstPlay; private reachedMilestones; constructor(config: LMSProgressConfig); /** * Initialize progress tracking */ initialize(duration: number): void; /** * Get resume position (for seeking on load) */ getResumePosition(): number; /** * Check if should resume playback */ shouldResume(): boolean; /** * Handle first play event */ handleFirstPlay(): void; /** * Update progress with current playback time */ updateProgress(currentTime: number, duration: number): void; /** * Handle video completion */ handleCompletion(): void; /** * Check and emit milestone events */ private checkMilestones; /** * Save current progress */ saveProgress(): void; /** * Get current progress data (immutable copy) */ getProgress(): LMSProgressData; /** * Reset progress (for rewatching) */ reset(): void; /** * Destroy progress manager */ destroy(): void; } /** * Save progress to localStorage */ export declare function saveProgressToStorage(progress: LMSProgressData): void; /** * Load progress from localStorage */ export declare function loadProgressFromStorage(videoId: string): LMSProgressData | null; /** * Clear progress from localStorage */ export declare function clearProgressFromStorage(videoId: string): void; /** * Get all saved progress data */ export declare function getAllProgressFromStorage(): LMSProgressData[]; export interface ProgressAPIConfig { /** API endpoint for saving progress */ saveEndpoint: string; /** API endpoint for loading progress */ loadEndpoint: string; /** Authorization header */ authToken?: string; /** Additional headers */ headers?: Record; } /** * Creates LMS progress callbacks that sync with a backend API */ export declare function createProgressAPICallbacks(apiConfig: ProgressAPIConfig): { onProgressSave: (progress: LMSProgressData) => Promise; onMilestoneReached: (milestone: ProgressMilestone, progress: LMSProgressData) => Promise; onComplete: (progress: LMSProgressData) => Promise; loadProgress: (videoId: string, userId?: string) => Promise | null>; };