import type { GraphEdge, GraphNode } from '../@types'; export interface VisGraphInitOptions { container: HTMLElement; } export interface EditCallbacks { onAddNode?: (x: number, y: number) => void; onAddEdge?: (sourceId: string, targetId: string) => void; onProposeConnection?: (sourceId: string, targetId: string) => void; onDeleteNode?: (nodeId: string) => void; onDeleteEdge?: (edgeId: string) => void; onDataChange?: (nodes: GraphNode[], edges: GraphEdge[]) => void; onNodeContextMenu?: (nodeId: string, label: string, color: string, menuX: number, menuY: number, clientX: number, clientY: number) => void; onEdgeContextMenu?: (edgeId: string, sourceId: string, targetId: string, label: string, menuX: number, menuY: number, clientX: number, clientY: number) => void; } export interface InitOptions extends EditCallbacks { editMode?: boolean; } export type ToolType = 'select' | 'addNode' | 'addEdge' | 'deleteNode' | 'deleteEdge'; export type GraphTheme = 'light' | 'dark'; export declare class VisKnowledgeGraph { private container; private network; private nodesDs; private edgesDs; private nodeMap; private edgeMap; private hoverNodeHandler; private blurNodeHandler; private clickHandler; private activeNodeId; private activeEdgeIds; private activeEdgeColorMap; private flowTimer; private flowProgress; private afterDrawingHandler; private stabilizationDoneHandler; private dragStartHandler; private dragEndHandler; private isEditMode; private toolType; private flowPausedByDrag; private theme; private getThemePalette; setTheme(theme: GraphTheme): void; hasGraph(): boolean; init(options: VisGraphInitOptions, nodes: GraphNode[], edges: GraphEdge[], editOptions?: InitOptions): Promise; update(nodes: GraphNode[], edges: GraphEdge[]): void; private scheduleFitView; setEditMode(enabled: boolean): void; setToolType(type: ToolType): void; getEditData(): { nodes: GraphNode[]; edges: GraphEdge[]; }; updateNodeLabel(nodeId: string, newLabel: string): void; updateNodeColor(nodeId: string, color: string): void; updateEdge(edgeId: string, updates: { label?: string; source?: string; target?: string; }): void; deleteNode(nodeId: string): void; deleteEdge(edgeId: string): void; addNodeAt(x: number, y: number, label: string, type?: string): void; addEdgeBetween(sourceId: string, targetId: string, label?: string): void; startConnectFrom(nodeId: string): void; getViewportCenterGraphPoint(): { x: number; y: number; } | null; getNodeDisplayLabel(nodeId: string): string; private setupAdjacencyHover; private setupFlowOverlay; private highlightAdjacency; private resetStyles; private startFlowAnimation; private updateActiveEdgeLabelsByProgress; private stopFlowAnimation; fitView(): void; focusNode(nodeId: string): void; destroy(): void; }