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

import typing

import typing_extensions
from ..types.agent_v1inject_agent_message_behavior import AgentV1InjectAgentMessageBehavior


class AgentV1InjectAgentMessageParams(typing_extensions.TypedDict):
    type: typing.Literal["InjectAgentMessage"]
    """
    Message type identifier for injecting an agent message
    """

    message: str
    """
    The statement that the agent should say
    """

    behavior: typing_extensions.NotRequired[AgentV1InjectAgentMessageBehavior]
    """
    Controls how the injection interacts with any in-progress user or agent turn.
    
    * `default` — The agent speaks only if neither the user nor the agent is mid-turn. If a turn is in progress, the server replies with `InjectionRefused`.
    * `queue` — The message is appended after any already-queued `ConversationText` without interrupting the current agent turn or think response. If nothing is queued, the message plays immediately.
    * `interrupt` — The agent immediately speaks. If the agent was already speaking, it interrupts the current speech and replaces it with the new message. If the user is speaking, the agent interrupts with the new message, but the user's continued speech triggers `UserStartedSpeaking`, which quickly interrupts the agent.
    """
