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

from typing import TYPE_CHECKING
from tree_sitter import Node as TSNode
from graph_sitter.core.detached_symbols.function_call import FunctionCall
from graph_sitter.core.expressions import Expression
from graph_sitter.core.interfaces.importable import Importable
from graph_sitter.core.node_id_factory import NodeId
from graph_sitter.core.statements.for_loop_statement import ForLoopStatement
from graph_sitter.extensions.autocommit import reader
from graph_sitter.python.statements.block_statement import PyBlockStatement
from graph_sitter.writer_decorators import noapidoc, py_apidoc
from graph_sitter.codebase.codebase_graph import CodebaseGraph
from graph_sitter.python.detached_symbols.code_block import PyCodeBlock

if TYPE_CHECKING:
    ...
@py_apidoc
class PyForLoopStatement(ForLoopStatement["PyCodeBlock"], PyBlockStatement):
    """Abstract representation of the for loop in Python

    Attributes:
        item: An item in the iterable object
        iterable: The iterable that is being iterated over
    """
    item: Expression[PyForLoopStatement]
    iterable: Expression[PyForLoopStatement]
    def __init__(self, ts_node: TSNode, file_node_id: NodeId, G: CodebaseGraph, parent: PyCodeBlock, pos: int | None = ...) -> None:
        ...
    
    @property
    @reader
    def function_calls(self) -> list[FunctionCall]:
        """Gets all function calls within this for loop statement.

        A property that retrieves all function calls from the iterable expression and combines them with any function
        calls from the parent class implementation. This includes function calls within the iterable expression and
        any function calls in the loop body.

        Returns:
            list[FunctionCall]: A list of all function calls within the for loop statement, including those from
                both the iterable expression and the parent class implementation.
        """
        ...
    
    @property
    @noapidoc
    def descendant_symbols(self) -> list[Importable]:
        ...
    


