import { Context } from "../../context/index"; import { Connection } from "../../../api/contract/Step"; import Node from "./Node"; export default class Graph extends Node { protected graph: Record; private addNodeToGraph; private checkIfNodeExistInGraph; private addNodeToGraphIfNotExist; private addConnectionInNodeGraph; nexFrom(nodeFrom: Node, nodeTo: Node, forceSync?: boolean): void; linkFrom(nodeFrom: Node, nodeTo: Node, linkId: string, forceSync?: boolean): void; bifurcationFrom(nodeFrom: Node, nodeOnTrue: Node, nodeOnFalse: Node, condition: TemplateCondition, forceSync?: boolean): void; getNexStepConnection(): Connection; navigate(stepId: string): Node | null; } export type TemplateCondition = (context: Context) => boolean;