import { Matrix4, MeshPhongMaterial, MeshPhysicalMaterial, Object3D, Vector3 } from "three";
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 EntityRefModel extends Entity {
    private _url?;
    urlStr: 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;
    get OverWriteMaterial(): Map<number, ObjectId<PhysicalMaterialRecord>>;
    IsMtlLockAtSlot(slotIndex: number): boolean;
    SetMaterialAtSlot(mtl: ObjectId<PhysicalMaterialRecord>, slotIndex: number): void;
    SetAllMaterialAtSlot(mtl: ObjectId<PhysicalMaterialRecord>): void;
    GetMtlLockedStatus(): {
        allMtlLocked: boolean;
        partMtlLocked: boolean;
    };
    private _GetValidOWMtlRecord;
    GetPhyMtlRecords(containErased?: boolean): PhysicalMaterialRecord[];
    newObject: Object3D;
    LoadModelFromArrayBuffer(data: ArrayBuffer | string): string | undefined;
    CloneDrawObject(from: this): void;
    ApplyScaleMatrix(m: Matrix4): this;
    private _GetValidOWMtl;
    protected GetMaterial: (m: MeshPhongMaterial, index?: number) => MeshPhysicalMaterial;
    LoadObject(dObj: Object3D): void;
    MoveGripPoints(indexList: Array<number>, vec: Vector3): void;
    protected _ReadFile(file: CADFiler): void;
    WriteFile(file: CADFiler): void;
}
//# sourceMappingURL=EntityRefModel.d.ts.map