import { Matrix4 } from "three";
import { AlignedDimension } from "../../DatabaseServices/Dimension/AlignedDimension";
import { Board } from "../../DatabaseServices/Entity/Board";
import { Curve } from "../../DatabaseServices/Entity/Curve";
import { Polyline } from "../../DatabaseServices/Entity/Polyline";
import { CoordinateSystem } from "../../Geometry/CoordinateSystem";
export declare enum EDimType {
    Total = 1,
    Out = 2,
    InW = 4,
    InH = 8,
    NoRepeat = 16,
    NoSmSize = 32,
    All = 127
}
interface DirPls {
    left: Curve[];
    right: Curve[];
    top: Curve[];
    bottom: Curve[];
}
export declare class AutoDimBoardsTool {
    private qsMtx;
    private min;
    private maxThickness;
    private type;
    private repeatDim;
    Do(boardList: Board[], type: EDimType): void;
    private TotalDim;
    DimOut(brs: Board[]): void;
    private DimIn;
    private RayPoint;
    private DimInBy;
    DrawFrontDim(brs: Board[], textRo: number): Promise<AlignedDimension[]>;
    /**
     * 绘制标注
     * @param brs
     * @param drawCS 绘制标注的坐标系
     */
    DrawDim(brs: Board[], drawCS: Matrix4, textRotation?: number, useMaxZ?: boolean, isLeadOutFlipped?: boolean): AlignedDimension[];
    /**
     * 判断轮廓的上下左右
     * @param pl 轮廓（多段线）
     * @param cs 参照坐标系
     * @memberof Command_AutoDimBrs
     */
    JudgeOutlineDirection(pls: Polyline[], cs: CoordinateSystem): DirPls;
    /**
     * 通过轮廓并集得到最大外轮廓
     * @memberof Command_AutoDimBrs
     */
    private GetOutLineByBoolUnion;
    private handleRepeat;
}
export declare const autoDimBoardTool: AutoDimBoardsTool;
export {};
//# sourceMappingURL=AutoDimBrsTool.d.ts.map