import { BaseGraphNode, BaseGraphLink } from '@aiready/core/client'; import * as React from 'react'; interface GraphNode extends BaseGraphNode { label?: string; color?: string; size?: number; group?: string; kind?: 'file' | 'package'; packageGroup?: string; } interface GraphLink extends BaseGraphLink { color?: string; width?: number; label?: string; type?: string; } type LayoutType = 'force' | 'hierarchical' | 'circular'; interface ForceDirectedGraphHandle { pinAll: () => void; unpinAll: () => void; resetLayout: () => void; fitView: () => void; getPinnedNodes: () => string[]; setDragMode: (enabled: boolean) => void; setLayout: (layout: LayoutType) => void; getLayout: () => LayoutType; } interface ForceDirectedGraphProps { nodes: GraphNode[]; links: GraphLink[]; width: number; height: number; enableZoom?: boolean; enableDrag?: boolean; onNodeClick?: (node: GraphNode) => void; onNodeHover?: (node: GraphNode | null) => void; onLinkClick?: (link: GraphLink) => void; selectedNodeId?: string; hoveredNodeId?: string; defaultNodeColor?: string; defaultNodeSize?: number; defaultLinkColor?: string; defaultLinkWidth?: number; showNodeLabels?: boolean; showLinkLabels?: boolean; className?: string; manualLayout?: boolean; onManualLayoutChange?: (enabled: boolean) => void; packageBounds?: Record; layout?: LayoutType; onLayoutChange?: (layout: LayoutType) => void; } declare const ForceDirectedGraph: React.ForwardRefExoticComponent>; export { ForceDirectedGraph, type ForceDirectedGraphHandle, type ForceDirectedGraphProps, type GraphLink, type GraphNode, type LayoutType, ForceDirectedGraph as default };