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

from abc import abstractmethod
from typing import TYPE_CHECKING, final
from graph_sitter.core.autocommit import reader
from graph_sitter.core.expressions import Expression
from graph_sitter.core.interfaces.chainable import Chainable
from graph_sitter.core.interfaces.editable import Editable
from graph_sitter.writer_decorators import noapidoc
from graph_sitter.core.interfaces.importable import Importable

if TYPE_CHECKING:
    ...
class IWrapper(Chainable, Editable):
    """Any expression or statement that contains another expression.

    This is a simple interface to unwrap the nested expression.
    """
    @property
    @abstractmethod
    @reader
    def value(self) -> Expression | None:
        """The value of the object."""
        ...
    
    @reader
    @final
    def resolve(self) -> Expression:
        """Resolves the wrapper expression and returns the first concrete expression."""
        ...
    
    @property
    @noapidoc
    def descendent_symbols(self) -> list[Importable]:
        ...
    


