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


import http.cookiejar
import ssl
from typing import Any, Callable, Mapping, Optional, Sequence, TypedDict, Union

import httpx


class ChatClientArgs(TypedDict, total=False):
    api_key: str | None
    params: Union[
        httpx.QueryParams,
        Mapping[
            str,
            Union[
                str,
                int,
                float,
                bool,
                None,
                Sequence[Union[str, int, float, bool, None]],
            ],
        ],
        list[tuple[str, Union[str, int, float, bool, None]]],
        tuple[tuple[str, Union[str, int, float, bool, None]], ...],
        str,
        bytes,
        None,
    ]
    headers: Union[
        httpx.Headers,
        Mapping[str, str],
        Mapping[bytes, bytes],
        Sequence[tuple[str, str]],
        Sequence[tuple[bytes, bytes]],
        None,
    ]
    cookies: Union[
        httpx.Cookies,
        http.cookiejar.CookieJar,
        dict[str, str],
        list[tuple[str, str]],
        None,
    ]
    verify: ssl.SSLContext | str | bool
    cert: Union[str, tuple[str, str], tuple[str, str, str], None]
    http1: bool
    http2: bool
    proxy: Union[httpx.URL, str, httpx.Proxy, None]
    mounts: Optional[
        Mapping[str, httpx.BaseTransport | httpx.AsyncBaseTransport | None]
    ]
    timeout: Union[
        float,
        None,
        tuple[Optional[float], Optional[float], Optional[float], Optional[float]],
        httpx.Timeout,
    ]
    follow_redirects: bool
    limits: httpx.Limits
    max_redirects: int
    event_hooks: Optional[Mapping[str, list[Callable[..., Any]]]]
    transport: httpx.BaseTransport | httpx.AsyncBaseTransport | None
    trust_env: bool
    default_encoding: Union[str, Callable[[bytes], str]]
