import { JsonPointerString } from "./MetaInfoProducer.js"; import { ParallelExecutionPlan } from "./ParallelExecutionPlan.js"; import TemplateProcessor from "./TemplateProcessor.js"; export declare class TraversalState { visited: Set; recursionStack: Set; stack: ParallelExecutionPlan[]; options: { exprsOnly: boolean; }; tp: TemplateProcessor; constructor(tp: TemplateProcessor, options: { exprsOnly: boolean; }); pushNode(node: ParallelExecutionPlan): boolean; popNode(): void; isCircular(dependency: JsonPointerString, owner: JsonPointerString): boolean; /** * Used to detect a condition where like "data:${data.foo}" which essentially declares a dependency on the * expression itself. This is inherently circular. You cannot say "use that thing in this expression, where * that thing is a product of evaluating this expression". You also cannot say "use that thing in this * expression where that thing is a direct ancestor of this expression" as that is also circular, implying that * the expression tries to reference an ancestor node, whose descendent includes this very node. * @param exprNode * @param dependency */ private isCommonPrefix; logCircular(dependency: JsonPointerString): void; } //# sourceMappingURL=TraversalState.d.ts.map