# This file was auto-generated by Fern from our API Definition.

from __future__ import annotations

import typing

import typing_extensions
from ..types.agent_v1settings_agent_speak_one_item_provider_aws_polly_engine import (
    AgentV1SettingsAgentSpeakOneItemProviderAwsPollyEngine,
)
from ..types.agent_v1settings_agent_speak_one_item_provider_aws_polly_voice import (
    AgentV1SettingsAgentSpeakOneItemProviderAwsPollyVoice,
)
from ..types.agent_v1settings_agent_speak_one_item_provider_cartesia_model_id import (
    AgentV1SettingsAgentSpeakOneItemProviderCartesiaModelId,
)
from ..types.agent_v1settings_agent_speak_one_item_provider_cartesia_version import (
    AgentV1SettingsAgentSpeakOneItemProviderCartesiaVersion,
)
from ..types.agent_v1settings_agent_speak_one_item_provider_deepgram_model import (
    AgentV1SettingsAgentSpeakOneItemProviderDeepgramModel,
)
from ..types.agent_v1settings_agent_speak_one_item_provider_deepgram_version import (
    AgentV1SettingsAgentSpeakOneItemProviderDeepgramVersion,
)
from ..types.agent_v1settings_agent_speak_one_item_provider_eleven_labs_model_id import (
    AgentV1SettingsAgentSpeakOneItemProviderElevenLabsModelId,
)
from ..types.agent_v1settings_agent_speak_one_item_provider_eleven_labs_version import (
    AgentV1SettingsAgentSpeakOneItemProviderElevenLabsVersion,
)
from ..types.agent_v1settings_agent_speak_one_item_provider_open_ai_model import (
    AgentV1SettingsAgentSpeakOneItemProviderOpenAiModel,
)
from ..types.agent_v1settings_agent_speak_one_item_provider_open_ai_version import (
    AgentV1SettingsAgentSpeakOneItemProviderOpenAiVersion,
)
from ..types.agent_v1settings_agent_speak_one_item_provider_open_ai_voice import (
    AgentV1SettingsAgentSpeakOneItemProviderOpenAiVoice,
)
from .agent_v1settings_agent_speak_one_item_provider_aws_polly_credentials import (
    AgentV1SettingsAgentSpeakOneItemProviderAwsPollyCredentialsParams,
)
from .agent_v1settings_agent_speak_one_item_provider_cartesia_voice import (
    AgentV1SettingsAgentSpeakOneItemProviderCartesiaVoiceParams,
)


class AgentV1SettingsAgentSpeakOneItemProvider_DeepgramParams(typing_extensions.TypedDict):
    type: typing.Literal["deepgram"]
    version: typing_extensions.NotRequired[AgentV1SettingsAgentSpeakOneItemProviderDeepgramVersion]
    model: AgentV1SettingsAgentSpeakOneItemProviderDeepgramModel


class AgentV1SettingsAgentSpeakOneItemProvider_ElevenLabsParams(typing_extensions.TypedDict):
    type: typing.Literal["eleven_labs"]
    version: typing_extensions.NotRequired[AgentV1SettingsAgentSpeakOneItemProviderElevenLabsVersion]
    model_id: AgentV1SettingsAgentSpeakOneItemProviderElevenLabsModelId
    language: typing_extensions.NotRequired[str]
    language_code: typing_extensions.NotRequired[str]


class AgentV1SettingsAgentSpeakOneItemProvider_CartesiaParams(typing_extensions.TypedDict):
    type: typing.Literal["cartesia"]
    version: typing_extensions.NotRequired[AgentV1SettingsAgentSpeakOneItemProviderCartesiaVersion]
    model_id: AgentV1SettingsAgentSpeakOneItemProviderCartesiaModelId
    voice: AgentV1SettingsAgentSpeakOneItemProviderCartesiaVoiceParams
    language: typing_extensions.NotRequired[str]


class AgentV1SettingsAgentSpeakOneItemProvider_OpenAiParams(typing_extensions.TypedDict):
    type: typing.Literal["open_ai"]
    version: typing_extensions.NotRequired[AgentV1SettingsAgentSpeakOneItemProviderOpenAiVersion]
    model: AgentV1SettingsAgentSpeakOneItemProviderOpenAiModel
    voice: AgentV1SettingsAgentSpeakOneItemProviderOpenAiVoice


class AgentV1SettingsAgentSpeakOneItemProvider_AwsPollyParams(typing_extensions.TypedDict):
    type: typing.Literal["aws_polly"]
    voice: AgentV1SettingsAgentSpeakOneItemProviderAwsPollyVoice
    language: str
    language_code: typing_extensions.NotRequired[str]
    engine: AgentV1SettingsAgentSpeakOneItemProviderAwsPollyEngine
    credentials: AgentV1SettingsAgentSpeakOneItemProviderAwsPollyCredentialsParams


AgentV1SettingsAgentSpeakOneItemProviderParams = typing.Union[
    AgentV1SettingsAgentSpeakOneItemProvider_DeepgramParams,
    AgentV1SettingsAgentSpeakOneItemProvider_ElevenLabsParams,
    AgentV1SettingsAgentSpeakOneItemProvider_CartesiaParams,
    AgentV1SettingsAgentSpeakOneItemProvider_OpenAiParams,
    AgentV1SettingsAgentSpeakOneItemProvider_AwsPollyParams,
]
