import { IfcExpressionContext } from "../context/IfcExpressionContext.js"; import { ExprKind } from "./ExprKind.js"; import { ExprEvalResult } from "./ExprEvalResult.js"; import { ExprType } from "../type/ExprType.js"; import { TextSpan } from "../util/TextSpan.js"; import { ExprStringBuilder } from "./ExprStringBuilder.js"; export interface Expr { evaluate(ctx: IfcExpressionContext, localCtx: Map): ExprEvalResult; getKind(): ExprKind; toExprString(builder?: ExprStringBuilder): string; getChildren(): Array>; setTextSpan(ctx: TextSpan): any; getTextSpan(): TextSpan | undefined; getType(): ExprType; }