import { Point } from '../../..'; import { Polyline } from '../../../math/geometry'; import { PointPair } from '../../../math/geometry/pointPair'; import { PolylinePoint } from '../../../math/geometry/polylinePoint'; import { BinaryRTree } from '../../../math/geometry/RTree/rTree'; import { PointPairMap } from '../../../utils/pointPairMap'; import { PointSet } from '../../../utils/PointSet'; import { MetroGraphData } from './MetroGraphData'; import { Metroline } from './MetroLine'; export declare class PathFixer { metroGraphData: MetroGraphData; polylineAcceptsPoint: (m: Metroline, p: Point) => boolean; foundCrossings: PointSet; crossingsThatShouldBecomeHubs: PointSet; pointsToDelete: PointSet; constructor(metroGraphData: MetroGraphData, polylineAcceptsPoint: (m: Metroline, p: Point) => boolean); Vertices(): IterableIterator; get Polylines(): Array; Edges(): Array; run(): boolean; FixPaths(): boolean; SortInsertedPoints(splittingPoints: PointPairMap>): void; SortInsideSegment(edge: PointPair, list: Array): void; InsertPointsIntoPolylines(splittingPoints: PointPairMap>): boolean; InsertPointsIntoPolyline(metroline: Metroline, splittingPoints: PointPairMap>): boolean; InsertPointsOnPolypoint(pp: PolylinePoint, splittingPoints: PointPairMap>, metroline: Metroline): boolean; RemoveSelfCycles(): boolean; static RemoveSelfCyclesFromPolyline(poly: Polyline): boolean; ReduceEdgeCrossings(): boolean; RemoveUnimportantCrossings(): boolean; RemoveUnimportantCrossingsFromPolyline(polyline: Polyline): boolean; IntersectTwoEdges(a: PointPair, b: PointPair, splittingPoints: PointPairMap>, tree: BinaryRTree): void; FindExistingVertexOrCreateNew(tree: BinaryRTree, x: Point): Point; AddVertexToSplittingList(a: PointPair, splittingPoints: PointPairMap>, intersectionPoint: Point): boolean; }