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

from __future__ import annotations

import typing

import typing_extensions
from ..types.agent_v1update_speak_speak_one_item_provider_aws_polly_engine import (
    AgentV1UpdateSpeakSpeakOneItemProviderAwsPollyEngine,
)
from ..types.agent_v1update_speak_speak_one_item_provider_aws_polly_voice import (
    AgentV1UpdateSpeakSpeakOneItemProviderAwsPollyVoice,
)
from ..types.agent_v1update_speak_speak_one_item_provider_cartesia_model_id import (
    AgentV1UpdateSpeakSpeakOneItemProviderCartesiaModelId,
)
from ..types.agent_v1update_speak_speak_one_item_provider_cartesia_version import (
    AgentV1UpdateSpeakSpeakOneItemProviderCartesiaVersion,
)
from ..types.agent_v1update_speak_speak_one_item_provider_deepgram_model import (
    AgentV1UpdateSpeakSpeakOneItemProviderDeepgramModel,
)
from ..types.agent_v1update_speak_speak_one_item_provider_deepgram_version import (
    AgentV1UpdateSpeakSpeakOneItemProviderDeepgramVersion,
)
from ..types.agent_v1update_speak_speak_one_item_provider_eleven_labs_model_id import (
    AgentV1UpdateSpeakSpeakOneItemProviderElevenLabsModelId,
)
from ..types.agent_v1update_speak_speak_one_item_provider_eleven_labs_version import (
    AgentV1UpdateSpeakSpeakOneItemProviderElevenLabsVersion,
)
from ..types.agent_v1update_speak_speak_one_item_provider_open_ai_model import (
    AgentV1UpdateSpeakSpeakOneItemProviderOpenAiModel,
)
from ..types.agent_v1update_speak_speak_one_item_provider_open_ai_version import (
    AgentV1UpdateSpeakSpeakOneItemProviderOpenAiVersion,
)
from ..types.agent_v1update_speak_speak_one_item_provider_open_ai_voice import (
    AgentV1UpdateSpeakSpeakOneItemProviderOpenAiVoice,
)
from .agent_v1update_speak_speak_one_item_provider_aws_polly_credentials import (
    AgentV1UpdateSpeakSpeakOneItemProviderAwsPollyCredentialsParams,
)
from .agent_v1update_speak_speak_one_item_provider_cartesia_voice import (
    AgentV1UpdateSpeakSpeakOneItemProviderCartesiaVoiceParams,
)


class AgentV1UpdateSpeakSpeakOneItemProvider_DeepgramParams(typing_extensions.TypedDict):
    type: typing.Literal["deepgram"]
    version: typing_extensions.NotRequired[AgentV1UpdateSpeakSpeakOneItemProviderDeepgramVersion]
    model: AgentV1UpdateSpeakSpeakOneItemProviderDeepgramModel


class AgentV1UpdateSpeakSpeakOneItemProvider_ElevenLabsParams(typing_extensions.TypedDict):
    type: typing.Literal["eleven_labs"]
    version: typing_extensions.NotRequired[AgentV1UpdateSpeakSpeakOneItemProviderElevenLabsVersion]
    model_id: AgentV1UpdateSpeakSpeakOneItemProviderElevenLabsModelId
    language: typing_extensions.NotRequired[str]
    language_code: typing_extensions.NotRequired[str]


class AgentV1UpdateSpeakSpeakOneItemProvider_CartesiaParams(typing_extensions.TypedDict):
    type: typing.Literal["cartesia"]
    version: typing_extensions.NotRequired[AgentV1UpdateSpeakSpeakOneItemProviderCartesiaVersion]
    model_id: AgentV1UpdateSpeakSpeakOneItemProviderCartesiaModelId
    voice: AgentV1UpdateSpeakSpeakOneItemProviderCartesiaVoiceParams
    language: typing_extensions.NotRequired[str]


class AgentV1UpdateSpeakSpeakOneItemProvider_OpenAiParams(typing_extensions.TypedDict):
    type: typing.Literal["open_ai"]
    version: typing_extensions.NotRequired[AgentV1UpdateSpeakSpeakOneItemProviderOpenAiVersion]
    model: AgentV1UpdateSpeakSpeakOneItemProviderOpenAiModel
    voice: AgentV1UpdateSpeakSpeakOneItemProviderOpenAiVoice


class AgentV1UpdateSpeakSpeakOneItemProvider_AwsPollyParams(typing_extensions.TypedDict):
    type: typing.Literal["aws_polly"]
    voice: AgentV1UpdateSpeakSpeakOneItemProviderAwsPollyVoice
    language: str
    language_code: typing_extensions.NotRequired[str]
    engine: AgentV1UpdateSpeakSpeakOneItemProviderAwsPollyEngine
    credentials: AgentV1UpdateSpeakSpeakOneItemProviderAwsPollyCredentialsParams


AgentV1UpdateSpeakSpeakOneItemProviderParams = typing.Union[
    AgentV1UpdateSpeakSpeakOneItemProvider_DeepgramParams,
    AgentV1UpdateSpeakSpeakOneItemProvider_ElevenLabsParams,
    AgentV1UpdateSpeakSpeakOneItemProvider_CartesiaParams,
    AgentV1UpdateSpeakSpeakOneItemProvider_OpenAiParams,
    AgentV1UpdateSpeakSpeakOneItemProvider_AwsPollyParams,
]
