import { Point, GeomEdge } from '../../..'; import { Polyline } from '../../../math/geometry'; import { RectangleNode } from '../../../math/geometry/RTree/rectangleNode'; import { BundlingSettings } from '../../BundlingSettings'; import { ClusterBoundaryPort } from '../../ClusterBoundaryPort'; import { CdtEdge } from '../../ConstrainedDelaunayTriangulation/CdtEdge'; import { VisibilityGraph } from '../../visibility/VisibilityGraph'; import { BundlingStatus } from './BundlingStatus'; import { Algorithm } from '../../../utils/algorithm'; import { SdShortestPath } from './SdShortestPath'; import { Port } from '../../../layout/core/port'; export declare class BundleRouter extends Algorithm { bundlingSettings: BundlingSettings; edgesToRoute: GeomEdge[]; regularEdges: GeomEdge[]; LoosePadding: number; static SuperLoosePaddingCoefficient: number; shortestPathRouter: SdShortestPath; TightHierarchy: RectangleNode; LooseHierarchy: RectangleNode; Status: BundlingStatus; VisibilityGraph: VisibilityGraph; loosePolylineOfPort: (a: Port) => Polyline; constructor(edgesToRoute: GeomEdge[], shortestPathRouter: SdShortestPath, visibilityGraph: VisibilityGraph, bundlingSettings: BundlingSettings, loosePadding: number, tightHierarchy: RectangleNode, looseHierarchy: RectangleNode, edgeLooseEnterable: Map>, edgeTightEnterable: Map>, loosePolylineOfPort: (a: Port) => Polyline); ThereAreOverlaps(hierarchy: RectangleNode): boolean; run(): void; private OrderOptimizeNudgeEtc; FixChildParentEdges(): void; FixLocationsForHookAnywherePorts(edges: GeomEdge[]): void; FigureOutHookLocation(poly: Polyline, otherEdgeEndPort: Port, edgeGeom: GeomEdge): Point; FigureOutHookLocationForClusterOtherPort(poly: Polyline, otherEdgeEndPort: ClusterBoundaryPort, edgeGeom: GeomEdge): Point; private FigureOutHookLocationForSimpleOtherPort; EdgeLooseEnterable: Map>; EdgeTightEnterable: Map>; RoutePathsWithSteinerDijkstra(): void; AdjustEdgeSeparation(): void; GetPathsOnCdtEdge(crossedEdges: Map>): Map>; CalculateEdgeWidthShrinkCoeff(pathsOnCdtEdge: Map>): number; EdgeSeparationIsOkMN(pathsOnCdtEdge: Map>, widthShrinkCoeff: number): boolean; EdgeSeparationIsOk(edge: CdtEdge, paths: Set, shrinkCoeff: number): boolean; RouteSelfEdges(): void; FixArrowheads(): void; }