/** * Canvas Renderer for Graph Visualization * Handles rendering, pan, zoom, and interactions */ import { DocumentGraph, GraphNode } from "./graph-builder"; export interface RenderOptions { nodeRadius?: number; nodeColor?: string; nodeStroke?: string; nodeStrokeWidth?: number; edgeColor?: string; edgeWidth?: number; labelFont?: string; labelColor?: string; labelSize?: number; showLabels?: boolean; highlightColor?: string; } export declare class CanvasRenderer { private canvas; private ctx; private graph; private options; private offsetX; private offsetY; private scale; private isDragging; private dragStartX; private dragStartY; private hoveredNode; private selectedNode; private onNodeClick?; private onNodeHover?; constructor(canvas: HTMLCanvasElement, graph: DocumentGraph, options?: RenderOptions); /** * Render the graph */ render(): void; /** * Render edges */ private renderEdges; /** * Render nodes */ private renderNodes; /** * Render labels */ private renderLabels; /** * Setup event listeners for interaction */ private setupEventListeners; /** * Get node at screen position */ private getNodeAtPosition; /** * Get computed CSS color value */ private getComputedColor; /** * Set node click callback */ setOnNodeClick(callback: (node: GraphNode) => void): void; /** * Set node hover callback */ setOnNodeHover(callback: (node: GraphNode | null) => void): void; /** * Reset view (center and fit) */ resetView(): void; /** * Update canvas size */ resize(width: number, height: number): void; }