import { BufferGeometry, CylinderBufferGeometry, LineSegments, Matrix3, Mesh, Object3D, Vector3 } from "three";
import { ObjectSnapMode } from "../../Editor/ObjectSnapMode";
import { Box3Ext } from "../../Geometry/Box";
import { RenderType } from "../../GraphicsSystem/RenderType";
import { CADFiler } from '../CADFiler';
import { Hole } from "./Hole";
export declare enum GangDrillType {
    /**偏心轮 */
    Pxl = 0,
    /**连接杆 */
    Ljg = 1,
    /**预埋件 */
    Ymj = 2,
    /**层板钉 */
    Nail = 3,
    /** 木销 */
    Wood = 4,
    /** 通孔 */
    TK = 5,
    WoodPXL = 6
}
export declare class CylinderHole extends Hole {
    private _Radius;
    private type;
    constructor();
    static CreateCylHole(radius: number, height: number, type: GangDrillType): CylinderHole;
    get Type(): GangDrillType;
    set Type(t: GangDrillType);
    set Radius(r: number);
    get Height(): number;
    set Height(v: number);
    get Radius(): number;
    get BoundingBox(): Box3Ext;
    /**
    * 返回对象在自身坐标系下的Box
    */
    get BoundingBoxInOCS(): Box3Ext;
    private _MeshGeometry;
    get MeshGeometry(): CylinderBufferGeometry;
    private _EdgeGeometry;
    private get EdgeGeometry();
    GetGripPoints(): Vector3[];
    GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
    Erase(isErase?: boolean): void;
    InitDrawObject(renderType: RenderType): LineSegments<BufferGeometry, import("three").LineBasicMaterial> | Mesh<CylinderBufferGeometry, import("three").ShaderMaterial>;
    private GetObject3DByRenderType;
    UpdateDrawObject(type: RenderType, obj: Object3D): void;
    UpdateDrawObjectMaterial(type: RenderType, obj: Object3D): void;
    protected _ReadFile(file: CADFiler): void;
    WriteFile(file: CADFiler): void;
}
export declare function FastDrillingMeshGeometry(radius: number, height: number): CylinderBufferGeometry;
export declare function FastDrillingEdgeGeometry(radius: number, height: number): BufferGeometry;
//# sourceMappingURL=CylinderHole.d.ts.map