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


from typing import (
    Any,
    Awaitable,
    Callable,
    Mapping,
    Optional,
    Sequence,
    TypedDict,
    Union,
)

import anthropic
import anthropic._response
import anthropic.lib.credentials._cache
import anthropic.lib.credentials._types
import httpx


class ChatClientArgs(TypedDict, total=False):
    api_key: str | None
    auth_token: str | None
    credentials: anthropic.lib.credentials._types.AccessTokenProvider | None
    config: Optional[Mapping[str, Any]]
    profile: str | None
    webhook_key: str | None
    base_url: str | httpx.URL | None
    timeout: float | anthropic.Timeout | None | anthropic.NotGiven
    max_retries: int
    default_headers: Optional[Mapping[str, str]]
    default_query: Optional[Mapping[str, object]]
    http_client: httpx.AsyncClient | None
    middleware: Optional[
        Sequence[
            Union[
                anthropic.Middleware,
                Callable[
                    [
                        anthropic.APIRequest,
                        Callable[
                            [anthropic.APIRequest], anthropic._response.APIResponse[Any]
                        ],
                    ],
                    anthropic._response.APIResponse[Any],
                ],
                Callable[
                    [
                        anthropic.APIRequest,
                        Callable[
                            [anthropic.APIRequest],
                            Awaitable[anthropic._response.AsyncAPIResponse[Any]],
                        ],
                    ],
                    Awaitable[anthropic._response.AsyncAPIResponse[Any]],
                ],
            ]
        ]
    ]
    _strict_response_validation: bool
    _token_cache: (
        anthropic.lib.credentials._cache.TokenCache | None | anthropic.NotGiven
    )
