UNPKG

education-module-ai

Version:
140 lines (139 loc) 3.34 kB
/** * Educational content types */ export type ContentType = "explanation" | "tutorial" | "practice_problem" | "quiz" | "reference_material"; /** * Educational levels */ export type EducationalLevel = "beginner" | "elementary" | "middle_school" | "high_school" | "undergraduate" | "graduate" | "professional"; /** * Subject areas */ export type Subject = "mathematics" | "science" | "history" | "language_arts" | "computer_science" | "physics" | "chemistry" | "biology"; /** * Educational content resource interface */ export interface EducationalContentResource { id: string; title: string; content: string; type: ContentType; subject: Subject; level: EducationalLevel; keywords: string[]; createdAt: Date; updatedAt?: Date; } /** * Types of user interactions within a learning session */ export type InteractionType = "question" | "answer" | "explanation_request" | "practice_request" | "quiz_attempt" | "feedback"; /** * Session message structure */ export interface SessionMessage { role: "user" | "assistant"; content: string; timestamp: Date; interactionType: InteractionType; relatedContentIds?: string[]; } /** * Learning session resource interface */ export interface LearningSessionResource { id: string; userId: string; subject: Subject; level: string; startTime: Date; endTime?: Date; active: boolean; messages: SessionMessage[]; feedback?: string; } /** * Learning style preferences */ export type LearningStyle = "visual" | "auditory" | "reading_writing" | "kinesthetic" | "social" | "solitary"; /** * Progress level for a subject */ export interface SubjectProgress { level: number; topics: Record<string, number>; lastActivity?: Date; completedSessions: number; completedContent: string[]; } /** * Recommendation for learning content */ export interface LearningRecommendation { contentId: string; relevanceScore: number; reason: string; timestamp: Date; } /** * User profile resource interface */ export interface UserProfileResource { id: string; name: string; email?: string; createdAt: Date; learningStyles: LearningStyle[]; subjectProgress: Record<Subject, SubjectProgress>; recommendations: LearningRecommendation[]; goals: string[]; streak: number; lastActive?: Date; badges: string[]; totalLearningTime: number; } /** * Resource type for learning resources */ export declare enum ResourceType { ARTICLE = "article", VIDEO = "video", EXERCISE = "exercise", BOOK = "book", COURSE = "course" } /** * Resource interface for learning paths */ export interface Resource { title: string; type: ResourceType; url?: string; description: string; } /** * Learning step interface */ export interface LearningStep { title: string; description: string; timeEstimate: string; resources: Resource[]; concepts: string[]; } /** * Learning path resource interface */ export interface LearningPathResource { id: string; userId: string; subject: string; topic: string; overview: string; difficultyLevel: string; estimatedCompletionTime: string; prerequisites: string[]; steps: LearningStep[]; createdAt: Date; updatedAt: Date; }