# ---------------------------------------------------------
# Do not modify this file. It was generated by `scripts/generate_typed_dicts.py`.
# ---------------------------------------------------------


from typing import Iterable, Literal, Mapping, Optional, Sequence, TypedDict, Union

import openai
import openai.types.chat.chat_completion_allowed_tool_choice_param
import openai.types.chat.chat_completion_assistant_message_param
import openai.types.chat.chat_completion_audio_param
import openai.types.chat.chat_completion_custom_tool_param
import openai.types.chat.chat_completion_developer_message_param
import openai.types.chat.chat_completion_function_call_option_param
import openai.types.chat.chat_completion_function_message_param
import openai.types.chat.chat_completion_function_tool_param
import openai.types.chat.chat_completion_named_tool_choice_custom_param
import openai.types.chat.chat_completion_named_tool_choice_param
import openai.types.chat.chat_completion_prediction_content_param
import openai.types.chat.chat_completion_stream_options_param
import openai.types.chat.chat_completion_system_message_param
import openai.types.chat.chat_completion_tool_message_param
import openai.types.chat.chat_completion_user_message_param
import openai.types.chat.completion_create_params
import openai.types.shared_params.response_format_json_object
import openai.types.shared_params.response_format_json_schema
import openai.types.shared_params.response_format_text


class SubmitInputArgs(TypedDict, total=False):
    messages: Iterable[
        Union[
            openai.types.chat.chat_completion_developer_message_param.ChatCompletionDeveloperMessageParam,
            openai.types.chat.chat_completion_system_message_param.ChatCompletionSystemMessageParam,
            openai.types.chat.chat_completion_user_message_param.ChatCompletionUserMessageParam,
            openai.types.chat.chat_completion_assistant_message_param.ChatCompletionAssistantMessageParam,
            openai.types.chat.chat_completion_tool_message_param.ChatCompletionToolMessageParam,
            openai.types.chat.chat_completion_function_message_param.ChatCompletionFunctionMessageParam,
        ]
    ]
    model: Union[
        str,
        Literal[
            "gpt-5.6-sol",
            "gpt-5.6-terra",
            "gpt-5.6-luna",
            "gpt-5.5",
            "gpt-5.4",
            "gpt-5.4-mini",
            "gpt-5.4-nano",
            "gpt-5.4-mini-2026-03-17",
            "gpt-5.4-nano-2026-03-17",
            "gpt-5.3-chat-latest",
            "gpt-5.2",
            "gpt-5.2-2025-12-11",
            "gpt-5.2-chat-latest",
            "gpt-5.2-pro",
            "gpt-5.2-pro-2025-12-11",
            "gpt-5.1",
            "gpt-5.1-2025-11-13",
            "gpt-5.1-codex",
            "gpt-5.1-mini",
            "gpt-5.1-chat-latest",
            "gpt-5",
            "gpt-5-mini",
            "gpt-5-nano",
            "gpt-5-2025-08-07",
            "gpt-5-mini-2025-08-07",
            "gpt-5-nano-2025-08-07",
            "gpt-5-chat-latest",
            "gpt-4.1",
            "gpt-4.1-mini",
            "gpt-4.1-nano",
            "gpt-4.1-2025-04-14",
            "gpt-4.1-mini-2025-04-14",
            "gpt-4.1-nano-2025-04-14",
            "o4-mini",
            "o4-mini-2025-04-16",
            "o3",
            "o3-2025-04-16",
            "o3-mini",
            "o3-mini-2025-01-31",
            "o1",
            "o1-2024-12-17",
            "o1-preview",
            "o1-preview-2024-09-12",
            "o1-mini",
            "o1-mini-2024-09-12",
            "gpt-4o",
            "gpt-4o-2024-11-20",
            "gpt-4o-2024-08-06",
            "gpt-4o-2024-05-13",
            "gpt-4o-audio-preview",
            "gpt-4o-audio-preview-2024-10-01",
            "gpt-4o-audio-preview-2024-12-17",
            "gpt-4o-audio-preview-2025-06-03",
            "gpt-4o-mini-audio-preview",
            "gpt-4o-mini-audio-preview-2024-12-17",
            "gpt-4o-search-preview",
            "gpt-4o-mini-search-preview",
            "gpt-4o-search-preview-2025-03-11",
            "gpt-4o-mini-search-preview-2025-03-11",
            "chatgpt-4o-latest",
            "codex-mini-latest",
            "gpt-4o-mini",
            "gpt-4o-mini-2024-07-18",
            "gpt-4-turbo",
            "gpt-4-turbo-2024-04-09",
            "gpt-4-0125-preview",
            "gpt-4-turbo-preview",
            "gpt-4-1106-preview",
            "gpt-4-vision-preview",
            "gpt-4",
            "gpt-4-0314",
            "gpt-4-0613",
            "gpt-4-32k",
            "gpt-4-32k-0314",
            "gpt-4-32k-0613",
            "gpt-3.5-turbo",
            "gpt-3.5-turbo-16k",
            "gpt-3.5-turbo-0301",
            "gpt-3.5-turbo-0613",
            "gpt-3.5-turbo-1106",
            "gpt-3.5-turbo-0125",
            "gpt-3.5-turbo-16k-0613",
        ],
    ]
    audio: Union[
        openai.types.chat.chat_completion_audio_param.ChatCompletionAudioParam,
        None,
        openai.Omit,
    ]
    frequency_penalty: Union[float, None, openai.Omit]
    function_call: Union[
        Literal["none", "auto"],
        openai.types.chat.chat_completion_function_call_option_param.ChatCompletionFunctionCallOptionParam,
        openai.Omit,
    ]
    functions: Union[
        Iterable[openai.types.chat.completion_create_params.Function], openai.Omit
    ]
    logit_bias: Union[dict[str, int], None, openai.Omit]
    logprobs: Union[bool, None, openai.Omit]
    max_completion_tokens: Union[int, None, openai.Omit]
    max_tokens: Union[int, None, openai.Omit]
    metadata: Union[dict[str, str], None, openai.Omit]
    modalities: Union[list[Literal["text", "audio"]], None, openai.Omit]
    moderation: Union[
        openai.types.chat.completion_create_params.Moderation, None, openai.Omit
    ]
    n: Union[int, None, openai.Omit]
    parallel_tool_calls: bool | openai.Omit
    prediction: Union[
        openai.types.chat.chat_completion_prediction_content_param.ChatCompletionPredictionContentParam,
        None,
        openai.Omit,
    ]
    presence_penalty: Union[float, None, openai.Omit]
    prompt_cache_key: Union[str, None, openai.Omit]
    prompt_cache_options: (
        openai.types.chat.completion_create_params.PromptCacheOptions | openai.Omit
    )
    prompt_cache_retention: Union[Literal["in_memory", "24h"], None, openai.Omit]
    reasoning_effort: Union[
        Literal["none", "minimal", "low", "medium", "high", "xhigh", "max"],
        None,
        openai.Omit,
    ]
    response_format: Union[
        openai.types.shared_params.response_format_text.ResponseFormatText,
        openai.types.shared_params.response_format_json_schema.ResponseFormatJSONSchema,
        openai.types.shared_params.response_format_json_object.ResponseFormatJSONObject,
        openai.Omit,
    ]
    safety_identifier: Union[str, None, openai.Omit]
    seed: Union[int, None, openai.Omit]
    service_tier: Union[
        Literal["auto", "default", "flex", "scale", "priority", "fast"],
        None,
        openai.Omit,
    ]
    stop: Union[str, None, Sequence[str], openai.Omit]
    store: Union[bool, None, openai.Omit]
    stream: Union[Literal[False], None, Literal[True], openai.Omit]
    stream_options: Union[
        openai.types.chat.chat_completion_stream_options_param.ChatCompletionStreamOptionsParam,
        None,
        openai.Omit,
    ]
    temperature: Union[float, None, openai.Omit]
    tool_choice: Union[
        Literal["none", "auto", "required"],
        openai.types.chat.chat_completion_allowed_tool_choice_param.ChatCompletionAllowedToolChoiceParam,
        openai.types.chat.chat_completion_named_tool_choice_param.ChatCompletionNamedToolChoiceParam,
        openai.types.chat.chat_completion_named_tool_choice_custom_param.ChatCompletionNamedToolChoiceCustomParam,
        openai.Omit,
    ]
    tools: Union[
        Iterable[
            Union[
                openai.types.chat.chat_completion_function_tool_param.ChatCompletionFunctionToolParam,
                openai.types.chat.chat_completion_custom_tool_param.ChatCompletionCustomToolParam,
            ]
        ],
        openai.Omit,
    ]
    top_logprobs: Union[int, None, openai.Omit]
    top_p: Union[float, None, openai.Omit]
    user: str | openai.Omit
    verbosity: Union[Literal["low", "medium", "high"], None, openai.Omit]
    web_search_options: (
        openai.types.chat.completion_create_params.WebSearchOptions | openai.Omit
    )
    extra_headers: Optional[Mapping[str, Union[str, openai.Omit]]]
    extra_query: Optional[Mapping[str, object]]
    extra_body: object | None
    timeout: float | openai.Timeout | None | openai.NotGiven
