import { Point } from '../../../math/geometry/point'; import { Direction } from '../../../math/geometry/direction'; import { LinkedPoint } from './LinkedPoint'; import { Path } from './Path'; type PointProjection = (p: Point) => number; export declare class PathRefiner { static RefinePaths(paths: Array, mergePaths: boolean): void; static AdjustPaths(paths: Array): void; static AdjustPathPoints(points: Array): Array; static CrossVerticalAndHorizontalSegs(pathsFirstLinked: Iterable): void; static ReconstructPathsFromLinkedVertices(pathsToPathLinkedPoints: Map): void; static Refine(pathFirstPoints: Array): void; static groupByProj(proj: (a: Point) => number, linkedPointsInDirection: LinkedPoint[]): IterableIterator>; static RefineInDirection(direction: Direction, pathFirstPoints: Iterable): void; static GetProjectionsDelegates(direction: Direction, t: { projectionToPerp: PointProjection; projectionToDirection: PointProjection; }): void; static GetAllLinkedVertsInDirection(projectionToPerp: PointProjection, initialVerts: Iterable): IterableIterator; static RefineCollinearBucket(pathLinkedVertices: Iterable, projectionToDirection: PointProjection): void; static InsertPoints(pathLinkedVertex: LinkedPoint, arrayOfPoints: Point[], i: number, j: number): void; static CreatePathsToFirstLinkedVerticesMap(edgePaths: Iterable): Map; static CreateLinkedVertexOfEdgePath(path: Path): LinkedPoint; } export {};