import { Geometry, Matrix3, Object3D, Vector3 } from "three";
import { ObjectSnapMode } from "../../../../../Editor/ObjectSnapMode";
import { Box3Ext } from "../../../../../Geometry/Box";
import { RenderType } from "../../../../../GraphicsSystem/RenderType";
import { CADFiler } from "../../../../CADFiler";
import { CADObject } from "../../../../CADObject";
import { Curve } from "../../../../Entity/Curve";
import { Polyline } from "../../../../Entity/Polyline";
import { RoomWallBase } from "../RoomWallBase";
import { RoomHoleBase } from "./RoomHoleBase";
/**
 * 折线洞 例如 转角窗 或者U型窗
 */
export declare class RoomHolePolyline extends RoomHoleBase {
    private _Points;
    private _FakerWalls;
    set FakerWalls(_FakerWalls: RoomWallBase[]);
    get FakerWalls(): RoomWallBase[];
    constructor();
    get BoundingBoxInOCS(): Box3Ext;
    get Points(): Vector3[];
    set Points(pts: Vector3[]);
    GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
    GetGripPoints(): Vector3[];
    MoveGripPoints(ids: number[], vec: Vector3): void;
    GetStretchPoints(): Array<Vector3>;
    MoveStretchPoints(ids: Array<number>, vec: Vector3): void;
    UpdatePoints(): void;
    LidCurves: Curve[];
    Regions: Polyline[];
    UpdateDrawGeometry(): void;
    private _EdgeGeometry;
    get EdgeGeometry(): Geometry;
    private _MeshGeometry;
    get MeshGeometry(): Geometry;
    InitDrawObject(renderType?: RenderType): Object3D;
    /**
     * 重载:更新绘制的实体
     * @param {RenderType} renderType
     * @param {Object3D} obj
     */
    UpdateDrawObject(renderType: RenderType, obj: Object3D): void;
    UpdateDrawObjectMaterial(renderType: RenderType, obj: Object3D): void;
    protected _ReadFile(file: CADFiler): void;
    WriteFile(file: CADFiler): void;
    ApplyPartialUndo(undoData: CADObject): void;
}
//# sourceMappingURL=RoomHolePolyline.d.ts.map