import { InputValues } from './InputValues';
import { PredefinedTokenEnum } from './PredefinedTokenEnum';
import { Node } from './Node';
/**
 * Class to generate an expression tree so that expression can be evaluated or parsed at a later date
 * @internal
 */
export declare class ExpressionTree {
    /**
     * @internal
     */
    static textToTokenHash: Map<string, PredefinedTokenEnum>;
    /**
     * Create a new node of the expression tree
     */
    private static createNewNode;
    /**
     * Given an expression string, create an expression tree
     * @internal
     */
    static constructExpressionTree(expression: string): Node;
    /**
     * Order of operators
     * Higher the priority - higher the precedence
     */
    private static operatorPriority;
    /**
     * Given a condition and the input values, evaluate the condition
     * @internal
     */
    static evaluateCondition(condition: string, input: InputValues): boolean;
    /**
     * Given an expression tree, evaluate the expression
     * @internal
     */
    static evaluateExpressionTree(top: Node, input: InputValues): any;
    /**
     * For unit test only
     * @internal
     */
    static inOrderTraversal(top: Node): void;
}
