import type { RefObject } from "react"; import type { JsonFormsRendererRegistryEntry, JsonFormsCellRendererRegistryEntry, UISchemaElement } from "@jsonforms/core"; export interface TreeNode { id: number | string; hasChildren?: boolean; children?: TreeNode[]; isHighlighted?: boolean; [key: string]: any; } export interface CollapseToggleProps { isCollapsed: boolean; borderColor: string; cardHeight: number; onToggle: () => void; isLoading?: boolean; } export interface NodeContainerProps { nodeData: Record; renderers: JsonFormsRendererRegistryEntry[]; cells: JsonFormsCellRendererRegistryEntry[]; enabled: boolean; nodeElements: UISchemaElement[]; nodeWidth: number; minHeight: number; hasChildren: boolean; isCollapsed: boolean; onToggle: () => void; onHeightChange: (h: number) => void; currentHeight: number; levelStyle: any; depth: number; isHighlighted: boolean; isNodeLoading?: boolean; styleConfig?: any; } export interface ZoomTransformMatrix { scaleX: number; scaleY: number; translateX: number; translateY: number; skewX: number; skewY: number; } export interface ZoomHandle { transformMatrix: ZoomTransformMatrix; isDragging: boolean; containerRef: RefObject; scale: (scale: { scaleX: number; scaleY?: number; point?: { x: number; y: number; }; }) => void; dragStart: (event: any) => void; dragMove: (event: any, options?: { offsetX?: number; offsetY?: number; }) => void; dragEnd: () => void; reset: () => void; toString: () => string; } export interface ToolbarProps { zoom: ZoomHandle; totalWidth: number; } export interface ChartProps { path: string; width: number; height: number; data: TreeNode; linkType: string; stepPercent: number; nodeWidth: number; nodeHeight: number; styleConfig: Record; margin?: typeof DEFAULT_MARGIN; renderers: JsonFormsRendererRegistryEntry[]; cells: JsonFormsCellRendererRegistryEntry[]; enabled: boolean; nodeElements: UISchemaElement[]; islazyLoad?: boolean; lazyLoadFunction?: string; } export declare const MIN_ZOOM = 0.01; export declare const MAX_ZOOM = 4; export declare const DEFAULT_MARGIN: { top: number; left: number; right: number; bottom: number; }; export declare const TOGGLE_RADIUS = 11; export declare const TOOLBAR_HEIGHT = 52; export declare const FOREIGNOBJECT_MAX_HEIGHT = 9999; export declare const NODE_SCHEMA: { type: string; additionalProperties: boolean; }; export declare const NODE_UISCHEMA: { type: string; elements: any[]; }; export declare const DEFAULT_STYLES: { backgroundColor: string; borderColor: string; borderWidth: number; borderRadius: number; };