export interface AIOption {
  label: string
  value: string
}

export interface AIMessage {
  id?: string
  role: 'user' | 'assistant' | 'system'
  content: string
  reasoning_content?: string
  full_content?: string
  json?: any
  status?: 'loading' | 'success' | 'error' | 'typing'
  image_urls?: string[]
  error?: string
}

export interface ChatRequestData {
  response_format?: { type: 'text' | 'json_object' }
  model?: string
  messages: AIMessage[]
}

export interface GenerateImageRequestData {
  model: string
  prompt: string
  n: number
  aspect_ratio: string
  subject_reference?: { type: string; image_file: string }[]
}

export interface GenerateVideoRequestData {
  model: string
  prompt: string
  n: number
}

export type AIRequestData = ChatRequestData | GenerateImageRequestData | GenerateVideoRequestData
