import { 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 "./DragPointType";
import { Entity } from "./Entity";
export declare class CompositeEntity extends Entity {
    constructor();
    Entitys: Entity[];
    /**
    * 初始化绘制的threejs实体,子类型重载该函数初始化绘制实体.
    */
    Explode(): Entity[];
    Traverse(callback: (arg0: Entity) => void): void;
    get BoundingBox(): Box3Ext;
    protected InitDrawObject(renderType?: RenderType): Object3D;
    UpdateDrawObject(renderType: RenderType, obj: Object3D): void;
    get ColorIndex(): number;
    set ColorIndex(color: number);
    get Material(): import("../ObjectId").ObjectId;
    set Material(id: import("../ObjectId").ObjectId);
    UpdateDrawObjectMaterial(renderType: RenderType, obj: Object3D): void;
    RestoreJigMaterial(): void;
    /**
    *
    * @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[];
    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;
    private GetGripOrStretchPoints;
    private GetStrectchPointCountList;
    MoveGripOrStretchPoints(indexList: number[], vec: Vector3, dragType: DragPointType): void;
    CloneDrawObject(from: this): void;
    ApplyMirrorMatrix(m: Matrix4): this;
    protected _ReadFile(file: CADFiler): void;
    WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=CompositeEntity.d.ts.map