import { Circle } from "./Entity/Circle";
import { Curve } from "./Entity/Curve";
import { Polyline } from "./Entity/Polyline";
export declare class Contour {
    private _Curve;
    protected SetCurve(cu: Polyline | Circle): void;
    /**会将传入的闭合轮廓改为逆时针 */
    static CreateContour(cus: Curve[] | Polyline | Circle, needLink?: boolean): Contour;
    get Curve(): Polyline | Circle;
    get Area(): number;
    get BoundingBox(): import("../Geometry/Box").Box3Ext;
    /**
     * 不等比例缩放
     * @param {number} ref 缩放参考值,大于该值的点缩放
     * @param {number} dist 缩放距离
     * @param {string} dir x y z
     */
    UnEqualProportionScale(ref: number, dist: number, dir: "x" | "y"): boolean;
    Clone(): Contour;
    IntersectionBoolOperation(target: Contour): Contour[];
    UnionBoolOperation(target: Contour): {
        contours: Contour[];
        holes: Contour[];
    };
    SubstactBoolOperation(target: Contour): Contour[];
    /**
     * 计算与目标轮廓布尔运算后的结果曲线.
     */
    GetIntersetAndUnionList(target: Contour): {
        intersectionList: Curve[];
        unionList: Curve[];
    };
    GetSubtractList(target: Contour): Polyline[];
    GetSubtractListByMoreTargets(targets: Contour[]): {
        holes: Contour[];
        outlines: Contour[];
    };
    GetSubListWithCus(targets: Contour[]): {
        holes: Polyline[];
        subtractList: Polyline[];
    };
    /**
     * 获得全部闭合曲线
     * @若传入二维曲线数据,将默认子数组为闭合曲线段
     */
    static GetAllContour(cus: Curve[] | Curve[][]): Contour[];
    /**
     * 合并曲线组成为多段线
     * @param cus 曲线组
     * @param [needLink=true] 需要解析成首尾连接状态
     * @returns 单一曲线,如果返回超过1个,其他的将被遗弃.
     */
    static Combine(cus: Curve[], needLink?: boolean, tolerance?: number): Curve;
    get Shape(): THREE.Shape;
    CuInOutline(targetCur: Curve): boolean;
    Equal(tar: Contour): boolean;
}
//# sourceMappingURL=Contour.d.ts.map