import { Matrix3, Matrix4, Vector3 } from "three";
import { ObjectSnapMode } from "../../Editor/ObjectSnapMode";
import { Box3Ext } from "../../Geometry/Box";
import { CADFiler } from "../CADFiler";
import { ObjectId } from "../ObjectId";
import { PhysicalMaterialRecord } from "../PhysicalMaterialRecord";
import { Entity } from "./Entity";
/**
 * 外部引用的实体,比如glTF
 */
export declare class EntityRef extends Entity {
    protected _url?: string;
    OnlyRenderType: boolean;
    protected _Size: Vector3;
    protected _ScaleSize: Vector3;
    protected _Center: Vector3;
    protected _OverWriteMaterial: Map<number, ObjectId<PhysicalMaterialRecord>>;
    constructor(_url?: string);
    get IsVisible(): boolean;
    get Url(): string;
    set Url(url: string);
    get CurSize(): Vector3;
    get ScaleSize(): Vector3;
    set ScaleSize(size: Vector3);
    get Scale(): Vector3;
    get BoundingBox(): Box3Ext;
    get BoundingBoxInOCS(): Box3Ext;
    CloneDrawObject(from: this): void;
    ApplyScaleMatrix(m: Matrix4): this;
    get OverWriteMaterial(): Map<number, ObjectId<PhysicalMaterialRecord>>;
    IsMtlLockAtSlot(slotIndex: number): boolean;
    SetMaterialAtSlot(mtl: ObjectId<PhysicalMaterialRecord>, slotIndex: number): void;
    SetAllMaterialAtSlot(mtl: ObjectId<PhysicalMaterialRecord>): void;
    GetMtlLockedStatus(): {
        partMtlLocked: boolean;
        allMtlLocked: boolean;
    };
    private _GetValidOWMtlRecord;
    GetPhyMtlRecords(containErased?: boolean): PhysicalMaterialRecord[];
    GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform: Matrix3): Vector3[];
    GetGripPoints(): Array<Vector3>;
    MoveGripPoints(indexList: Array<number>, vec: Vector3): void;
    protected _ReadFile(file: CADFiler): void;
    WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=EntityRef.d.ts.map