import type { Grammar, ASTNode } from '../grammar.js';
export default class Evaluator {
    _grammar: Grammar;
    _context: Record<string, unknown>;
    _relContext: Record<string, unknown>;
    constructor(grammar: Grammar, context: Record<string, unknown>, relativeContext?: Record<string, unknown>);
    eval(ast: ASTNode): Promise<unknown>;
    evalArray(arr: ASTNode[]): Promise<unknown[]>;
    evalMap(map: Record<string, ASTNode>): Promise<Record<string, unknown>>;
    _filterRelative(subject: unknown, expr: ASTNode): Promise<unknown[]>;
    _filterStatic(subject: unknown, expr: ASTNode): Promise<unknown>;
    private _handleArrayLiteral;
    private _handleBinaryExpression;
    private _handleConditionalExpression;
    private _handleFilterExpression;
    private _handleIdentifier;
    private _handleLiteral;
    private _handleObjectLiteral;
    private _handleFunctionCall;
    private _handleUnaryExpression;
}
//# sourceMappingURL=Evaluator.d.ts.map