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

from dataclasses import dataclass
from typing import List, Optional, Self, Type
from openai import AsyncOpenAI
from openai.types.chat import ChatCompletionMessageParam, ParsedChatCompletionMessage
from openai.types.chat.chat_completion_reasoning_effort import ChatCompletionReasoningEffort
from alxai.base.generic_conv import ConvClassBase
from alxai.openai.tool import ToolExecutor

@dataclass(kw_only=True)
class ConvClass[ResponseType](ConvClassBase):
  messages: List[ChatCompletionMessageParam]
  tools: List[ToolExecutor] | None = ...
  client: AsyncOpenAI | None = ...
  model: str | None = ...
  temperature: float | None = ...
  response_format: Type[ResponseType] | None = ...
  reasoning_effort: ChatCompletionReasoningEffort = ...
  def __post_init__(self): # -> None:
    ...
  
  @classmethod
  def respond_to(cls, conv: ConvClass, msg: str) -> ConvClass:
    ...
  
  def respond(self, msg: str) -> Self:
    ...
  
  def respond_via_msg(self, msg: ChatCompletionMessageParam) -> Self:
    ...
  
  async def text_response(self, msg: str) -> Optional[Self]:
    ...
  
  async def response(self, msg: ResponseType) -> Optional[Self]:
    ...
  
  async def failure(self, msg: ParsedChatCompletionMessage, finish_reason: str) -> Optional[Self]:
    ...
  
  async def run(self) -> Self:
    ...
  


