// This file is auto-generated by @hey-api/openapi-ts

export type ChatModel =
  | 'EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0'
  | 'EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1'
  | 'EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2'
  | 'EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2'
  | 'Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B'
  | 'Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B'
  | 'GalrionSoftworks/MN-LooseCannon-12B-v1'
  | 'Gryphe/MythoMax-L2-13b'
  | 'Infermatic/MN-12B-Inferor-v0.0'
  | 'LatitudeGames/Wayfarer-Large-70B-Llama-3.3'
  | 'Llama-3.1-Tulu-3-405B'
  | 'Llama-3.3+3.1-70B-ArliAI-RPMax-v1.3'
  | 'Llama-3.3-70B-MiraiFanfare'
  | 'MarinaraSpaghetti/NemoMix-Unleashed-12B'
  | 'Meta-Llama-3-1-405B-Instruct-FP8'
  | 'Meta-Llama-3-1-8B-Instruct-FP8'
  | 'Mistral-Nemo-12B-ArliAI-RPMax-v1.2'
  | 'Mistral-Nemo-12B-Wayfarer'
  | 'NeverSleep/Llama-3-Lumimaid-70B-v0.1'
  | 'NeverSleep/Lumimaid-v0.2-70B'
  | 'Nexusflow/Athene-V2-Chat'
  | 'Qwen/QwQ-32B-Preview'
  | 'Qwen/Qwen2.5-Coder-32B-Instruct'
  | 'Qwen2.5-32B-Dazzling-Star-Aurora-32b-v0.0'
  | 'Qwen2.5-32B-EVA-v0.2'
  | 'Sao10K/L3-8B-Stheno-v3.2'
  | 'Sao10K/L3.1-70B-Euryale-v2.2'
  | 'Sao10K/L3.1-70B-Hanami-x1'
  | 'Sao10K/L3.3-70B-Euryale-v2.3'
  | 'Steelskull/L3.3-Cu-Mai-R1-70b'
  | 'Steelskull/L3.3-Damascus-R1'
  | 'Steelskull/L3.3-Electra-R1-70b'
  | 'Steelskull/L3.3-MS-Evalebis-70b'
  | 'Steelskull/L3.3-MS-Evayale-70B'
  | 'Steelskull/L3.3-MS-Nevoria-70b'
  | 'Steelskull/L3.3-Nevoria-R1-70b'
  | 'TheDrummer/Anubis-70B-v1'
  | 'TheDrummer/Cydonia-24B-v2'
  | 'TheDrummer/Rocinante-12B-v1.1'
  | 'TheDrummer/UnslopNemo-12B-v4.1'
  | 'VongolaChouko/Starcannon-Unleashed-12B-v1.0'
  | 'abacusai/Dracarys-72B-Instruct'
  | 'aion-labs/aion-1.0'
  | 'aion-labs/aion-1.0-mini'
  | 'aion-labs/aion-rp-llama-3.1-8b'
  | 'amazon/nova-lite-v1'
  | 'amazon/nova-micro-v1'
  | 'amazon/nova-pro-v1'
  | 'anthracite-org/magnum-v2-72b'
  | 'anthracite-org/magnum-v4-72b'
  | 'anubis-pro-105b-v1'
  | 'asi1-mini'
  | 'azure-gpt-4-turbo'
  | 'azure-gpt-4o'
  | 'azure-gpt-4o-mini'
  | 'azure-o1'
  | 'azure-o3-mini'
  | 'chatgpt-4o-latest'
  | 'chatgpt-4o-latest-reasoner'
  | 'claude-3-5-haiku-20241022'
  | 'claude-3-5-sonnet-20240620'
  | 'claude-3-5-sonnet-20241022'
  | 'claude-3-7-sonnet-20250219'
  | 'claude-3-7-sonnet-thinking'
  | 'claude-3-7-sonnet-thinking:1024'
  | 'claude-3-7-sonnet-thinking:128000'
  | 'claude-3-7-sonnet-thinking:32768'
  | 'claude-3-7-sonnet-thinking:8192'
  | 'claude-3-opus-20240229'
  | 'cognitivecomputations/dolphin-mixtral-8x22b'
  | 'cohere/command-r'
  | 'cohere/command-r-plus-08-2024'
  | 'deepclaude'
  | 'deepseek-ai/DeepSeek-R1-Zero'
  | 'deepseek-chat'
  | 'deepseek-chat-cheaper'
  | 'deepseek-r1-llama-70b'
  | 'deepseek-r1-nano'
  | 'deepseek-r1-sambanova'
  | 'deepseek-reasoner'
  | 'deepseek-reasoner-cheaper'
  | 'deepseek-v3-0324'
  | 'dolphin-2.9.2-qwen2-72b'
  | 'doubao-1.5-pro-256k'
  | 'doubao-1.5-pro-32k'
  | 'doubao-1.5-vision-pro-32k'
  | 'ernie-4.5-8k-preview'
  | 'eva-unit-01/eva-qwen-2.5-72b'
  | 'failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5'
  | 'featherless-ai/Qwerky-72B'
  | 'gemini-2.0-flash-001'
  | 'gemini-2.0-flash-exp'
  | 'gemini-2.0-flash-exp-search'
  | 'gemini-2.0-flash-lite'
  | 'gemini-2.0-flash-thinking-exp-01-21'
  | 'gemini-2.0-flash-thinking-exp-1219'
  | 'gemini-2.0-pro-exp-02-05'
  | 'gemini-2.0-pro-reasoner'
  | 'gemini-2.5-pro-exp-03-25'
  | 'gemini-exp-1206'
  | 'glm-4'
  | 'glm-4-air'
  | 'glm-4-air-0111'
  | 'glm-4-airx'
  | 'glm-4-flash'
  | 'glm-4-long'
  | 'glm-4-plus'
  | 'glm-4-plus-0111'
  | 'glm-zero-preview'
  | 'google/gemini-flash-1.5'
  | 'gpt-3.5-turbo'
  | 'gpt-4-turbo-preview'
  | 'gpt-4.5-preview'
  | 'gpt-4.5-preview-2025-02-27-reasoner'
  | 'gpt-4o'
  | 'gpt-4o-2024-08-06'
  | 'gpt-4o-2024-11-20'
  | 'gpt-4o-mini'
  | 'gpt-4o-mini-search-preview'
  | 'gpt-4o-reasoner'
  | 'gpt-4o-search-preview'
  | 'huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated'
  | 'huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated'
  | 'huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated'
  | 'huihui-ai/Llama-3.3-70B-Instruct-abliterated'
  | 'hunyuan-t1-latest'
  | 'hunyuan-turbos-20250226'
  | 'inflatebot/MN-12B-Mag-Mell-R1'
  | 'inflection/inflection-3-pi'
  | 'inflection/inflection-3-productivity'
  | 'jamba-large-1.6'
  | 'jamba-mini-1.6'
  | 'kimi-latest'
  | 'learnlm-1.5-pro-experimental'
  | 'meta-llama/llama-3.1-8b-instruct'
  | 'meta-llama/llama-3.2-3b-instruct'
  | 'meta-llama/llama-3.2-90b-vision-instruct'
  | 'meta-llama/llama-3.3-70b-instruct'
  | 'microsoft/wizardlm-2-7b'
  | 'microsoft/wizardlm-2-8x22b'
  | 'minimax/minimax-01'
  | 'mistral-small-31-24b-instruct'
  | 'mistralai/Mistral-Nemo-Instruct-2407'
  | 'mistralai/mistral-7b-instruct'
  | 'mistralai/mistral-large'
  | 'mistralai/mistral-saba'
  | 'mistralai/mistral-tiny'
  | 'mlabonne/NeuralDaredevil-8B-abliterated'
  | 'nothingiisreal/L3.1-70B-Celeste-V0.1-BF16'
  | 'nousresearch/hermes-3-llama-3.1-405b'
  | 'nvidia/Llama-3.1-Nemotron-70B-Instruct-HF'
  | 'o1'
  | 'o1-preview'
  | 'o3-mini'
  | 'o3-mini-high'
  | 'o3-mini-low'
  | 'olmo-2-32b-instruct'
  | 'open-r1/OlympicCoder-32B'
  | 'open-r1/OlympicCoder-7b'
  | 'openai/o1-pro'
  | 'phi-4-mini-instruct'
  | 'phi-4-multimodal-instruct'
  | 'qwen-long'
  | 'qwen-max'
  | 'qwen-plus'
  | 'qwen-turbo'
  | 'qwen/qwen-2.5-72b-instruct'
  | 'qwen25-vl-72b-instruct'
  | 'qwq-32b'
  | 'r1-1776'
  | 'raifle/sorcererlm-8x22b'
  | 'sonar'
  | 'sonar-deep-research'
  | 'sonar-pro'
  | 'sonar-reasoning'
  | 'sonar-reasoning-pro'
  | 'step-2-16k'
  | 'step-2-16k-exp'
  | 'step-2-mini'
  | 'thedrummer/skyfall-36b-v2'
  | 'undi95/remm-slerp-l2-13b'
  | 'unsloth/gemma-3-12b-it'
  | 'unsloth/gemma-3-1b-it'
  | 'unsloth/gemma-3-27b-it'
  | 'unsloth/gemma-3-4b-it'
  | 'unsloth/gemma-3-9b-it'
  | 'yi-34b-chat-0205'
  | 'yi-34b-chat-200k'
  | 'yi-large'
  | 'yi-large-turbo'
  | 'yi-lightning'
  | 'yi-medium-200k'

export const ChatModel = {
  EVA_UNIT_01_EVA_L_LA_MA_3_33_70B_V0_0: 'EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0',
  EVA_UNIT_01_EVA_L_LA_MA_3_33_70B_V0_1: 'EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1',
  EVA_UNIT_01_EVA_QWEN2_5_32B_V0_2: 'EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2',
  EVA_UNIT_01_EVA_QWEN2_5_72B_V0_2: 'EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2',
  ENVOID_LLAMA_3_05_NT_STORYBREAKER_MINISTRAL_70B:
    'Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B',
  ENVOID_LLAMA_3_05_NEMOTRON_TENYXCHAT_STORYBREAKER_70B:
    'Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B',
  GALRION_SOFTWORKS_MN_LOOSE_CANNON_12B_V1: 'GalrionSoftworks/MN-LooseCannon-12B-v1',
  GRYPHE_MYTHO_MAX_L2_13B: 'Gryphe/MythoMax-L2-13b',
  INFERMATIC_MN_12B_INFEROR_V0_0: 'Infermatic/MN-12B-Inferor-v0.0',
  LATITUDE_GAMES_WAYFARER_LARGE_70B_LLAMA_3_3: 'LatitudeGames/Wayfarer-Large-70B-Llama-3.3',
  LLAMA_3_1_TULU_3_405B: 'Llama-3.1-Tulu-3-405B',
  'LLAMA_3_3+3_1_70B_ARLI_AI_RP_MAX_V1_3': 'Llama-3.3+3.1-70B-ArliAI-RPMax-v1.3',
  LLAMA_3_3_70B_MIRAI_FANFARE: 'Llama-3.3-70B-MiraiFanfare',
  MARINARA_SPAGHETTI_NEMO_MIX_UNLEASHED_12B: 'MarinaraSpaghetti/NemoMix-Unleashed-12B',
  META_LLAMA_3_1_405B_INSTRUCT_FP8: 'Meta-Llama-3-1-405B-Instruct-FP8',
  META_LLAMA_3_1_8B_INSTRUCT_FP8: 'Meta-Llama-3-1-8B-Instruct-FP8',
  MISTRAL_NEMO_12B_ARLI_AI_RP_MAX_V1_2: 'Mistral-Nemo-12B-ArliAI-RPMax-v1.2',
  MISTRAL_NEMO_12B_WAYFARER: 'Mistral-Nemo-12B-Wayfarer',
  NEVER_SLEEP_LLAMA_3_LUMIMAID_70B_V0_1: 'NeverSleep/Llama-3-Lumimaid-70B-v0.1',
  NEVER_SLEEP_LUMIMAID_V0_2_70B: 'NeverSleep/Lumimaid-v0.2-70B',
  NEXUSFLOW_ATHENE_V2_CHAT: 'Nexusflow/Athene-V2-Chat',
  QWEN_QW_Q_32B_PREVIEW: 'Qwen/QwQ-32B-Preview',
  QWEN_QWEN2_5_CODER_32B_INSTRUCT: 'Qwen/Qwen2.5-Coder-32B-Instruct',
  QWEN2_5_32B_DAZZLING_STAR_AURORA_32B_V0_0: 'Qwen2.5-32B-Dazzling-Star-Aurora-32b-v0.0',
  QWEN2_5_32B_EVA_V0_2: 'Qwen2.5-32B-EVA-v0.2',
  SAO10K_L3_8B_STHENO_V3_2: 'Sao10K/L3-8B-Stheno-v3.2',
  SAO10K_L3_1_70B_EURYALE_V2_2: 'Sao10K/L3.1-70B-Euryale-v2.2',
  SAO10K_L3_1_70B_HANAMI_X1: 'Sao10K/L3.1-70B-Hanami-x1',
  SAO10K_L3_3_70B_EURYALE_V2_3: 'Sao10K/L3.3-70B-Euryale-v2.3',
  STEELSKULL_L3_3_CU_MAI_R1_70B: 'Steelskull/L3.3-Cu-Mai-R1-70b',
  STEELSKULL_L3_3_DAMASCUS_R1: 'Steelskull/L3.3-Damascus-R1',
  STEELSKULL_L3_3_ELECTRA_R1_70B: 'Steelskull/L3.3-Electra-R1-70b',
  STEELSKULL_L3_3_MS_EVALEBIS_70B: 'Steelskull/L3.3-MS-Evalebis-70b',
  STEELSKULL_L3_3_MS_EVAYALE_70B: 'Steelskull/L3.3-MS-Evayale-70B',
  STEELSKULL_L3_3_MS_NEVORIA_70B: 'Steelskull/L3.3-MS-Nevoria-70b',
  STEELSKULL_L3_3_NEVORIA_R1_70B: 'Steelskull/L3.3-Nevoria-R1-70b',
  THE_DRUMMER_ANUBIS_70B_V1: 'TheDrummer/Anubis-70B-v1',
  THE_DRUMMER_CYDONIA_24B_V2: 'TheDrummer/Cydonia-24B-v2',
  THE_DRUMMER_ROCINANTE_12B_V1_1: 'TheDrummer/Rocinante-12B-v1.1',
  THE_DRUMMER_UNSLOP_NEMO_12B_V4_1: 'TheDrummer/UnslopNemo-12B-v4.1',
  VONGOLA_CHOUKO_STARCANNON_UNLEASHED_12B_V1_0: 'VongolaChouko/Starcannon-Unleashed-12B-v1.0',
  ABACUSAI_DRACARYS_72B_INSTRUCT: 'abacusai/Dracarys-72B-Instruct',
  AION_LABS_AION_1_0: 'aion-labs/aion-1.0',
  AION_LABS_AION_1_0_MINI: 'aion-labs/aion-1.0-mini',
  AION_LABS_AION_RP_LLAMA_3_1_8B: 'aion-labs/aion-rp-llama-3.1-8b',
  AMAZON_NOVA_LITE_V1: 'amazon/nova-lite-v1',
  AMAZON_NOVA_MICRO_V1: 'amazon/nova-micro-v1',
  AMAZON_NOVA_PRO_V1: 'amazon/nova-pro-v1',
  ANTHRACITE_ORG_MAGNUM_V2_72B: 'anthracite-org/magnum-v2-72b',
  ANTHRACITE_ORG_MAGNUM_V4_72B: 'anthracite-org/magnum-v4-72b',
  ANUBIS_PRO_105B_V1: 'anubis-pro-105b-v1',
  ASI1_MINI: 'asi1-mini',
  AZURE_GPT_4_TURBO: 'azure-gpt-4-turbo',
  AZURE_GPT_4O: 'azure-gpt-4o',
  AZURE_GPT_4O_MINI: 'azure-gpt-4o-mini',
  AZURE_O1: 'azure-o1',
  AZURE_O3_MINI: 'azure-o3-mini',
  CHATGPT_4O_LATEST: 'chatgpt-4o-latest',
  CHATGPT_4O_LATEST_REASONER: 'chatgpt-4o-latest-reasoner',
  CLAUDE_3_5_HAIKU_20241022: 'claude-3-5-haiku-20241022',
  CLAUDE_3_5_SONNET_20240620: 'claude-3-5-sonnet-20240620',
  CLAUDE_3_5_SONNET_20241022: 'claude-3-5-sonnet-20241022',
  CLAUDE_3_7_SONNET_20250219: 'claude-3-7-sonnet-20250219',
  CLAUDE_3_7_SONNET_THINKING: 'claude-3-7-sonnet-thinking',
  'CLAUDE_3_7_SONNET_THINKING:1024': 'claude-3-7-sonnet-thinking:1024',
  'CLAUDE_3_7_SONNET_THINKING:128000': 'claude-3-7-sonnet-thinking:128000',
  'CLAUDE_3_7_SONNET_THINKING:32768': 'claude-3-7-sonnet-thinking:32768',
  'CLAUDE_3_7_SONNET_THINKING:8192': 'claude-3-7-sonnet-thinking:8192',
  CLAUDE_3_OPUS_20240229: 'claude-3-opus-20240229',
  COGNITIVECOMPUTATIONS_DOLPHIN_MIXTRAL_8X22B: 'cognitivecomputations/dolphin-mixtral-8x22b',
  COHERE_COMMAND_R: 'cohere/command-r',
  COHERE_COMMAND_R_PLUS_08_2024: 'cohere/command-r-plus-08-2024',
  DEEPCLAUDE: 'deepclaude',
  DEEPSEEK_AI_DEEP_SEEK_R1_ZERO: 'deepseek-ai/DeepSeek-R1-Zero',
  DEEPSEEK_CHAT: 'deepseek-chat',
  DEEPSEEK_CHAT_CHEAPER: 'deepseek-chat-cheaper',
  DEEPSEEK_R1_LLAMA_70B: 'deepseek-r1-llama-70b',
  DEEPSEEK_R1_NANO: 'deepseek-r1-nano',
  DEEPSEEK_R1_SAMBANOVA: 'deepseek-r1-sambanova',
  DEEPSEEK_REASONER: 'deepseek-reasoner',
  DEEPSEEK_REASONER_CHEAPER: 'deepseek-reasoner-cheaper',
  DEEPSEEK_V3_0324: 'deepseek-v3-0324',
  DOLPHIN_2_9_2_QWEN2_72B: 'dolphin-2.9.2-qwen2-72b',
  DOUBAO_1_5_PRO_256K: 'doubao-1.5-pro-256k',
  DOUBAO_1_5_PRO_32K: 'doubao-1.5-pro-32k',
  DOUBAO_1_5_VISION_PRO_32K: 'doubao-1.5-vision-pro-32k',
  ERNIE_4_5_8K_PREVIEW: 'ernie-4.5-8k-preview',
  EVA_UNIT_01_EVA_QWEN_2_5_72B: 'eva-unit-01/eva-qwen-2.5-72b',
  FAILSPY_META_LLAMA_3_70B_INSTRUCT_ABLITERATED_V3_5:
    'failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5',
  FEATHERLESS_AI_QWERKY_72B: 'featherless-ai/Qwerky-72B',
  GEMINI_2_0_FLASH_001: 'gemini-2.0-flash-001',
  GEMINI_2_0_FLASH_EXP: 'gemini-2.0-flash-exp',
  GEMINI_2_0_FLASH_EXP_SEARCH: 'gemini-2.0-flash-exp-search',
  GEMINI_2_0_FLASH_LITE: 'gemini-2.0-flash-lite',
  GEMINI_2_0_FLASH_THINKING_EXP_01_21: 'gemini-2.0-flash-thinking-exp-01-21',
  GEMINI_2_0_FLASH_THINKING_EXP_1219: 'gemini-2.0-flash-thinking-exp-1219',
  GEMINI_2_0_PRO_EXP_02_05: 'gemini-2.0-pro-exp-02-05',
  GEMINI_2_0_PRO_REASONER: 'gemini-2.0-pro-reasoner',
  GEMINI_2_5_PRO_EXP_03_25: 'gemini-2.5-pro-exp-03-25',
  GEMINI_EXP_1206: 'gemini-exp-1206',
  GLM_4: 'glm-4',
  GLM_4_AIR: 'glm-4-air',
  GLM_4_AIR_0111: 'glm-4-air-0111',
  GLM_4_AIRX: 'glm-4-airx',
  GLM_4_FLASH: 'glm-4-flash',
  GLM_4_LONG: 'glm-4-long',
  GLM_4_PLUS: 'glm-4-plus',
  GLM_4_PLUS_0111: 'glm-4-plus-0111',
  GLM_ZERO_PREVIEW: 'glm-zero-preview',
  GOOGLE_GEMINI_FLASH_1_5: 'google/gemini-flash-1.5',
  GPT_3_5_TURBO: 'gpt-3.5-turbo',
  GPT_4_TURBO_PREVIEW: 'gpt-4-turbo-preview',
  GPT_4_5_PREVIEW: 'gpt-4.5-preview',
  GPT_4_5_PREVIEW_2025_02_27_REASONER: 'gpt-4.5-preview-2025-02-27-reasoner',
  GPT_4O: 'gpt-4o',
  GPT_4O_2024_08_06: 'gpt-4o-2024-08-06',
  GPT_4O_2024_11_20: 'gpt-4o-2024-11-20',
  GPT_4O_MINI: 'gpt-4o-mini',
  GPT_4O_MINI_SEARCH_PREVIEW: 'gpt-4o-mini-search-preview',
  GPT_4O_REASONER: 'gpt-4o-reasoner',
  GPT_4O_SEARCH_PREVIEW: 'gpt-4o-search-preview',
  HUIHUI_AI_DEEP_SEEK_R1_DISTILL_LLAMA_70B_ABLITERATED:
    'huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated',
  HUIHUI_AI_DEEP_SEEK_R1_DISTILL_QWEN_32B_ABLITERATED:
    'huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated',
  HUIHUI_AI_LLAMA_3_1_NEMOTRON_70B_INSTRUCT_HF_ABLITERATED:
    'huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated',
  HUIHUI_AI_LLAMA_3_3_70B_INSTRUCT_ABLITERATED: 'huihui-ai/Llama-3.3-70B-Instruct-abliterated',
  HUNYUAN_T1_LATEST: 'hunyuan-t1-latest',
  HUNYUAN_TURBOS_20250226: 'hunyuan-turbos-20250226',
  INFLATEBOT_MN_12B_MAG_MELL_R1: 'inflatebot/MN-12B-Mag-Mell-R1',
  INFLECTION_INFLECTION_3_PI: 'inflection/inflection-3-pi',
  INFLECTION_INFLECTION_3_PRODUCTIVITY: 'inflection/inflection-3-productivity',
  JAMBA_LARGE_1_6: 'jamba-large-1.6',
  JAMBA_MINI_1_6: 'jamba-mini-1.6',
  KIMI_LATEST: 'kimi-latest',
  LEARNLM_1_5_PRO_EXPERIMENTAL: 'learnlm-1.5-pro-experimental',
  META_LLAMA_LLAMA_3_1_8B_INSTRUCT: 'meta-llama/llama-3.1-8b-instruct',
  META_LLAMA_LLAMA_3_2_3B_INSTRUCT: 'meta-llama/llama-3.2-3b-instruct',
  META_LLAMA_LLAMA_3_2_90B_VISION_INSTRUCT: 'meta-llama/llama-3.2-90b-vision-instruct',
  META_LLAMA_LLAMA_3_3_70B_INSTRUCT: 'meta-llama/llama-3.3-70b-instruct',
  MICROSOFT_WIZARDLM_2_7B: 'microsoft/wizardlm-2-7b',
  MICROSOFT_WIZARDLM_2_8X22B: 'microsoft/wizardlm-2-8x22b',
  MINIMAX_MINIMAX_01: 'minimax/minimax-01',
  MISTRAL_SMALL_31_24B_INSTRUCT: 'mistral-small-31-24b-instruct',
  MISTRALAI_MISTRAL_NEMO_INSTRUCT_2407: 'mistralai/Mistral-Nemo-Instruct-2407',
  MISTRALAI_MISTRAL_7B_INSTRUCT: 'mistralai/mistral-7b-instruct',
  MISTRALAI_MISTRAL_LARGE: 'mistralai/mistral-large',
  MISTRALAI_MISTRAL_SABA: 'mistralai/mistral-saba',
  MISTRALAI_MISTRAL_TINY: 'mistralai/mistral-tiny',
  MLABONNE_NEURAL_DAREDEVIL_8B_ABLITERATED: 'mlabonne/NeuralDaredevil-8B-abliterated',
  NOTHINGIISREAL_L3_1_70B_CELESTE_V0_1_BF16: 'nothingiisreal/L3.1-70B-Celeste-V0.1-BF16',
  NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B: 'nousresearch/hermes-3-llama-3.1-405b',
  NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT_HF: 'nvidia/Llama-3.1-Nemotron-70B-Instruct-HF',
  O1: 'o1',
  O1_PREVIEW: 'o1-preview',
  O3_MINI: 'o3-mini',
  O3_MINI_HIGH: 'o3-mini-high',
  O3_MINI_LOW: 'o3-mini-low',
  OLMO_2_32B_INSTRUCT: 'olmo-2-32b-instruct',
  OPEN_R1_OLYMPIC_CODER_32B: 'open-r1/OlympicCoder-32B',
  OPEN_R1_OLYMPIC_CODER_7B: 'open-r1/OlympicCoder-7b',
  OPENAI_O1_PRO: 'openai/o1-pro',
  PHI_4_MINI_INSTRUCT: 'phi-4-mini-instruct',
  PHI_4_MULTIMODAL_INSTRUCT: 'phi-4-multimodal-instruct',
  QWEN_LONG: 'qwen-long',
  QWEN_MAX: 'qwen-max',
  QWEN_PLUS: 'qwen-plus',
  QWEN_TURBO: 'qwen-turbo',
  QWEN_QWEN_2_5_72B_INSTRUCT: 'qwen/qwen-2.5-72b-instruct',
  QWEN25_VL_72B_INSTRUCT: 'qwen25-vl-72b-instruct',
  QWQ_32B: 'qwq-32b',
  R1_1776: 'r1-1776',
  RAIFLE_SORCERERLM_8X22B: 'raifle/sorcererlm-8x22b',
  SONAR: 'sonar',
  SONAR_DEEP_RESEARCH: 'sonar-deep-research',
  SONAR_PRO: 'sonar-pro',
  SONAR_REASONING: 'sonar-reasoning',
  SONAR_REASONING_PRO: 'sonar-reasoning-pro',
  STEP_2_16K: 'step-2-16k',
  STEP_2_16K_EXP: 'step-2-16k-exp',
  STEP_2_MINI: 'step-2-mini',
  THEDRUMMER_SKYFALL_36B_V2: 'thedrummer/skyfall-36b-v2',
  UNDI95_REMM_SLERP_L2_13B: 'undi95/remm-slerp-l2-13b',
  UNSLOTH_GEMMA_3_12B_IT: 'unsloth/gemma-3-12b-it',
  UNSLOTH_GEMMA_3_1B_IT: 'unsloth/gemma-3-1b-it',
  UNSLOTH_GEMMA_3_27B_IT: 'unsloth/gemma-3-27b-it',
  UNSLOTH_GEMMA_3_4B_IT: 'unsloth/gemma-3-4b-it',
  UNSLOTH_GEMMA_3_9B_IT: 'unsloth/gemma-3-9b-it',
  YI_34B_CHAT_0205: 'yi-34b-chat-0205',
  YI_34B_CHAT_200K: 'yi-34b-chat-200k',
  YI_LARGE: 'yi-large',
  YI_LARGE_TURBO: 'yi-large-turbo',
  YI_LIGHTNING: 'yi-lightning',
  YI_MEDIUM_200K: 'yi-medium-200k'
} as const

export type ImageModel =
  | 'dall-e-3'
  | 'dall-e-3-hd'
  | 'dreamshaper_8_93211.safetensors'
  | 'fast-sdxl'
  | 'flux-1-dev'
  | 'flux-lightning'
  | 'flux-lora'
  | 'flux-pro'
  | 'flux-pro/v1.1'
  | 'flux-pro/v1.1-ultra'
  | 'flux-realism'
  | 'flux/schnell'
  | 'ideogram-ai/ideogram-v2'
  | 'ideogram-ai/ideogram-v2-turbo'
  | 'imagen-3.0-generate-002'
  | 'midjourney'
  | 'playground-v25'
  | 'promptchan'
  | 'proteus-v0.2'
  | 'recraft-v3'
  | 'revAnimated_v122.safetensors'
  | 'sd3_base_medium.safetensors'
  | 'stable-diffusion-v35-large'
  | 'stable-diffusion-v35-large/turbo'

export const ImageModel = {
  DALL_E_3: 'dall-e-3',
  DALL_E_3_HD: 'dall-e-3-hd',
  DREAMSHAPER_8_93211_SAFETENSORS: 'dreamshaper_8_93211.safetensors',
  FAST_SDXL: 'fast-sdxl',
  FLUX_1_DEV: 'flux-1-dev',
  FLUX_LIGHTNING: 'flux-lightning',
  FLUX_LORA: 'flux-lora',
  FLUX_PRO: 'flux-pro',
  FLUX_PRO_V1_1: 'flux-pro/v1.1',
  FLUX_PRO_V1_1_ULTRA: 'flux-pro/v1.1-ultra',
  FLUX_REALISM: 'flux-realism',
  FLUX_SCHNELL: 'flux/schnell',
  IDEOGRAM_AI_IDEOGRAM_V2: 'ideogram-ai/ideogram-v2',
  IDEOGRAM_AI_IDEOGRAM_V2_TURBO: 'ideogram-ai/ideogram-v2-turbo',
  IMAGEN_3_0_GENERATE_002: 'imagen-3.0-generate-002',
  MIDJOURNEY: 'midjourney',
  PLAYGROUND_V25: 'playground-v25',
  PROMPTCHAN: 'promptchan',
  PROTEUS_V0_2: 'proteus-v0.2',
  RECRAFT_V3: 'recraft-v3',
  REV_ANIMATED_V122_SAFETENSORS: 'revAnimated_v122.safetensors',
  SD3_BASE_MEDIUM_SAFETENSORS: 'sd3_base_medium.safetensors',
  STABLE_DIFFUSION_V35_LARGE: 'stable-diffusion-v35-large',
  STABLE_DIFFUSION_V35_LARGE_TURBO: 'stable-diffusion-v35-large/turbo'
} as const

/**
 * Things to exclude in the generated image.
 */
export type NegativePrompt = string

/**
 * The role of the message sender (e.g., 'user', 'assistant').
 */
export type Role = 'user' | 'assistant' | 'system'

/**
 * The role of the message sender (e.g., 'user', 'assistant').
 */
export const Role = {
  USER: 'user',
  ASSISTANT: 'assistant',
  SYSTEM: 'system'
} as const

export type Message = {
  role?: Role
  /**
   * The content of the message.
   */
  content?: TextContent
}

/**
 * The content of the message.
 */
export type TextContent = string

export type CompoundMessage = {
  role?: Role
  /**
   * The content of the message.
   */
  content?: TextContent | MultipartContent
}

/**
 * List of parts to send
 */
export type MultipartContent = Array<MultipartText | MultipartImageUrl>

export type MultipartText = {
  type: 'text'
  text: string
}

export type MultipartImageUrl = {
  type: 'image_url'
  image_url: {
    url: string
  }
}

export type Delta = {
  /**
   * The content of the delta.
   */
  content?: string
}

export type PaymentSource = 'XNO'

export const PaymentSource = {
  XNO: 'XNO'
} as const

/**
 * Cost for running the query.
 */
export type Cost = unknown

/**
 * Remaining balance in wallet.
 */
export type RemainingBalance = unknown

export type _Object = 'list' | 'model'

export const _Object = {
  LIST: 'list',
  MODEL: 'model'
} as const

/**
 * Timestamp when the completion was created.
 */
export type Created = number

/**
 * Nano address
 */
export type NanoAddress = string

/**
 * A fully-written script to skip AI script generation (takes precedence over prompt)
 */
export type ScriptStyle =
  | 'default'
  | 'engaging_conversational'
  | 'kind_biography'
  | 'hero_journey'
  | 'emotional_story'
  | 'dramatic_reveal'
  | 'heartwarming_stories'
  | 'educational_history'
  | 'news_brief'

/**
 * A fully-written script to skip AI script generation (takes precedence over prompt)
 */
export const ScriptStyle = {
  /**
   * Classic story with traditional narrative structure
   */
  DEFAULT: 'default',
  /**
   * Casual, dialogue-rich storytelling
   */
  ENGAGING_CONVERSATIONAL: 'engaging_conversational',
  /**
   * Biographical style with personal touch
   */
  KIND_BIOGRAPHY: 'kind_biography',
  /**
   * Epic narrative following hero's journey structure
   */
  HERO_JOURNEY: 'hero_journey',
  /**
   * Emotionally resonant narrative
   */
  EMOTIONAL_STORY: 'emotional_story',
  /**
   * Story with dramatic twists and reveals
   */
  DRAMATIC_REVEAL: 'dramatic_reveal',
  /**
   * Uplifting, feel-good narratives
   */
  HEARTWARMING_STORIES: 'heartwarming_stories',
  /**
   * Educational content with historical context
   */
  EDUCATIONAL_HISTORY: 'educational_history',
  /**
   * Concise, journalistic style
   */
  NEWS_BRIEF: 'news_brief'
} as const

/**
 * Story framework for video generation
 */
export type VideoFramework =
  | 'default'
  | 'emotional_story'
  | 'product_showcase'
  | 'tutorial'
  | 'engaging_conversational'
  | 'kind_biography'
  | 'hero_journey'
  | 'dramatic_reveal'
  | 'heartwarming_stories'
  | 'educational_history'
  | 'news_brief'

/**
 * Story framework for video generation
 */
export const VideoFramework = {
  DEFAULT: 'default',
  EMOTIONAL_STORY: 'emotional_story',
  PRODUCT_SHOWCASE: 'product_showcase',
  TUTORIAL: 'tutorial',
  ENGAGING_CONVERSATIONAL: 'engaging_conversational',
  KIND_BIOGRAPHY: 'kind_biography',
  HERO_JOURNEY: 'hero_journey',
  DRAMATIC_REVEAL: 'dramatic_reveal',
  HEARTWARMING_STORIES: 'heartwarming_stories',
  EDUCATIONAL_HISTORY: 'educational_history',
  NEWS_BRIEF: 'news_brief'
} as const

/**
 * Image style for Recraft model
 */
export type RecraftStyle =
  | 'any'
  | 'realistic_image'
  | 'digital_illustration'
  | 'realistic_image/b_and_w'
  | 'realistic_image/hard_flash'
  | 'realistic_image/hdr'
  | 'realistic_image/natural_light'
  | 'realistic_image/studio_portrait'
  | 'realistic_image/enterprise'
  | 'realistic_image/motion_blur'
  | 'digital_illustration/pixel_art'
  | 'digital_illustration/hand_drawn'
  | 'digital_illustration/grain'
  | 'digital_illustration/infantile_sketch'
  | 'digital_illustration/2d_art_poster'
  | 'digital_illustration/handmade_3d'
  | 'digital_illustration/hand_drawn_outline'
  | 'digital_illustration/engraving_color'
  | 'digital_illustration/2d_art_poster_2'

/**
 * Image style for Recraft model
 */
export const RecraftStyle = {
  /**
   * Default style
   */
  ANY: 'any',
  /**
   * Realistic photography
   */
  REALISTIC_IMAGE: 'realistic_image',
  /**
   * Digital art and illustrations
   */
  DIGITAL_ILLUSTRATION: 'digital_illustration',
  /**
   * Black and white photography
   */
  REALISTIC_IMAGE_B_AND_W: 'realistic_image/b_and_w',
  /**
   * Hard flash photography
   */
  REALISTIC_IMAGE_HARD_FLASH: 'realistic_image/hard_flash',
  /**
   * HDR photography
   */
  REALISTIC_IMAGE_HDR: 'realistic_image/hdr',
  /**
   * Natural lighting photography
   */
  REALISTIC_IMAGE_NATURAL_LIGHT: 'realistic_image/natural_light',
  /**
   * Studio portrait photography
   */
  REALISTIC_IMAGE_STUDIO_PORTRAIT: 'realistic_image/studio_portrait',
  /**
   * Professional/corporate photography
   */
  REALISTIC_IMAGE_ENTERPRISE: 'realistic_image/enterprise',
  /**
   * Motion blur effect
   */
  REALISTIC_IMAGE_MOTION_BLUR: 'realistic_image/motion_blur',
  /**
   * Pixel art style
   */
  DIGITAL_ILLUSTRATION_PIXEL_ART: 'digital_illustration/pixel_art',
  /**
   * Hand-drawn illustration
   */
  DIGITAL_ILLUSTRATION_HAND_DRAWN: 'digital_illustration/hand_drawn',
  /**
   * Grainy illustration style
   */
  DIGITAL_ILLUSTRATION_GRAIN: 'digital_illustration/grain',
  /**
   * Child-like sketch style
   */
  DIGITAL_ILLUSTRATION_INFANTILE_SKETCH: 'digital_illustration/infantile_sketch',
  /**
   * 2D poster art
   */
  DIGITAL_ILLUSTRATION_2D_ART_POSTER: 'digital_illustration/2d_art_poster',
  /**
   * 3D-like illustration
   */
  DIGITAL_ILLUSTRATION_HANDMADE_3D: 'digital_illustration/handmade_3d',
  /**
   * Line art style
   */
  DIGITAL_ILLUSTRATION_HAND_DRAWN_OUTLINE: 'digital_illustration/hand_drawn_outline',
  /**
   * Color engraving style
   */
  DIGITAL_ILLUSTRATION_ENGRAVING_COLOR: 'digital_illustration/engraving_color',
  /**
   * Alternative 2D poster style
   */
  DIGITAL_ILLUSTRATION_2D_ART_POSTER_2: 'digital_illustration/2d_art_poster_2'
} as const

/**
 * LoRA style for Flux model
 */
export type FluxLoraStyle =
  | 'ghibsky-comic-book'
  | 'colour-sketches'
  | 'sketch-paint'
  | '90s-anime'
  | '2000s-crime-thrillers'
  | 'xno-symbol-flux'

/**
 * LoRA style for Flux model
 */
export const FluxLoraStyle = {
  /**
   * GHIBSKY style painting (prompt prefix: GHIBSKY style painting,)
   */
  GHIBSKY_COMIC_BOOK: 'ghibsky-comic-book',
  /**
   * Colour Sketches Illustration (prompt prefix: illustration)
   */
  COLOUR_SKETCHES: 'colour-sketches',
  /**
   * Sketch Paint Illustration (prompt prefix: sk3tchpa1nt style illustration)
   */
  SKETCH_PAINT: 'sketch-paint',
  /**
   * 90s Anime Art (prompt prefix: 90s anime style,)
   */
  '90S_ANIME': '90s-anime',
  /**
   * 2000s Crime Thrillers (prompt prefix: ArsMovieStill, movie still from a gritty, high-contrast 2000s crime thriller movie,)
   */
  '2000S_CRIME_THRILLERS': '2000s-crime-thrillers',
  /**
   * XNO Symbol (prompt prefix: xno_symbol)
   */
  XNO_SYMBOL_FLUX: 'xno-symbol-flux'
} as const

/**
 * Style for video captions
 */
export type CaptionStyle =
  | 'default'
  | 'minimal'
  | 'neon'
  | 'cinematic'
  | 'fancy'
  | 'tiktok'
  | 'highlight'
  | 'gradient'
  | 'instagram'
  | 'vida'
  | 'manuscripts'

/**
 * Style for video captions
 */
export const CaptionStyle = {
  DEFAULT: 'default',
  MINIMAL: 'minimal',
  NEON: 'neon',
  CINEMATIC: 'cinematic',
  FANCY: 'fancy',
  TIKTOK: 'tiktok',
  HIGHLIGHT: 'highlight',
  GRADIENT: 'gradient',
  INSTAGRAM: 'instagram',
  VIDA: 'vida',
  MANUSCRIPTS: 'manuscripts'
} as const

/**
 * Output video quality
 */
export type VideoQuality = 'low' | 'medium' | 'high'

/**
 * Output video quality
 */
export const VideoQuality = {
  LOW: 'low',
  MEDIUM: 'medium',
  HIGH: 'high'
} as const

/**
 * Transition effect between scenes
 */
export type TransitionEffect = 'fade' | 'dissolve' | 'slide' | 'zoom' | 'none'

/**
 * Transition effect between scenes
 */
export const TransitionEffect = {
  FADE: 'fade',
  DISSOLVE: 'dissolve',
  SLIDE: 'slide',
  ZOOM: 'zoom',
  NONE: 'none'
} as const

/**
 * Voice ID for narration
 */
export type VoiceId =
  | '9BWtsMINqrJLrRacOk9x'
  | 'CwhRBWXzGAHq8TQ4Fs17'
  | 'EXAVITQu4vr4xnSDxMaL'
  | 'FGY2WhTYpPnrIDTdsKH5'
  | 'IKne3meq5aSn9XLyUdCD'
  | 'JBFqnCBsd6RMkjVDRZzb'
  | 'N2lVS1w4EtoT3dr4eOWO'
  | 'SAz9YHcvj6GT2YYXdXww'
  | 'TX3LPaxmHKxFdv7VOQHJ'
  | 'XB0fDUnXU5powFXDhCwa'
  | 'Xb7hH8MSUJpSbSDYk0k2'
  | 'XrExE9yKIg1WjnnlVkGX'
  | 'bIHbv24MWmeRgasZH58o'
  | 'cgSgspJ2msm6clMCkdW9'
  | 'cjVigY5qzO86Huf0OWal'
  | 'nPczCjzI2devNBz1zQrb'
  | 'zWDA589rUKXuLnPRDtAG'
  | 'KHCvMklQZZo0O30ERnVn'
  | 'Nh2zY9kknu6z4pZy6FhD'
  | 'YExhVa4bZONzeingloMX'

/**
 * Voice ID for narration
 */
export const VoiceId = {
  /**
   * Aria: Female, American, expressive (best for social media)
   */
  '9B_WTS_MI_NQR_J_LR_RAC_OK9X': '9BWtsMINqrJLrRacOk9x',
  /**
   * Roger: Male, American, confident (best for social media)
   */
  CWH_RBW_XZ_GA_HQ8TQ4FS17: 'CwhRBWXzGAHq8TQ4Fs17',
  /**
   * Sarah: Female, American, soft (best for news)
   */
  EXAVIT_QU4VR4XN_S_DX_MA_L: 'EXAVITQu4vr4xnSDxMaL',
  /**
   * Laura: Female, American, upbeat (best for social media)
   */
  FGY2_WH_T_YP_PNR_ID_TDS_KH5: 'FGY2WhTYpPnrIDTdsKH5',
  /**
   * Charlie: Male, Australian, natural (best for conversational)
   */
  I_KNE3MEQ5A_SN9X_LY_UD_CD: 'IKne3meq5aSn9XLyUdCD',
  /**
   * George: Male, British, warm (best for narration)
   */
  JB_FQN_CBSD6R_MKJ_VDR_ZZB: 'JBFqnCBsd6RMkjVDRZzb',
  /**
   * Callum: Male, Transatlantic, intense (best for characters)
   */
  N2L_VS1W4_ETO_T3DR4E_OWO: 'N2lVS1w4EtoT3dr4eOWO',
  /**
   * River: Female, American, confident (best for social media)
   */
  S_AZ9Y_HCVJ6GT2YY_XD_XWW: 'SAz9YHcvj6GT2YYXdXww',
  /**
   * Liam: Male, American, articulate (best for narration)
   */
  TX3L_PAXM_H_KX_FDV7VOQHJ: 'TX3LPaxmHKxFdv7VOQHJ',
  /**
   * Charlotte: Female, Swedish, seductive (best for characters)
   */
  XB0F_D_UN_XU5POW_FX_DH_CWA: 'XB0fDUnXU5powFXDhCwa',
  /**
   * Alice: Female, British, confident (best for news)
   */
  XB7H_H8MSU_JP_SB_SD_YK0K2: 'Xb7hH8MSUJpSbSDYk0k2',
  /**
   * Matilda: Female, American, friendly (best for narration)
   */
  XR_EX_E9Y_K_IG1_WJNNL_VK_GX: 'XrExE9yKIg1WjnnlVkGX',
  /**
   * Will: Male, American, friendly (best for social media)
   */
  B_I_HBV24M_WME_RGAS_ZH58O: 'bIHbv24MWmeRgasZH58o',
  /**
   * Jessica: Female, American, expressive (best for conversational)
   */
  CG_SGSP_J2MSM6CL_M_CKD_W9: 'cgSgspJ2msm6clMCkdW9',
  /**
   * Eric: Male, American, friendly (best for conversational)
   */
  CJ_VIG_Y5QZ_O86_HUF0O_WAL: 'cjVigY5qzO86Huf0OWal',
  /**
   * Brian: Male, American, deep (best for narration)
   */
  N_PCZ_CJZ_I2DEV_N_BZ1Z_QRB: 'nPczCjzI2devNBz1zQrb',
  /**
   * John: Male, American, wise (best for characters animation)
   */
  Z_WDA589R_UK_XU_LN_PR_DT_AG: 'zWDA589rUKXuLnPRDtAG',
  /**
   * Sara Martin: Female, Spanish, wise (best for informative educational)
   */
  KH_CV_MKL_QZ_ZO0O30E_RN_VN: 'KHCvMklQZZo0O30ERnVn',
  /**
   * David Martin: Male, Spanish, confident (best for narrative story)
   */
  NH2Z_Y9KKNU6Z4P_ZY6_FH_D: 'Nh2zY9kknu6z4pZy6FhD',
  /**
   * Juan Carlos: Male, Latin American, casual (best for conversational)
   */
  Y_EXH_VA4B_ZO_NZEINGLO_MX: 'YExhVa4bZONzeingloMX'
} as const

/**
 * Background music track for video
 */
export type MusicTrack =
  | 'video-creation/music/adventure/temple_of_treasures.mp3'
  | 'video-creation/music/adventure/adventurous_intro.mp3'
  | 'video-creation/music/ambient/gentle_ambient_loop.mp3'
  | 'video-creation/music/ambient/serene_ambience.mp3'
  | 'video-creation/music/ambient/soothing_ambience.mp3'
  | 'video-creation/music/ambient/soothing_ambient_backdrop.mp3'
  | 'video-creation/music/ambient/tranquil_ambience.mp3'
  | 'video-creation/music/ambient/dreamscape.mp3'
  | 'video-creation/music/ambient/belonging_resonance.mp3'
  | 'video-creation/music/ambient/vivid_memories.mp3'
  | 'video-creation/music/cinematic/cinematic_intro.mp3'
  | 'video-creation/music/cinematic/cinematic_teaser.mp3'
  | 'video-creation/music/cinematic/dramatic_cinematic_score.mp3'
  | 'video-creation/music/cinematic/thriller_cinema_trailer.mp3'
  | 'video-creation/music/cinematic/fractured_paintings.mp3'
  | 'video-creation/music/cinematic/promise_of_tomorrow.mp3'
  | 'video-creation/music/cinematic/spooky_orchestral_theme.mp3'
  | 'video-creation/music/upbeat/light_upbeat_melody.mp3'
  | 'video-creation/music/upbeat/puzzle_time.mp3'
  | 'video-creation/music/upbeat/stomping_drums_rhythm.mp3'
  | 'video-creation/music/upbeat/stomps_and_claps_rhythm_track.mp3'
  | 'video-creation/music/news/news_theme.mp3'
  | 'video-creation/music/vintage/burlesque_sweetheart.mp3'
  | 'video-creation/music/other/highway_nocturne_national_sweetheart.mp3'
  | 'video-creation/music/other/haptic_sensation.mp3'

/**
 * Background music track for video
 */
export const MusicTrack = {
  /**
   * Adventure theme
   */
  VIDEO_CREATION_MUSIC_ADVENTURE_TEMPLE_OF_TREASURES_MP3:
    'video-creation/music/adventure/temple_of_treasures.mp3',
  /**
   * Short adventure intro
   */
  VIDEO_CREATION_MUSIC_ADVENTURE_ADVENTUROUS_INTRO_MP3:
    'video-creation/music/adventure/adventurous_intro.mp3',
  /**
   * Gentle ambient music
   */
  VIDEO_CREATION_MUSIC_AMBIENT_GENTLE_AMBIENT_LOOP_MP3:
    'video-creation/music/ambient/gentle_ambient_loop.mp3',
  /**
   * Serene ambient theme
   */
  VIDEO_CREATION_MUSIC_AMBIENT_SERENE_AMBIENCE_MP3:
    'video-creation/music/ambient/serene_ambience.mp3',
  /**
   * Soothing ambient music
   */
  VIDEO_CREATION_MUSIC_AMBIENT_SOOTHING_AMBIENCE_MP3:
    'video-creation/music/ambient/soothing_ambience.mp3',
  /**
   * Soothing ambient backdrop
   */
  VIDEO_CREATION_MUSIC_AMBIENT_SOOTHING_AMBIENT_BACKDROP_MP3:
    'video-creation/music/ambient/soothing_ambient_backdrop.mp3',
  /**
   * Tranquil ambient theme
   */
  VIDEO_CREATION_MUSIC_AMBIENT_TRANQUIL_AMBIENCE_MP3:
    'video-creation/music/ambient/tranquil_ambience.mp3',
  /**
   * Dreamlike ambient
   */
  VIDEO_CREATION_MUSIC_AMBIENT_DREAMSCAPE_MP3: 'video-creation/music/ambient/dreamscape.mp3',
  /**
   * Emotional ambient
   */
  VIDEO_CREATION_MUSIC_AMBIENT_BELONGING_RESONANCE_MP3:
    'video-creation/music/ambient/belonging_resonance.mp3',
  /**
   * Memory-evoking ambient
   */
  VIDEO_CREATION_MUSIC_AMBIENT_VIVID_MEMORIES_MP3:
    'video-creation/music/ambient/vivid_memories.mp3',
  /**
   * Cinematic introduction
   */
  VIDEO_CREATION_MUSIC_CINEMATIC_CINEMATIC_INTRO_MP3:
    'video-creation/music/cinematic/cinematic_intro.mp3',
  /**
   * Cinematic teaser music
   */
  VIDEO_CREATION_MUSIC_CINEMATIC_CINEMATIC_TEASER_MP3:
    'video-creation/music/cinematic/cinematic_teaser.mp3',
  /**
   * Dramatic cinematic
   */
  VIDEO_CREATION_MUSIC_CINEMATIC_DRAMATIC_CINEMATIC_SCORE_MP3:
    'video-creation/music/cinematic/dramatic_cinematic_score.mp3',
  /**
   * Intense thriller
   */
  VIDEO_CREATION_MUSIC_CINEMATIC_THRILLER_CINEMA_TRAILER_MP3:
    'video-creation/music/cinematic/thriller_cinema_trailer.mp3',
  /**
   * Artistic cinematic
   */
  VIDEO_CREATION_MUSIC_CINEMATIC_FRACTURED_PAINTINGS_MP3:
    'video-creation/music/cinematic/fractured_paintings.mp3',
  /**
   * Hopeful cinematic
   */
  VIDEO_CREATION_MUSIC_CINEMATIC_PROMISE_OF_TOMORROW_MP3:
    'video-creation/music/cinematic/promise_of_tomorrow.mp3',
  /**
   * Spooky orchestral
   */
  VIDEO_CREATION_MUSIC_CINEMATIC_SPOOKY_ORCHESTRAL_THEME_MP3:
    'video-creation/music/cinematic/spooky_orchestral_theme.mp3',
  /**
   * Light upbeat
   */
  VIDEO_CREATION_MUSIC_UPBEAT_LIGHT_UPBEAT_MELODY_MP3:
    'video-creation/music/upbeat/light_upbeat_melody.mp3',
  /**
   * Playful puzzle theme
   */
  VIDEO_CREATION_MUSIC_UPBEAT_PUZZLE_TIME_MP3: 'video-creation/music/upbeat/puzzle_time.mp3',
  /**
   * Rhythmic drums
   */
  VIDEO_CREATION_MUSIC_UPBEAT_STOMPING_DRUMS_RHYTHM_MP3:
    'video-creation/music/upbeat/stomping_drums_rhythm.mp3',
  /**
   * Stomps and claps
   */
  VIDEO_CREATION_MUSIC_UPBEAT_STOMPS_AND_CLAPS_RHYTHM_TRACK_MP3:
    'video-creation/music/upbeat/stomps_and_claps_rhythm_track.mp3',
  /**
   * Professional news theme
   */
  VIDEO_CREATION_MUSIC_NEWS_NEWS_THEME_MP3: 'video-creation/music/news/news_theme.mp3',
  /**
   * Vintage burlesque
   */
  VIDEO_CREATION_MUSIC_VINTAGE_BURLESQUE_SWEETHEART_MP3:
    'video-creation/music/vintage/burlesque_sweetheart.mp3',
  /**
   * Highway nocturne
   */
  VIDEO_CREATION_MUSIC_OTHER_HIGHWAY_NOCTURNE_NATIONAL_SWEETHEART_MP3:
    'video-creation/music/other/highway_nocturne_national_sweetheart.mp3',
  /**
   * Haptic sensation theme
   */
  VIDEO_CREATION_MUSIC_OTHER_HAPTIC_SENSATION_MP3: 'video-creation/music/other/haptic_sensation.mp3'
} as const

/**
 * Controls randomness (0 to 2).
 */
export type TemperatureParam = number

/**
 * Maximum number of tokens to generate.
 */
export type MaxTokensParam = number

/**
 * Whether to stream the response.
 */
export type StreamParam = boolean

/**
 * Up to 4 sequences where the API will stop generating.
 */
export type StopParam = Array<string>

/**
 * Nucleus sampling probability.
 */
export type TopPParam = number

/**
 * Limits the next token selection to the K most likely tokens.
 */
export type TopKParam = number

/**
 * Reduces token repetition (-2.0 to 2.0).
 */
export type FrequencyPenaltyParam = number

/**
 * Increases likelihood of new topics (-2.0 to 2.0).
 */
export type PresencePenaltyParam = number

/**
 * Modify the probability of specified tokens.
 */
export type LogitBiasParam = {
  [key: string]: unknown
}

/**
 * Unique identifier for the end-user.
 */
export type UserParam = string

/**
 * Number of choices to generate.
 */
export type NParam = number

export type NumberOfSteps = number

/**
 * Dimensions for the generated image (e.g., "256x256").
 */
export type Resolution = string

/**
 * DPM++ 2S a Karras
 */
export type ImageSamplerName = string

/**
 * In Stable Diffusion, most models default guidance scale value is between seven and 7.5. A lower number incorporates more creativity in the final image while a higher number indicates that the image is closely tied to the text prompt.
 */
export type ImageScale = unknown

/**
 * Width of image to generate
 */
export type ImageWidth = number

/**
 * Height of image to generate
 */
export type ImageHeight = number

/**
 * Seed for deterministic sampling.
 */
export type SeedParam = number

/**
 * Format for the generated output.
 */
export type ResponseFormatParam = string

/**
 * List of tools the model may call.
 */
export type ToolsParam = Array<string>

/**
 * Controls how functions are called by the model.
 */
export type ToolChoiceParam = string

export type CreateChatCompletionData = {
  body: {
    model?: ChatModel
    messages?: Array<CompoundMessage>
    temperature?: TemperatureParam
    max_tokens?: MaxTokensParam
    stream?: StreamParam
    stop?: StopParam
    top_p?: TopPParam
    top_k?: TopKParam
    frequency_penalty?: FrequencyPenaltyParam
    presence_penalty?: PresencePenaltyParam
    logit_bias?: LogitBiasParam
    user?: UserParam
    n?: NParam
    seed?: SeedParam
    response_format?: ResponseFormatParam
    tools?: ToolsParam
    tool_choice?: ToolChoiceParam
  }
  path?: never
  query?: never
  url: '/v1/chat/completions'
}

export type CreateChatCompletionErrors = {
  /**
   * Invalid request.
   */
  400: {
    /**
     * Details about the invalid request.
     */
    error?: string
  }
  /**
   * Unauthorized.
   */
  401: {
    /**
     * Authentication error.
     */
    error?: string
  }
  /**
   * Server error.
   */
  500: {
    /**
     * Server-side error details.
     */
    error?: string
  }
}

export type CreateChatCompletionError = CreateChatCompletionErrors[keyof CreateChatCompletionErrors]

export type CreateChatCompletionResponses = {
  /**
   * Successful chat completion response.
   */
  200: {
    /**
     * Unique identifier for the completion.
     */
    id?: string
    /**
     * Typically 'chat.completion'.
     */
    object?: string
    created?: Created
    model?: ChatModel
    choices?: Array<{
      /**
       * Index of the generated choice.
       */
      index?: number
      message?: Message
      delta?: Delta
      /**
       * Reason the generation was stopped.
       */
      finish_reason?: string
    }>
    usage?: {
      /**
       * Number of tokens in the prompt.
       */
      prompt_tokens?: number
      /**
       * Number of tokens in the completion.
       */
      completion_tokens?: number
      /**
       * Total tokens used.
       */
      total_tokens?: number
    }
    nanoGPT?: {
      cost?: Cost
      /**
       * Number of input tokens
       */
      inputTokens?: number
      /**
       * Number of output tokens
       */
      outputTokens?: number
      paymentSource?: PaymentSource
    }
  }
}

export type CreateChatCompletionResponse =
  CreateChatCompletionResponses[keyof CreateChatCompletionResponses]

export type GenerateImageData = {
  body: {
    /**
     * Text prompt for image generation.
     */
    prompt: string
    model: ImageModel
    width: ImageWidth
    height: ImageHeight
    negative_prompt?: NegativePrompt
    nImages?: NParam
    num_steps?: NumberOfSteps
    resolution?: Resolution
    sampler_name?: ImageSamplerName
    scale?: ImageScale
  }
  path?: never
  query?: never
  url: '/generate-image'
}

export type GenerateImageErrors = {
  /**
   * Invalid request.
   */
  400: {
    /**
     * Details about the invalid request.
     */
    error?: string
  }
  /**
   * Unauthorized.
   */
  401: {
    /**
     * Authentication error.
     */
    error?: string
  }
  /**
   * Server error.
   */
  500: {
    /**
     * Server-side error details.
     */
    error?: string
  }
}

export type GenerateImageError = GenerateImageErrors[keyof GenerateImageErrors]

export type GenerateImageResponses = {
  /**
   * Successful image generation response.
   */
  200: {
    /**
     * Timestamp of image creation.
     */
    created?: number
    data?: Array<{
      /**
       * URL of the generated image.
       */
      url?: string
      /**
       * Base64-encoded JSON of the image.
       */
      b64_json?: string
    }>
    cost?: Cost
    paymentSource?: PaymentSource
    remainingBalance?: RemainingBalance
  }
}

export type GenerateImageResponse = GenerateImageResponses[keyof GenerateImageResponses]

export type ModelsData = {
  body?: never
  path?: never
  query?: never
  url: '/v1/models'
}

export type ModelsErrors = {
  /**
   * Invalid request.
   */
  400: {
    /**
     * Details about the invalid request.
     */
    error?: string
  }
  /**
   * Unauthorized.
   */
  401: {
    /**
     * Authentication error.
     */
    error?: string
  }
  /**
   * Server error.
   */
  500: {
    /**
     * Server-side error details.
     */
    error?: string
  }
}

export type ModelsError = ModelsErrors[keyof ModelsErrors]

export type ModelsResponses = {
  /**
   * Models data retrieved successfully.
   */
  200: {
    object?: _Object
    data?: Array<{
      /**
       * Model id
       */
      id?: string
      object?: _Object
      created?: Created
      /**
       * Organization / owner of the model.
       */
      owned_by?: string
    }>
  }
}

export type ModelsResponse = ModelsResponses[keyof ModelsResponses]

export type BalanceData = {
  body?: never
  path?: never
  query?: never
  url: '/check-nano-balance'
}

export type BalanceErrors = {
  /**
   * Invalid request.
   */
  400: {
    /**
     * Details about the invalid request.
     */
    error?: string
  }
  /**
   * Unauthorized.
   */
  401: {
    /**
     * Authentication error.
     */
    error?: string
  }
  /**
   * Server error.
   */
  500: {
    /**
     * Server-side error details.
     */
    error?: string
  }
}

export type BalanceError = BalanceErrors[keyof BalanceErrors]

export type BalanceResponses = {
  /**
   * Balance received successfully.
   */
  200: {
    /**
     * Remaining balance for the account.
     */
    balance?: unknown
    /**
     * Receivable for the account.
     */
    receivable?: unknown
    /**
     * Earned for the account.
     */
    earned?: unknown
    nanoDepositAddress?: NanoAddress
    nanoReturnAddress?: NanoAddress
  }
}

export type BalanceResponse = BalanceResponses[keyof BalanceResponses]

export type GenerateVideoData = {
  body: unknown & {
    /**
     * The prompt for video generation (mutually exclusive with script)
     */
    prompt?: string
    script?: ScriptStyle
    framework: VideoFramework
    /**
     * Target length in words
     */
    targetLengthInWords: number
    /**
     * Specific instructions for the image generation engine (e.g., 'Warm lighting' or 'Make the first image very impactful')
     */
    directorNotes?: string
    /**
     * Configuration for image generation
     */
    imageConfig: {
      /**
       * Image generation model to use
       */
      model?: 'recraft' | 'flux_lora'
      style?: RecraftStyle
      /**
       * Configuration for Flux LoRA model (only used with flux_lora model)
       */
      loraConfig?: {
        loraSlug?: FluxLoraStyle
      }
    }
    voice: VoiceId
    /**
     * Whether to show captions on the video
     */
    captionsShow: boolean
    captionsStyle: CaptionStyle
    /**
     * Visual effects configuration
     */
    effects: {
      transition?: TransitionEffect
      /**
       * Whether to use floating effect on images
       */
      floating?: boolean
    }
    quality: VideoQuality
    /**
     * Motion configuration for images
     */
    motion: {
      /**
       * Whether motion effects are enabled
       */
      enabled?: boolean
      /**
       * Strength of motion effect (1-10)
       */
      strength?: number
    }
    music: MusicTrack
  }
  path?: never
  query?: never
  url: '/v1/video'
}

export type GenerateVideoErrors = {
  /**
   * Invalid request
   */
  400: {
    /**
     * Details about the invalid request
     */
    error?: string
  }
  /**
   * Unauthorized
   */
  401: {
    /**
     * Authentication error
     */
    error?: string
  }
  /**
   * Server error
   */
  500: {
    /**
     * Server-side error details
     */
    error?: string
  }
}

export type GenerateVideoError = GenerateVideoErrors[keyof GenerateVideoErrors]

export type GenerateVideoResponses = {
  /**
   * Successful video generation request
   */
  200: {
    /**
     * Unique identifier for the video generation run
     */
    runId: string
    /**
     * Unique identifier for the project
     */
    projectId: string
    /**
     * Current status of video generation
     */
    status?: string
    /**
     * Cost of the video generation
     */
    cost?: number
    /**
     * Payment method used
     */
    paymentSource?: string
  }
}

export type GenerateVideoResponse = GenerateVideoResponses[keyof GenerateVideoResponses]

export type CheckVideoStatusData = {
  body?: never
  path?: never
  query: {
    /**
     * The run ID from the generation request
     */
    runId: string
    /**
     * The project ID from the generation request
     */
    projectId: string
    /**
     * The cost of the video generation
     */
    cost?: number
    /**
     * The payment source used
     */
    paymentSource?: string
  }
  url: '/v1/video/status'
}

export type CheckVideoStatusErrors = {
  /**
   * Invalid request
   */
  400: {
    /**
     * Details about the invalid request
     */
    error?: string
  }
  /**
   * Unauthorized
   */
  401: {
    /**
     * Authentication error
     */
    error?: string
  }
  /**
   * Server error
   */
  500: {
    /**
     * Server-side error details
     */
    error?: string
  }
}

export type CheckVideoStatusError = CheckVideoStatusErrors[keyof CheckVideoStatusErrors]

export type CheckVideoStatusResponses = {
  /**
   * Successful status check
   */
  200: {
    /**
     * Current status of the video generation
     */
    status?: 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'FAILED'
    data?: {
      /**
       * Whether the video generation is complete
       */
      isCompleted?: boolean
      /**
       * Whether the video generation was successful
       */
      isSuccess?: boolean
      output?: {
        /**
         * URL of the completed video
         */
        url?: string
      }
      /**
       * Additional information or error message
       */
      message?: string
    }
  }
}

export type CheckVideoStatusResponse = CheckVideoStatusResponses[keyof CheckVideoStatusResponses]

export type ClientOptions = {
  baseUrl: 'https://nano-gpt.com/api' | (string & {})
}
