/** * Graph View Component * Interactive document graph visualization with Barnes-Hut force-directed layout */ import { DocumentMetadata } from "./graph-builder"; export interface GraphViewOptions { container: HTMLElement | string; documents: DocumentMetadata[]; width?: number; height?: number; iterations?: number; repulsionStrength?: number; attractionStrength?: number; nodeRadius?: number; showLabels?: boolean; onNodeClick?: (node: { id: string; title: string; tags: string[]; }) => void; onNodeHover?: (node: { id: string; title: string; tags: string[]; } | null) => void; onLayoutProgress?: (iteration: number, alpha: number) => void; } export declare class GraphView { private container; private canvas; private graph; private layout; private renderer; private options; private animationFrame; private isRunning; private resizeObserver; constructor(options: GraphViewOptions); /** * Setup resize observer for responsive canvas sizing */ private setupResizeObserver; /** * Run layout simulation */ runLayout(): void; /** * Stop layout simulation */ stopLayout(): void; /** * Reset layout and restart */ resetLayout(): void; /** * Update documents and rebuild graph */ updateDocuments(documents: DocumentMetadata[]): void; /** * Get graph statistics */ getStats(): { nodeCount: number; edgeCount: number; avgDegree: number; maxDegree: number; }; /** * Resize canvas */ resize(width?: number, height?: number): void; /** * Reset view (center and fit graph) */ resetView(): void; /** * Render the graph */ render(): void; /** * Destroy component */ destroy(): void; }