import { NodeEditorData, NodeId, Position, Node, Size } from '../../../../types/core'; import { LayoutOptions, LayoutResult, GridLayoutOptions } from './autoLayout/types'; export type { LayoutAlgorithm, LayoutDirection, LayoutOptions, LayoutResult, ForceLayoutOptions, HierarchicalLayoutOptions, TreeLayoutOptions, GridLayoutOptions, GraphCharacteristics, } from './autoLayout/types'; export { DEFAULT_FORCE_OPTIONS, DEFAULT_HIERARCHICAL_OPTIONS, DEFAULT_TREE_OPTIONS, DEFAULT_GRID_OPTIONS, DEFAULT_LAYOUT_OPTIONS, } from './autoLayout/types'; export { analyzeGraph, selectAlgorithm } from './autoLayout/graphAnalysis'; /** * Calculate grid layout - arranges nodes in a regular grid */ export declare function calculateGridLayout(data: NodeEditorData, options?: Partial, nodeSizes?: Record): LayoutResult; /** * Calculate auto layout with automatic algorithm selection */ export declare function calculateAutoLayout(data: NodeEditorData, options?: Partial): LayoutResult; /** * Calculate force-directed layout * Wrapper for backward compatibility */ export { calculateForceDirectedLayout } from './autoLayout/forceDirectedLayout'; /** * Calculate hierarchical layout * Wrapper for backward compatibility */ export { calculateHierarchicalLayout } from './autoLayout/hierarchicalLayout'; /** * Calculate tree layout */ export { calculateTreeLayout } from './autoLayout/treeLayout'; /** * Calculate the bounding box of all nodes including their sizes * Useful for viewport adjustments after layout */ export declare function calculateNodesBoundingBox(nodes: Node[], positions: Record, nodeSizes?: Record): { minX: number; minY: number; maxX: number; maxY: number; width: number; height: number; centerX: number; centerY: number; };