"""
Protocol definitions for fluent accessor classes.

Auto-generated from OpenAPI specification.
"""

from typing import Any, Dict, Optional, Protocol, runtime_checkable


@runtime_checkable
class FluentClientProtocol(Protocol):
    """Protocol defining the interface fluent accessors need from the client."""

    def _make_request(
        self,
        method: str,
        url: str,
        data: Optional[Dict[str, Any]] = None,
        params: Optional[Dict[str, Any]] = None,
        response_model: Optional[type] = None,
    ) -> Any:
        """Make a synchronous HTTP request."""
        ...


@runtime_checkable
class AsyncFluentClientProtocol(Protocol):
    """Protocol defining the async interface fluent accessors need from the client."""

    async def _make_request_async(
        self,
        method: str,
        url: str,
        data: Optional[Dict[str, Any]] = None,
        params: Optional[Dict[str, Any]] = None,
        response_model: Optional[type] = None,
    ) -> Any:
        """Make an asynchronous HTTP request."""
        ...
