/**
 * Expression evaluation for constant propagation.
 *
 * Evaluates AST expressions to determine their constant values.
 */
import type { Node } from 'web-tree-sitter';
import type { ConstantValue } from './types.js';
/**
 * Expression evaluator for constant propagation.
 *
 * Takes a symbol lookup function to resolve variable values,
 * allowing it to be used with different symbol tables.
 */
export declare class ExpressionEvaluator {
    private source;
    private getSymbol;
    constructor(source: string, getSymbol: (name: string) => ConstantValue | undefined);
    /**
     * Evaluate an expression node to determine its constant value.
     */
    evaluate(node: Node): ConstantValue;
    private evaluateBinary;
    private evaluateUnary;
    private evaluateTernary;
    private evaluateMethodCall;
    private evaluateFieldAccess;
    /**
     * Get argument values from an argument list node.
     */
    getArgumentValues(argsNode: Node): ConstantValue[];
    private unescapeChar;
}
//# sourceMappingURL=evaluator.d.ts.map