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

from typing import Generic, Self, TYPE_CHECKING, TypeVar
from graph_sitter.codebase.codebase_graph import CodebaseGraph
from graph_sitter.core.autocommit import writer
from graph_sitter.core.expressions.expression import Expression
from graph_sitter.core.interfaces.chainable import Chainable
from graph_sitter.core.interfaces.editable import Editable
from graph_sitter.core.node_id_factory import NodeId
from graph_sitter.extensions.utils import TSNode
from graph_sitter.writer_decorators import apidoc

if TYPE_CHECKING:
    ...
Parent = TypeVar("Parent", bound="Expression")
@apidoc
class UnaryExpression(Expression[Parent], Chainable, Generic[Parent]):
    """Unary expression which is a single operation on a single operand. eg. -5, !true.

    Attributes:
        argument: The argument of the unary expression
    """
    argument: Expression[Self]
    def __init__(self, ts_node: TSNode, file_node_id: NodeId, G: CodebaseGraph, parent: Parent) -> None:
        ...
    
    @writer
    def reduce_condition(self, bool_condition: bool, node: Editable | None = ...) -> None:
        """Simplifies a unary expression by reducing it based on a boolean condition.


        Args:
            bool_condition (bool): The boolean value to reduce the condition to.

        """
        ...
    


