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

from collections.abc import Iterator
from typing import Generic, TYPE_CHECKING, TypeVar
from tree_sitter import Node as TSNode
from graph_sitter.codebase.codebase_graph import CodebaseGraph
from graph_sitter.core.autocommit import reader
from graph_sitter.core.expressions.chained_attribute import ChainedAttribute
from graph_sitter.core.expressions.name import Name
from graph_sitter.core.interfaces.has_name import HasName
from graph_sitter.core.node_id_factory import NodeId
from graph_sitter.core.symbol_groups.collection import Collection
from graph_sitter.core.expressions.type import Type
from graph_sitter.core.interfaces.inherits import Inherits

if TYPE_CHECKING:
    ...
TType = TypeVar("TType", bound="Type")
Parent = TypeVar("Parent", bound="Inherits")
class Parents(Collection["TType", Parent], Generic[TType, Parent]):
    type_arguments: list[Type]
    def __init__(self, ts_node: TSNode, file_node_id: NodeId, G: CodebaseGraph, parent: Parent) -> None:
        ...
    
    def __iter__(self) -> Iterator[TType]:
        ...
    
    def compute_superclass_dependencies(self) -> None:
        """Compute superclass dependencies."""
        ...
    
    @reader
    def is_subclass_of(self, parent: str | HasName, max_depth: int | None = ...) -> bool:
        """Returns True if the class is a subclass of the given parent class."""
        ...
    
    @property
    @reader
    def parent_class_names(self) -> list[Name | ChainedAttribute]:
        """Returns a list of the args passed to the class (the parent classes)"""
        ...
    


