Repository navigation
Expand file tree
/
Copy pathtypes.ts
More file actions
73 lines (59 loc) · 1.41 KB
/
Copy pathtypes.ts
File metadata and controls
73 lines (59 loc) · 1.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
export interface TranscriptEntry {
source: 'user' | 'avatar' | 'system';
text: string;
isFinal: boolean;
}
export interface FeedbackItem {
original: string;
correction: string;
explanation: string;
type: 'grammar' | 'pronunciation' | 'vocabulary';
score: number; // 0-100 Fluency Score
}
export interface Word {
word: string;
translation: string;
masteryScore?: number; // 0-100
lastReviewed?: number; // timestamp
strength?: number; // 1-5 for Spaced Repetition
}
export interface UserProfile {
name?: string;
hobbies: string[];
profession?: string;
motivation?: string;
facts: Record<string, string>; // Dynamic facts: "Has a dog named Max"
}
export type LearningMode = 'lesson' | 'roleplay' | 'quiz';
// --- Tutor & Voice Types ---
export type VoiceName = 'Puck' | 'Charon' | 'Kore' | 'Fenrir' | 'Aoede';
export interface Tutor {
id: string;
name: string;
voiceName: VoiceName;
imageUrl: string;
personality: string;
}
// --- Curriculum Types ---
export type CEFRLevel = 'A1' | 'A2' | 'B1' | 'B2' | 'C1' | 'C2';
export interface Topic {
id: string;
title: string;
description: string;
objectives: string[];
vocabularyFocus: string[];
}
export interface Unit {
id: string;
title: string;
topics: Topic[];
}
export interface Level {
id: CEFRLevel;
title: string;
description: string;
units: Unit[];
}
export interface Curriculum {
levels: Level[];
}