"""
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.codebase.codebase_graph import CodebaseGraph
from graph_sitter.core.export import Export
from graph_sitter.core.node_id_factory import NodeId
from graph_sitter.core.statements.statement import Statement
from graph_sitter.core.symbol_groups.collection import Collection
from graph_sitter.typescript.detached_symbols.code_block import TSCodeBlock
from graph_sitter.typescript.export import TSExport
from graph_sitter.writer_decorators import apidoc

if TYPE_CHECKING:
    ...
TExport = TypeVar("TExport", bound="Export")
@apidoc
class ExportStatement(Statement["TSCodeBlock"], Generic[TExport]):
    """Abstract representation of a single export statement that appears in a file. One export
    statement can export multiple symbols from a single source.

    Attributes:
        exports: A list of the individual exports this statement represents
    """
    exports: Collection[TExport, Self]
    statement_type = ...
    def __init__(self, ts_node: TSNode, file_node_id: NodeId, G: CodebaseGraph, parent: TSCodeBlock, pos: int) -> None:
        ...
    
    @property
    def reexports(self) -> list[TSExport]:
        """Retrieves a list of re-exported symbols from this export statement.

        Returns:
            list[TSExport]: A list of re-exported symbols within the current export context,
                           excluding external exports.
        """
        ...
    


