import { Subject } from "../models/EducationalContent";
/**
 * User progress tracking event
 */
interface ProgressEvent {
    userId: string;
    timestamp: Date;
    eventType: 'session_completed' | 'content_completed' | 'quiz_completed';
    subject?: Subject;
    contentId?: string;
    score?: number;
    timeSpent?: number;
}
/**
 * Progress summary for a user
 */
interface ProgressSummary {
    totalSessionsCompleted: number;
    totalContentCompleted: number;
    totalQuizzesCompleted: number;
    totalTimeSpent: number;
    subjectBreakdown: Record<Subject, {
        sessionsCompleted: number;
        contentCompleted: number;
        quizzesCompleted: number;
        averageScore: number;
        timeSpent: number;
    }>;
}
/**
 * Service for tracking user learning progress
 */
declare class ProgressTrackingService {
    private progressEvents;
    /**
     * Track a session completion
     */
    trackSessionCompletion(userId: string, sessionId: string, subject: Subject, timeSpent?: number): Promise<void>;
    /**
     * Track content completion
     */
    trackContentCompleted(userId: string, contentId: string, subject: Subject, timeSpent?: number): Promise<void>;
    /**
     * Track quiz completion
     */
    trackQuizCompleted(userId: string, contentId: string, subject: Subject, score: number, timeSpent?: number): Promise<void>;
    /**
     * Get progress summary for a user
     */
    getProgressSummary(userId: string): Promise<ProgressSummary>;
    /**
     * Get events for a specific user
     */
    getUserEvents(userId: string): Promise<ProgressEvent[]>;
    /**
     * Get subject-specific progress for a user
     */
    getSubjectProgress(userId: string, subject: Subject): Promise<any>;
}
export declare const progressTrackingService: ProgressTrackingService;
export {};
