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

import asyncio
from abc import abstractmethod
from dataclasses import dataclass
from logging import Logger
from typing import Any, List

ConvID = str
class ConvListener:
  log: Logger
  def __init__(self, log: Logger) -> None:
    ...
  
  @abstractmethod
  def before_run(self, conv_id: ConvID, msgs: List) -> None:
    ...
  
  @abstractmethod
  def after_run(self, conv_id: ConvID, msg: Any) -> None:
    ...
  


def generate_conv_id() -> ConvID:
  ...

@dataclass(kw_only=True)
class ConvClassBase:
  _log: Logger = ...
  _sem: asyncio.Semaphore = ...
  _conv_id: ConvID = ...
  _listener_msg_idx: int = ...
  _listeners: List[ConvListener] = ...


