-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtypes.ts
More file actions
58 lines (51 loc) · 1.25 KB
/
types.ts
File metadata and controls
58 lines (51 loc) · 1.25 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
export interface TranscriptItem {
id: number;
start: number; // seconds
end: number; // seconds
text: string;
category: 'speech' | 'silence' | 'music' | 'noise' | 'intro' | 'outro';
speaker?: string; // e.g. "Speaker 1"
}
export interface Segment {
id: string;
start: number;
end: number;
description: string;
active: boolean; // If false, this part is "cut"
}
export interface ChatMessage {
id: string;
role: 'user' | 'model';
text: string;
timestamp: Date;
isThinking?: boolean;
}
export interface Asset {
id: string;
name: string;
type: 'video' | 'image';
url?: string; // Blob URL (session only)
path?: string; // For future use
}
export interface Project {
id: string;
name: string;
date: string;
duration: string;
// Persisted State
transcript?: TranscriptItem[];
segments?: Segment[];
messages?: ChatMessage[];
visualDescription?: string;
lastModified?: number;
isActive?: boolean;
// Sub-items
assets?: Asset[];
sequenceName?: string;
}
// AI Response structure expected from Gemini
export interface AIEditResponse {
reply: string;
editedSegments: Segment[]; // The new timeline structure
}
export type AnalysisStatus = 'idle' | 'extracting_audio' | 'transcribing' | 'ready' | 'error';