import { ProjectorService, VNode } from "maquette"; import { EdgeData, NodeData, NodePosition } from "./api"; import { EdgeState } from "./edge-layout/edge-common"; import { XY } from "./interfaces"; import { VisualizerAPI } from "./internal-api"; import { NodeState, RenderedNode } from "./node-layout/node-common"; /** * Used for keeping a record for each node for efficient rendering */ export interface VisibleNodeEntry { readonly position: NodePosition; readonly state: NodeState; highlighted: boolean; data?: NodeData; renderedNode?: RenderedNode; } export interface VisibleEdgeEntry { data: EdgeData; highlighted: boolean; readonly state: EdgeState; } export declare function createGraphState(): { svgElement: SVGSVGElement | undefined; activeNodeKey: string | undefined; dragging: { newNode?: NodePosition | undefined; position: XY; readonly startPosition: XY; readonly startVisualizationTransform: XY; readonly startMousePosition: XY; } | undefined; visibleNodesMemoization: import("./utils").Memoization>; visibleEdgesMemoization: import("./utils").Memoization>; previousNodes: unknown; renderCache: import("maquette").CalculationCache; getZoomFactor: () => number; setZoomFactor: (newZoomFactor: number) => void; getVisualizationTransform: () => { x: number; y: number; }; setVisualizationTransform: (transform: any) => void; }; export declare type GraphState = ReturnType; export declare function renderGraph(state: GraphState, dragStart: undefined | { nodeKey: string; anchorScreenPosition: XY; mousePosition: XY; }, filterOnNode: (nodeKey: string) => void, api: VisualizerAPI, projector: ProjectorService): VNode;