import { Point, Polyline } from '../../math/geometry';
import { Cdt } from '../ConstrainedDelaunayTriangulation/Cdt';
import { CdtEdge as Ed } from '../ConstrainedDelaunayTriangulation/CdtEdge';
import { CdtTriangle as Tr } from '../ConstrainedDelaunayTriangulation/CdtTriangle';
export declare class PathOptimizer {
private cdt;
poly: Polyline;
private sourcePoly;
private targetPoly;
private d;
setCdt(cdt: Cdt): void;
triangles: Set
;
private outsideOfObstacles;
/** following "https://page.mi.fu-berlin.de/mulzer/notes/alggeo/polySP.pdf" */
run(poly: Polyline): void;
/**A function that returns an array of all crossed triangles
* by a line segment from start to end
* assuming the initial triangle contains the start point*/
private getAllCrossedTriangles;
findChannelTriangles(): void;
findPoly(p: Point): Polyline;
/** Because of the floating point operations we might miss some triangles and get a polygon collapsing to a point somewhere inside of the polyline.
* This point will correspond to a site adjacent to more than two edges from 'perimeter'.
* We add to the polygon all the 'legal' triangles adjacent to this cite.
*/
fillTheCollapedSites(perimeter: Set): Set;
private findSourceTriangle;
private refineFunnel;
private initDiagonals;
private getSleeve;
private recoverPath;
private getPerimeterEdges;
}