export type VideoFormat = 'mp4' | 'webm' | 'mkv' | 'avi'; export type AudioFormat = 'mp3' | 'wav' | 'm4a' | 'opus'; export type FormatType = 'video' | 'audio'; export interface DownloadRequest { url: string; format: VideoFormat | AudioFormat; formatType: FormatType; } export interface DirectDownloadRequest { id: string; format: VideoFormat | AudioFormat; formatType: FormatType; } export interface DownloadResponse { success: boolean; downloadUrl?: string; filename?: string; filePath?: string; error?: string; videoInfo?: VideoInfo; } export interface DirectDownloadRequest { videoId: string; format: VideoFormat | AudioFormat; formatType: FormatType; } export interface DownloadResponse { success: boolean; downloadUrl?: string; filename?: string; filePath?: string; error?: string; videoInfo?: VideoInfo; } export interface VideoInfo { title: string; duration: number; thumbnail?: string; formats?: FormatOption[]; } export interface FormatOption { formatId: string; ext: string; resolution?: string; filesize?: number; formatNote?: string; } export interface TranscodeRequest { fileId: string; format: VideoFormat | AudioFormat; formatType: FormatType; }