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

from graph_sitter.core.autocommit import reader
from graph_sitter.core.type_alias import TypeAlias
from graph_sitter.typescript.detached_symbols.code_block import TSCodeBlock
from graph_sitter.typescript.interfaces.has_block import TSHasBlock
from graph_sitter.typescript.statements.attribute import TSAttribute
from graph_sitter.typescript.symbol import TSSymbol
from graph_sitter.writer_decorators import ts_apidoc

@ts_apidoc
class TSTypeAlias(TypeAlias[TSCodeBlock, TSAttribute], TSSymbol, TSHasBlock):
    """Representation of an Interface in TypeScript"""
    symbol_type = ...
    @property
    @reader
    def attributes(self) -> list[TSAttribute]:
        """Retrieves all attributes belonging to this type alias.

        Returns a list of attributes that are defined within the type alias's code block.
        These attributes represent named values or properties associated with the type alias.

        Returns:
            list[TSAttribute[TSTypeAlias, None]]: A list of TSAttribute objects representing the type alias's attributes.
        """
        ...
    
    @reader
    def get_attribute(self, name: str) -> TSAttribute | None:
        """Retrieves a specific attribute from a TypeScript type alias by its name.

        Args:
            name (str): The name of the attribute to retrieve.

        Returns:
            TSAttribute[TSTypeAlias, None] | None: The attribute with the specified name if found, None otherwise.
        """
        ...
    


