# generated by datamodel-codegen:
#   filename:  <stdin>
#   timestamp: 1985-10-26T08:21:00+00:00

from __future__ import annotations

from collections.abc import Callable
from typing import Any, Type

from pydantic import BaseModel, Field


class ModelWithCallableTypes(BaseModel):
    callback: Callable[[str], str] = Field(..., title='Callback')
    multi_param_callback: Callable[[int, int], bool] = Field(
        ..., title='Multi Param Callback'
    )
    variadic_callback: Callable[..., Any] = Field(..., title='Variadic Callback')
    no_param_callback: Callable[[], None] = Field(..., title='No Param Callback')
    optional_callback: Callable[[str], str] | None = Field(
        ..., title='Optional Callback'
    )
    type_field: Type[BaseModel] = Field(..., title='Type Field')
    nested_callable: list[Callable[[str], int]] = Field(..., title='Nested Callable')
