import { IfcExpressionContext } from "../context/IfcExpressionContext.js";
import { ExprKind } from "./ExprKind.js";
import { ExprBase } from "./ExprBase.js";
import { ExprEvalError, ExprEvalResult } from "./ExprEvalResult.js";
import { Expr } from "./Expr.js";
export declare abstract class Expr0<E> extends ExprBase<E> {
    protected constructor(kind: ExprKind);
    getChildren(): Array<Expr<any>>;
    protected abstract doEvaluate(ctx: IfcExpressionContext, localCtx: Map<string, any>): E | ExprEvalError;
    evaluate(ctx: IfcExpressionContext, localCtx: Map<string, any>): ExprEvalResult<E>;
    protected handleError(error: any): ExprEvalError;
}
