import { BufferGeometry, Geometry, Matrix3, Matrix4, Mesh, Object3D, Vector3 } from "three";
import { Line2 } from 'three/examples/jsm/lines/Line2';
import { ObjectSnapMode } from "../../Editor/ObjectSnapMode";
import { Box3Ext } from "../../Geometry/Box";
import { RenderType } from "../../GraphicsSystem/RenderType";
import { CADFiler } from "../CADFiler";
import { Circle } from "../Entity/Circle";
import { DragPointType } from "../Entity/DragPointType";
import { ExtrudeContourCurve, ExtrudeSolid } from "../Entity/Extrude";
import { Polyline } from "../Entity/Polyline";
import { Shape } from "../Shape";
import { OBB } from './../../Geometry/OBB/obb';
import { Hole } from "./Hole";
export declare class ExtrudeHole extends Hole {
    private _DisplayAccuracy;
    private _contourCurve;
    private _EdgeGeometry;
    protected _knifeRadius: number;
    private _GoodsId;
    private _GoodsSn;
    isHole: boolean;
    isThrough: boolean;
    get KnifeRadius(): number;
    set KnifeRadius(v: number);
    get GoodsId(): string;
    set GoodsId(value: string);
    get GoodsSn(): string;
    set GoodsSn(value: string);
    Explode(): (Circle | Polyline)[];
    get ContourCurve(): ExtrudeContourCurve;
    set ContourCurve(curve: ExtrudeContourCurve);
    CheckContourCurve(): void;
    Erase(isErase?: boolean): void;
    protected ApplyScaleMatrix(m: Matrix4): this;
    GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
    get DisplayAccuracy(): number;
    set DisplayAccuracy(v: number);
    get Shape(): Shape;
    get BoundingBoxInOCS(): Box3Ext;
    get BoundingBox(): Box3Ext;
    get EdgeGeometry(): BufferGeometry;
    private _MeshGeometry;
    get MeshGeometry(): BufferGeometry | Geometry;
    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;
    GetPrintObject3D(): (Line2 | Mesh<BufferGeometry | Geometry, import("three").ShaderMaterial>)[];
    InitDrawObject(renderType?: RenderType): Object3D;
    UpdateDrawObject(renderType: RenderType, obj: Object3D): Object3D;
    UpdateDrawObjectMaterial(renderType: RenderType, obj: Object3D): void;
    ClearDraw(): this;
    get OBB(): OBB;
    ReadFile(file: CADFiler): void;
    WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=ExtrudeHole.d.ts.map