// SPDX-FileCopyrightText: 2024 LiveKit, Inc.
//
// SPDX-License-Identifier: Apache-2.0

// https://developers.deepgram.com/docs/tts-models
export type TTSModels =
  | 'aura-2-andromeda-en'
  | 'aura-2-apollo-en'
  | 'aura-2-arcas-en'
  | 'aura-2-aries-en'
  | 'aura-2-artemis-en'
  | 'aura-2-asteria-en'
  | 'aura-2-atlas-en'
  | 'aura-2-aurora-en'
  | 'aura-2-callisto-en'
  | 'aura-2-cetus-en'
  | 'aura-2-chiron-en'
  | 'aura-2-columbia-en'
  | 'aura-2-cordelia-en'
  | 'aura-2-crina-en'
  | 'aura-2-draco-en'
  | 'aura-2-electra-en'
  | 'aura-2-eos-en'
  | 'aura-2-harmonia-en'
  | 'aura-2-helios-en'
  | 'aura-2-hera-en'
  | 'aura-2-hermes-en'
  | 'aura-2-hyperion-en'
  | 'aura-2-io-en'
  | 'aura-2-iris-en'
  | 'aura-2-janus-en'
  | 'aura-2-juno-en'
  | 'aura-2-jupiter-en'
  | 'aura-2-luna-en'
  | 'aura-2-mars-en'
  | 'aura-2-minerva-en'
  | 'aura-2-mira-en'
  | 'aura-2-neptune-en'
  | 'aura-2-odysseus-en'
  | 'aura-2-ophiuchus-en'
  | 'aura-2-orion-en'
  | 'aura-2-orpheus-en'
  | 'aura-2-phoebe-en'
  | 'aura-2-pluto-en'
  | 'aura-2-saturn-en'
  | 'aura-2-selene-en'
  | 'aura-2-theia-en'
  | 'aura-2-titan-en'
  | 'aura-2-triton-en'
  | 'aura-2-vega-en'
  | 'aura-2-venus-en'
  | 'aura-2-zeus-en'
  | 'aura-asteria-en'
  | 'aura-luna-en'
  | 'aura-stella-en'
  | 'aura-athena-en'
  | 'aura-hera-en'
  | 'aura-orion-en'
  | 'aura-arcas-en'
  | 'aura-perseus-en'
  | 'aura-angus-en'
  | 'aura-orpheus-en'
  | 'aura-helios-en'
  | 'aura-zeus-en';

export type TTSEncoding = 'linear16' | 'mulaw' | 'alaw' | 'mp3' | 'opus' | 'flac' | 'aac';

// Ref: python livekit-plugins/livekit-plugins-deepgram/livekit/plugins/deepgram/models.py - 38 line
export type V2Models = 'flux-general-en' | 'flux-general-multi';

export type STTModels =
  | 'nova-general'
  | 'nova-phonecall'
  | 'nova-meeting'
  | 'nova-2-general'
  | 'nova-2-meeting'
  | 'nova-2-phonecall'
  | 'nova-2-finance'
  | 'nova-2-conversationalai'
  | 'nova-2-voicemail'
  | 'nova-2-video'
  | 'nova-2-medical'
  | 'nova-2-drivethru'
  | 'nova-2-automotive'
  | 'nova-2-atc'
  | 'nova-3'
  | 'nova-3-general'
  | 'nova-3-medical'
  | 'nova-3-multilingual'
  | 'enhanced-general'
  | 'enhanced-meeting'
  | 'enhanced-phonecall'
  | 'enhanced-finance'
  | 'base'
  | 'meeting'
  | 'phonecall'
  | 'finance'
  | 'conversationalai'
  | 'voicemail'
  | 'video'
  | 'whisper-tiny'
  | 'whisper-base'
  | 'whisper-small'
  | 'whisper-medium'
  | 'whisper-large'
  | 'flux-general-en';

// https://developers.deepgram.com/docs/models-languages-overview
export type STTLanguages =
  | 'zh'
  | 'zh-CN'
  | 'zh-TW'
  | 'da'
  | 'nl'
  | 'de'
  | 'en'
  | 'en-AU'
  | 'en-GB'
  | 'en-IN'
  | 'en-NZ'
  | 'en-US'
  | 'es'
  | 'es-419'
  | 'es-LATAM'
  | 'hi'
  | 'hi-Latn'
  | 'fr'
  | 'fr-CA'
  | 'id'
  | 'it'
  | 'ja'
  | 'ko'
  | 'no'
  | 'pl'
  | 'pt'
  | 'pt-BR'
  | 'ru'
  | 'sv'
  | 'ta'
  | 'taq'
  | 'th'
  | 'tr'
  | 'uk'
  | 'multi';
