import { Geom3 } from "@jscad/modeling/src/geometries/types";
import { BufferGeometry, Matrix4, Vector3 } from "three";
import { Arc } from "../../DatabaseServices/Entity/Arc";
import { Board } from "../../DatabaseServices/Entity/Board";
import { Line } from "../../DatabaseServices/Entity/Line";
import { Polyline } from "../../DatabaseServices/Entity/Polyline";
import { FuzzyFactory } from "../../csg/core/FuzzyFactory";
import { FaceDirection } from "../DrawDrilling/DrillType";
export declare class ArcBoardBuild {
    private _board;
    private _SweepPath;
    private _SweepAngle;
    private _FaceDir;
    private _SweepLengths;
    private _SweepCurves1;
    private _SweepCurves2;
    private _SweepPath1;
    private _SweepPath2;
    _OCS2RotateMtx: Matrix4;
    _Rotate2OCSMtx: Matrix4;
    constructor(_board: Board, _SweepPath?: Polyline, _SweepAngle?: number, _FaceDir?: FaceDirection);
    get SweepPath1(): Polyline;
    get SweepPath2(): Polyline;
    ParseContourLength(): void;
    static OffsetPolyline(path: Polyline, dist: number): Polyline;
    get OCS2RotateMtx(): Matrix4;
    get Rotate2OCSMtx(): Matrix4;
    ParseRotateMtx(): void;
    get SweepCurves1(): (Line | Arc)[];
    get SweepCurves2(): (Line | Arc)[];
    ParseSweepCurves(): this;
    get SweepLengths(): number[];
    get SweepLength(): number;
    private _SweepEndDists;
    get SweepEndDists(): number[];
    _CacheFuzzXFactory: FuzzyFactory;
    _Cache_X_PosDirMap: Map<number, [Vector3, Vector3]>;
    _CornerFuzzFactory: FuzzyFactory;
    _CornerSet: Set<number>;
    /** 临时板 计算平板的CSG */
    _csgBoard: Board;
    /** 切割的位置 */
    private _splitXList;
    get CSGBoard(): Board;
    get SplitXList(): number[];
    /** 解析切割的位置 */
    private ParseSplitXlist;
    /** 解析临时板 */
    private ParseCSGBoard;
    /** 生成圆弧板的Geometry */
    BuildMeshEdgeGeom(csg?: Geom3): [BufferGeometry, BufferGeometry];
    /** 生成大孔面 */
    BuildBigHoleFace(): BufferGeometry;
    private ParseCorner;
    ParseAllX_Map(xs: number[]): void;
    ParseAllX_Map_BigHole(xs: number[]): [FuzzyFactory, Map<number, [Vector3, Vector3]>];
    PosMap2ArcPos(p: Vector3, cacheFuzzXFactory?: FuzzyFactory, cache_X_PosDirMap?: Map<number, [Vector3, Vector3]>): void;
    /**
     * 将圆弧板上的点转换为轮廓上的点
     * @param pt 圆弧板上的点
     * @param OCS 圆弧板OCS
     * @returns 板轮廓上的点
     */
    ArcPos2ConPos(pt: Vector3, ocs: Matrix4): Vector3;
}
//# sourceMappingURL=ArcBoardBuild.d.ts.map