/**
 * Safe expression evaluator for Yarn Spinner conditions.
 * Supports variables, functions, comparisons, and logical operators.
 */
export declare class ExpressionEvaluator {
    private variables;
    private functions;
    private enums;
    private smartVariables;
    constructor(variables?: Record<string, unknown>, functions?: Record<string, (...args: unknown[]) => unknown>, enums?: Record<string, string[]>);
    /**
     * Evaluate a condition expression and return a boolean result.
     * Supports: variables, literals (numbers, strings, booleans), comparisons, logical ops, function calls.
     */
    evaluate(expr: string): boolean;
    /**
     * Evaluate an expression that can return any value (not just boolean).
     */
    evaluateExpression(expr: string): unknown;
    private preprocess;
    private evaluateFunctionCall;
    private parseArguments;
    private containsComparison;
    private looksLikeFunctionCall;
    private containsArithmetic;
    private evaluateArithmetic;
    private evaluateComparison;
    private evaluateLogical;
    private resolveValue;
    /**
     * Resolve shorthand enum (.CaseName) when setting a variable with known enum type
     */
    resolveEnumValue(expr: string, enumName?: string): string;
    /**
     * Get enum type for a variable (if it was declared with enum type)
     */
    getEnumTypeForVariable(varName: string): string | undefined;
    private deepEquals;
    /**
     * Update variables. Can be used to mutate state during dialogue.
     */
    setVariable(name: string, value: unknown): void;
    /**
     * Register a smart variable (variable with expression that recalculates on access).
     */
    setSmartVariable(name: string, expression: string): void;
    /**
     * Check if a variable is a smart variable.
     */
    isSmartVariable(name: string): boolean;
    /**
     * Get variable value.
     */
    getVariable(name: string): unknown;
}
