import { Box3, BufferGeometry, Geometry, Matrix3, 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 { Line } from "../../../Entity/Line";
import { RoomWallBase } from "./RoomWallBase";
export declare class RoomWallLine extends RoomWallBase {
    private _StartPoint;
    private _EndPoint;
    constructor(_StartPoint?: Vector3, _EndPoint?: Vector3, _Thickness?: number, _Height?: number);
    private _LeftCurveSign;
    private _RightCurveSign;
    private _LidCurveSign;
    UpdateOCSToMinBox(): void;
    get StartPoint(): Vector3;
    get EndPoint(): Vector3;
    set StartPoint(p: Vector3);
    set EndPoint(p: Vector3);
    Reverse(): this;
    get CenterAxisCurve(): Line;
    get BoundingBox(): Box3;
    get BoundingBoxInOCS(): Box3Ext;
    GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform: Matrix3): Vector3[];
    GetGripPoints(): Vector3[];
    MoveGripPoints(indexs: number[], vec: Vector3): void;
    GetStretchPoints(): Vector3[];
    MoveStretchPoints(indexList: number[], vec: Vector3): void;
    UpdateDrawGeometry(): void;
    private _EdgeGeometry;
    get EdgeGeometry(): BufferGeometry;
    private _MeshGeometry;
    get MeshGeometry(): Geometry;
    GetPrintObject3D(): (Line2 | Mesh<Geometry, import("three").ShaderMaterial>)[];
    InitDrawObject(renderType?: RenderType): Object3D;
    /**
     * 重载:更新绘制的实体
     * @param {RenderType} renderType
     * @param {Object3D} obj
     */
    UpdateDrawObject(renderType: RenderType, obj: Object3D): void;
    UpdateDrawObjectMaterial(renderType: RenderType, obj: Object3D): void;
    ClearDraw(): this;
    protected _ReadFile(file: CADFiler): void;
    WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=RoomWallLine.d.ts.map