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

from collections.abc import Generator
from typing import Generic, Self, TYPE_CHECKING, TypeVar
from graph_sitter.codebase.resolution_stack import ResolutionStack
from graph_sitter.core.interfaces.editable import Editable
from graph_sitter.extensions.utils import cached_property
from graph_sitter.writer_decorators import noapidoc
from graph_sitter.core.interfaces.has_attribute import HasAttribute

if TYPE_CHECKING:
    ...
Parent = TypeVar("Parent", bound="Editable")
@noapidoc
class Chainable(Editable[Parent], Generic[Parent]):
    """Represents a class that can be used as an object in a function call chain."""
    _resolving: bool = ...
    @cached_property
    @noapidoc
    def resolved_type_frames(self) -> list[ResolutionStack[Self]]:
        """Resolve the definition(s) of this object."""
        ...
    
    @noapidoc
    def with_resolution_frame(self, child: Editable, *args, generic_parameters: list | None = ..., generics: dict | None = ..., **kwargs) -> Generator[ResolutionStack[Self], None, None]:
        """Resolve the definition(s) of this object."""
        ...
    
    @cached_property
    @noapidoc
    def resolved_types(self) -> list[HasAttribute]:
        """Resolve the definition(s) of this object.

        Returns type at the top of the resolution stack.
        """
        ...
    


