import { Curve } from "../DatabaseServices/Entity/Curve";
import { Route, Vertice } from "./CurveMap";
type RegionRouteS = (Route[])[];
/**
面域分析,基于最小循环图重新实现的版本，拓展了实现求最大轮廓。
当最大轮廓=最小轮廓时，只绘制最大轮廓（独立轮廓无分裂）。

算法只实现去重模式,业务场景应该没有非去重模式。
如果需要非去重模式，那么应该获取到多个CurveMap，然后对多个CurveMap进行面域分析，得出多个重叠的面域。
 */
export declare class RegionParse {
    numDimensions: number;
    private removeDuplicate;
    RegionsOutline: RegionRouteS;
    RegionsInternal: RegionRouteS;
    ExpLineMap: Map<Curve, Curve[]>;
    private _CurveCount;
    /**
     * @param cuList 请不要传递圆和椭圆.
     * @param [numDimensions=3] 精度:小数点后个数
     * @param [removeDuplicate=true] 删除重复(现在必须是true,请不要修改它)
     */
    constructor(cuList: Curve[], numDimensions?: number, removeDuplicate?: boolean);
    static RegionsIsOverlap(Route: Route[]): boolean;
    private RemoveFilamentAt;
    private RemoveEdge;
    /**
     * 找到最下方并且最左边的站 yx
     */
    private FindLowerLeftStand;
    /**
     * 构造路线图. 每个节点对应下一个路口的路线表. 路口表使用逆时针排序,起始角度使用正x轴.
     * @returns 所有的顶点
     */
    protected GenerateVerticeMap(curveList: Curve[]): Array<Vertice>;
    private BreakArc;
    /**
     * 曲线是否已经被算法使用
     */
    GetCueveUsed(cu: Curve): boolean;
}
export declare function CalcRouteAngle(r: Route, length: number): void;
export {};
//# sourceMappingURL=RegionParse.d.ts.map