export type TaskStatus = | 'queued' | 'extracting' | 'vad_processing' | 'transcribing' | 'translating' | 'completed' | 'failed' export type TargetLanguage = 'zh' | 'en' export interface SubtitleSegment { id: string taskId: string start: number end: number sourceText: string translatedText?: string | null } export interface SubtitleTask { id: string filePath: string fileName: string sourceLang?: string | null targetLang: TargetLanguage status: TaskStatus progress: number segments: SubtitleSegment[] error?: string | null } export interface StartTaskPayload { filePath: string sourceLang?: string | null targetLang: TargetLanguage whisperModelPath?: string | null vadModelPath?: string | null } export interface ProgressEvent { taskId: string status: TaskStatus progress: number message: string } export interface SegmentEvent { taskId: string segment: SubtitleSegment } export interface ErrorEvent { taskId: string message: string }