import { Box3, Object3D } from "three";
import { IInfo, IModel } from "@inweb/viewer-core";
/**
 * Basic model implementation.
 */
export interface IModelImpl extends IModel {
    scene: Object3D;
    getUnits(): string;
    getUnitScale(): number;
    getUnitString(): string;
    getPrecision(): number;
    getInfo(): IInfo;
    getExtents(target: Box3): Box3;
    getObjects(): Object3D[];
    getVisibleObjects(): Object3D[];
    getObjectsByHandles(handles: string | string[]): Object3D[];
    getHandlesByObjects(objects: Object3D | Object3D[]): string[];
    hideObjects(objects: Object3D | Object3D[]): this;
    hideAllObjects(): this;
    isolateObjects(objects: Object3D | Object3D[]): this;
    showObjects(objects: Object3D | Object3D[]): this;
    showAllObjects(): this;
    highlightObjects(objects: Object3D | Object3D[]): this;
    unhighlightObjects(objects: Object3D | Object3D[]): this;
    explode(scale: number, coeff?: number): this;
}
