import { Material, Matrix3, Object3D, Vector3 } from "three";
import { CADFiler } from "../DatabaseServices/CADFiler";
import { Entity } from "../DatabaseServices/Entity/Entity";
import { Box3Ext } from "../Geometry/Box";
import { RenderType } from "../GraphicsSystem/RenderType";
import { ObjectSnapMode } from "./ObjectSnapMode";
export declare class VisualSpaceBox extends Entity {
    protected _Length: number;
    protected _Width: number;
    protected _Height: number;
    OnlyRenderType: boolean;
    private _LText;
    private _WText;
    private _HText;
    private _NameText;
    private _NameTextMtxLock;
    private _ShowNameText;
    private _IsRoot;
    private _DisplayLength;
    private _DisplayWidth;
    private _DisplayHeight;
    constructor(_Length?: number, _Width?: number, _Height?: number);
    get Length(): number;
    get Width(): number;
    get Height(): number;
    set ShowNameText(b: boolean);
    set IsRoot(b: boolean);
    set DisplayWidth(b: boolean);
    set DisplayLength(b: boolean);
    set DisplayHeight(b: boolean);
    SetSize(l: number, w: number, h: number): void;
    get BoundingBoxInOCS(): Box3Ext;
    get BoundingBox(): Box3Ext;
    /**
       *
       * @param snapMode 捕捉模式(单一)
       * @param pickPoint const
       * @param lastPoint const
       * @param viewXform const 最近点捕捉需要这个变量
       * @returns object snap points
       */
    GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
    InitDrawObject(renderType?: RenderType): Object3D;
    UpdateDrawObject(type: RenderType, obj: Object3D): void;
    UpdateDrawObjectMaterial(type: RenderType, obj: Object3D, material?: Material): void;
    UpdateNameText(): void;
    UpdateLengthText(): void;
    UpdateWidthText(): void;
    UpdateHeightText(): void;
    protected _ReadFile(file: CADFiler): void;
    WriteFile(file: CADFiler): void;
    GetGripPoints(): Array<Vector3>;
    MoveGripPoints(indexList: number[], vec: Vector3): void;
    GetStretchPoints(): Array<Vector3>;
    /**
     * 拉伸夹点,用于Stretch命令
     *
     * @param {Array<number>} indexList 拉伸点索引列表.
     * @param {Vector3} vec 移动向量
     * @memberof Entity
     */
    MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
}
//# sourceMappingURL=VisualSpaceBox.d.ts.map