import { Vector3 } from "three";
import { Arc } from "../DatabaseServices/Entity/Arc";
import { Curve } from "../DatabaseServices/Entity/Curve";
import { Polyline } from "../DatabaseServices/Entity/Polyline";
import { PromptEntityResult, PromptPointResult } from "../Editor/PromptResult";
declare enum ExtendType {
    Start = 1,
    End = 2
}
export interface FilletRes {
    cu1?: Curve;
    cu1Extend?: ExtendType;
    cu2?: Curve;
    cu2Extend?: ExtendType;
    arc?: Arc;
}
export declare class FilletUtils {
    FilletRadius: number;
    Fillet(enRes1: PromptEntityResult, enRes2: PromptEntityResult): FilletRes;
    private FilletLineOrArc;
    FilletPolyLineSelf(enRes1: PromptEntityResult, enRes2: PromptEntityResult): FilletRes;
    private FilletPolylineAndCurve;
    FilletPolyLineAllAngular(enRes1: PromptEntityResult): FilletRes;
    FindNearestPt(pts: Vector3[], target: Vector3): Vector3;
    FilletBoard(brRes: PromptEntityResult, ptRes: PromptPointResult): Polyline | string;
    /**
     * 平行线倒角
     */
    private FilletParallelLine;
    /**
     * 计算圆弧与圆弧没有交点的情况下倒角结果.
     * @param enRes1
     * @param enRes2
     * @returns arc and arc
     */
    private FilletArcAndArc;
    /**
     * 计算直线与圆弧没有交点(或相切)的情况下倒角结果
     * @param enRes1
     * @param enRes2
     * @returns line and cir
     */
    private FilletLineAndArc;
    private GetIntersectAndSort;
    /**
     * 对图元列表进行按位编码,类型映射如下:
     * # 1:line 2:arc 4:polyline
     * @param enRes
     * @param enRes2
     * @returns
     */
    private EnCode;
    private ComputerDerv;
    private ComputerDerv2;
    private ExtendPt;
    /**
     * 切割或者延伸曲线,尖角化
     *
     * @param cu 处理的曲线
     * @param interPt 原先的相交点
     * @param pickPoint 鼠标点击点
     * @returns 返回新的曲线
     */
    private SplitCurve;
}
export {};
//# sourceMappingURL=FilletUtils.d.ts.map