import { BufferGeometry, Geometry, Matrix3, Matrix4, Object3D, Vector3 } from "three";
import { ObjectSnapMode } from "../../Editor/ObjectSnapMode";
import { Box3Ext } from "../../Geometry/Box";
import { RenderType } from "../../GraphicsSystem/RenderType";
import { CADFiler } from "../CADFiler";
import { DragPointType } from "../Entity/DragPointType";
import { ExtureContourCurve, ExtrudeSolid } from "../Entity/Extrude";
import { Shape } from "../Shape";
import { Hole } from "./Hole";
import { OBB } from './../../Geometry/OBB/obb';
export declare class ExtrudeHole extends Hole {
    private _contourCurve;
    private _EdgeGeometry;
    protected _knifeRadius: number;
    isHole: boolean;
    get KnifeRadius(): number;
    set KnifeRadius(v: number);
    Explode(): ExtureContourCurve[];
    get ContourCurve(): ExtureContourCurve;
    set ContourCurve(curve: ExtureContourCurve);
    CheckContourCurve(): void;
    protected ApplyScaleMatrix(m: Matrix4): this;
    GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
    get Shape(): Shape;
    get BoundingBoxInOCS(): Box3Ext;
    get BoundingBox(): import("three").Box3;
    private get EdgeGeometry();
    private _MeshGeometry;
    get MeshGeometry(): Geometry | BufferGeometry;
    private GeneralMeshGeometry;
    GetGripOrStretchPoints(dragType: DragPointType): Vector3[];
    private GetStrectchPointCountList;
    MoveGripOrStretchPoints(indexList: number[], vec: Vector3, dragType: DragPointType): void;
    IsStretchHeight(indexs: number[]): boolean;
    MoveGripOrStretchPointsOnly(indexList: Array<number>, vec: Vector3, dragType: DragPointType): void;
    GetGripPoints(): Array<Vector3>;
    GetStretchPoints(): Vector3[];
    MoveGripPoints(indexList: number[], vec: Vector3): void;
    MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
    Convert2ExtrudeSolid(): ExtrudeSolid;
    InitDrawObject(renderType?: RenderType): Object3D;
    UpdateDrawObject(renderType: RenderType, obj: Object3D): Object3D;
    UpdateDrawObjectMaterial(renderType: RenderType, obj: Object3D): void;
    get OBB(): OBB;
    ReadFile(file: CADFiler): void;
    WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=ExtrudeHole.d.ts.map