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

import typing

import typing_extensions
from ..types.language_code import LanguageCode
from .outbound_call_config_tools_item import OutboundCallConfigToolsItemParams


class OutboundCallConfigParams(typing_extensions.TypedDict):
    """
    When an `agent` is provided, these `config` options override the agent settings.
    """

    agent: typing_extensions.NotRequired[str]
    """
    The name of the agent to use for the call.
    """

    project: typing_extensions.NotRequired[str]
    """
    The name of the project to use for the call.
    """

    welcome_message: typing_extensions.NotRequired[typing.Optional[str]]
    """
    Message to play when the conversation starts. Can contain template variables like `{{customer_name}}`.
    """

    system_prompt: typing_extensions.NotRequired[str]
    """
    Instructions for the conversation. Can contain template variables like `{{subject}}`.
    """

    template_variables: typing_extensions.NotRequired[typing.Dict[str, str]]
    """
    Variables that can be used in the welcome message and the system prompt.
    """

    voice_id: typing_extensions.NotRequired[str]
    """
    The voice ID to use for the agent.
    """

    no_input_poke_sec: typing_extensions.NotRequired[typing.Optional[int]]
    """
    Number of seconds of silence before sending a poke message. `null` disables the poke message.
    """

    no_input_poke_text: typing_extensions.NotRequired[str]
    """
    The message to send after the specified silence.
    """

    no_input_end_conversation_sec: typing_extensions.NotRequired[int]
    """
    Seconds of silence before ending the conversation.
    """

    languages: typing_extensions.NotRequired[typing.Sequence[LanguageCode]]
    """
    Array of ISO 639-1 language codes that the agent should be able to recognize
    """

    boosted_keywords: typing_extensions.NotRequired[typing.Sequence[str]]
    """
    These words, or short phrases, will be more accurately recognized by the agent.
    """

    tools: typing_extensions.NotRequired[typing.Sequence[OutboundCallConfigToolsItemParams]]
    """
    Array of built-in or custom tool names to use.
    """
