"""
This type stub file was generated by pyright.
"""

from abc import abstractmethod
from typing import Any, Dict, List, Sequence, Type
from openai._types import NotGiven
from openai.types.chat.chat_completion_tool_message_param import ChatCompletionToolMessageParam
from openai.types.chat.chat_completion_tool_param import ChatCompletionToolParam
from pydantic import BaseModel

class ToolExecutor:
  name: str
  description: str
  parameters: Type[BaseModel]
  @abstractmethod
  async def invoke(self, tool_id: str, arguments) -> ChatCompletionToolMessageParam:
    ...
  


def get_schema(t: ToolExecutor) -> Dict[str, Any]:
  ...

def get_tool_descriptions(tools: Sequence[ToolExecutor] | NotGiven | None) -> List[ChatCompletionToolParam] | NotGiven:
  ...

