import { BooleanLiteralExpr, CallExpr, CaseExpr, Expr, ExprVisitor, HasAttributeExpr, InterpolateExpr, LookupExpr, MatchExpr, NullLiteralExpr, NumberLiteralExpr, ObjectLiteralExpr, StepExpr, StringLiteralExpr, VarExpr } from "./Expr"; /** * [[ExprPool]] maintains a set of unique interned {@link Expr} objects. * * @hidden */ export declare class ExprPool implements ExprVisitor { private readonly m_booleanLiterals; private readonly m_numberLiterals; private readonly m_stringLiterals; private readonly m_objectLiterals; private readonly m_arrayLiterals; private readonly m_varExprs; private readonly m_hasAttributeExprs; private readonly m_matchExprs; private readonly m_caseExprs; private readonly m_interpolateExprs; private readonly m_stepExprs; private readonly m_callExprs; /** * Add `expr` to this [[ExprPool]] and return a unique {@link Expr} * object that is structurally equivalent to `expr`. * * @param expr - The {@link Expr} to add to this [[ExprPool]]. * @returns A unique {@link Expr} that is structurally equivalent to `expr`. */ add(expr: Expr): Expr; visitNullLiteralExpr(expr: NullLiteralExpr, context: void): Expr; visitBooleanLiteralExpr(expr: BooleanLiteralExpr, context: void): Expr; visitNumberLiteralExpr(expr: NumberLiteralExpr, context: void): Expr; visitStringLiteralExpr(expr: StringLiteralExpr, context: void): Expr; visitObjectLiteralExpr(expr: ObjectLiteralExpr, context: void): Expr; visitVarExpr(expr: VarExpr, context: void): Expr; visitHasAttributeExpr(expr: HasAttributeExpr, context: void): Expr; visitMatchExpr(expr: MatchExpr, context: void): Expr; visitCaseExpr(expr: CaseExpr, context: void): Expr; private visitCallExprImpl; visitCallExpr(expr: CallExpr, context: void): Expr; visitLookupExpr(expr: LookupExpr, context: void): Expr; visitStepExpr(expr: StepExpr, context: void): Expr; visitInterpolateExpr(expr: InterpolateExpr, context: void): Expr; } //# sourceMappingURL=ExprPool.d.ts.map