export interface TracklistEntry {
  ts: string
  tn?: string
  an?: string
  al?: string
  date?: string
  ext?: string
}

export interface TrackInfo {
  filename: string
  size: number
}

export interface TaskStatus {
  task_id: string
  status: 'pending' | 'processing' | 'done' | 'error'
  progress: number
  message: string
  error: string | null
  tracks: TrackInfo[]
}

export interface SplitOptions {
  format: string
  transcode_to?: string
  drop_video: boolean
  drop_subs: boolean
  number_tracks: boolean
  replace_bad_chars: boolean
  replacement_char: string
  bad_chars: string
  skip_existing: boolean
  output_template: string
  album: string
  comment: string
  no_comment: boolean
  comment_stream: number | null
  merge_comments: boolean
  comment_separator: string
}

export interface UploadResponse {
  task_id: string
  filename: string
  size: number
}

export interface SplitResponse {
  task_id: string
  status: string
}