/** * Hierarchical Layout Engine * Uses ELK.js for advanced graph layout with proper edge routing */ import { type LayoutDirection, type LayoutResult, type NetworkGraph } from '../models/index.js'; export interface HierarchicalLayoutOptions { direction?: LayoutDirection; nodeWidth?: number; nodeHeight?: number; nodeSpacing?: number; rankSpacing?: number; subgraphPadding?: number; subgraphLabelHeight?: number; } export declare class HierarchicalLayout { private options; private elk; constructor(options?: HierarchicalLayoutOptions); /** * Calculate dynamic spacing based on graph complexity */ private calculateDynamicSpacing; private getEffectiveOptions; layoutAsync(graph: NetworkGraph): Promise; /** * Build ELK graph - uses container nodes for HA pairs */ private buildElkGraph; /** * Extract layout result from ELK output - uses ELK's edge routing directly */ private extractLayoutResult; layout(graph: NetworkGraph): LayoutResult; private toElkDirection; private calculateNodeHeight; private calculatePortSpacing; private calculateNodeWidth; private calculateTotalBounds; private calculateFallbackLayout; /** Detect HA pairs from redundancy links */ private detectHAPairs; /** Generate orthogonal path between two points */ private generateOrthogonalPath; } export declare const hierarchicalLayout: HierarchicalLayout; //# sourceMappingURL=hierarchical.d.ts.map