/** * Binary and Unary Expressions * * Handles arithmetic, comparison, and logical operators. * Provides evaluation for binary operations, unary operations, and grouped expressions. * * Interface requirements (from spec): * - evaluateBinaryExpr(node) -> Promise * - evaluateUnaryExpr(node) -> Promise * - evaluateGroupedExpr(node) -> Promise * - resolveExpressionValue(value) -> Promise * * Error Handling: * - Type mismatches in operators throw RuntimeError(RUNTIME_TYPE_ERROR) * - Nested expression evaluation errors are propagated * - Closure auto-invoke errors are propagated * * @internal */ import type { BinaryExprNode, UnaryExprNode, GroupedExprNode } from '../../../../types.js'; import type { RillValue } from '../../types/structures.js'; import type { EvalState } from '../state.js'; /** * Evaluate binary expression: left op right. * Handles arithmetic, comparison, and logical operators. * Auto-invokes closures when $ is bound. */ export declare function evaluateBinaryExpr(s: EvalState, node: BinaryExprNode): Promise; /** * Evaluate unary expression: -operand or !operand. * Auto-invokes closures when $ is bound. */ export declare function evaluateUnaryExpr(s: EvalState, node: UnaryExprNode): Promise; /** * Evaluate grouped expression: (expression). * Provides scoping - captures inside are local and not visible outside. */ export declare function evaluateGroupedExpr(s: EvalState, node: GroupedExprNode): Promise;