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

from typing import Generic, Self, TYPE_CHECKING, TypeVar
from tree_sitter import Node as TSNode
from graph_sitter.core.autocommit import reader
from graph_sitter.core.expressions.named_type import NamedType
from graph_sitter.core.expressions.type import Type
from graph_sitter.core.interfaces.editable import Editable
from graph_sitter.core.interfaces.importable import Importable
from graph_sitter.core.node_id_factory import NodeId
from graph_sitter.core.symbol_groups.collection import Collection
from graph_sitter.writer_decorators import apidoc, noapidoc
from graph_sitter.codebase.codebase_graph import CodebaseGraph

if TYPE_CHECKING:
    ...
Parent = TypeVar("Parent")
TType = TypeVar("TType", bound="Type")
Parent = TypeVar("Parent", bound="Editable")
@apidoc
class GenericType(NamedType[Parent], Generic[TType, Parent]):
    """Abstract representation of the generic types of the programming language."""
    _parameters: Collection[TType, Self]
    def __init__(self, ts_node: TSNode, file_node_id: NodeId, G: CodebaseGraph, parent: Parent) -> None:
        ...
    
    @property
    @reader
    def parameters(self) -> Collection[TType, Self]:
        """Retrieves the generic type parameters associated with this type.

        Args:
            None

        Returns:
            Collection[TType, Self]: A collection of generic type parameters associated with this type.
        """
        ...
    
    @property
    @noapidoc
    def descendant_symbols(self) -> list[Importable]:
        """Returns the nested symbols of the importable object, including itself."""
        ...
    


