import { Expr } from "./Expr.js"; import { IfcExpressionContext } from "../context/IfcExpressionContext.js"; import { ExprEvalError, ExprEvalResult } from "./ExprEvalResult.js"; import { ExprKind } from "./ExprKind.js"; import { ExprType } from "../type/ExprType.js"; import { TextSpan } from "../util/TextSpan.js"; import { ExprStringBuilder } from "./ExprStringBuilder.js"; export declare abstract class ExprBase implements Expr { private readonly exprKind; private textSpan?; protected constructor(exprKind: ExprKind); setTextSpan(ctx: TextSpan): void; getTextSpan(): TextSpan | undefined; abstract getChildren(): Array>; abstract evaluate(ctx: IfcExpressionContext, localCtx: Map): ExprEvalResult; getKind(): ExprKind; protected wrapInResultIfNecessary(result: T | ExprEvalError): ExprEvalResult; private hasTextSpan; toExprString(builder?: ExprStringBuilder): string; protected abstract buildExprString(builder: ExprStringBuilder): void; abstract getType(): ExprType; }