import { CBARObject } from "./CBARObject"; import * as THREE from "three"; import { CBAREvent, CBARHighlightState, CBARToolMode } from "../CBARTypes"; import { RenderOptions } from "./CBARScene"; export interface CBARObject3DProperties { name?: string; visible?: boolean; scale?: number[]; rotation?: number[]; position?: number[]; } export interface CBARHighlightStateData { active: boolean; event?: CBAREvent; } export declare abstract class CBARObject3D extends CBARObject { name: string; visible: boolean; rootObject(): CBARObject3D; data(): any; private readonly _states; get selected(): boolean; set selected(value: boolean); setState(key: CBARHighlightState, active: boolean, event?: CBAREvent): void; getState(key: CBARHighlightState): CBARHighlightStateData; isActive(state: CBARHighlightState): boolean; load(basePath: string | undefined, json: CBARObject3DProperties): Promise; protected updateObjectPosition(): void; needsUpdate(): void; protected willAddToScene(): void; sceneLoaded(): void; toolModeChanged(mode: CBARToolMode): void; private _object; get renderObject(): THREE.Object3D; protected setRenderObject(obj: THREE.Object3D): void; get receivesEvents(): boolean; existsAtPoint(coords: THREE.Vector2): boolean; handleEvent(event: CBAREvent): void; addToScene(): void; removeFromScene(): void; render(options: RenderOptions): void; }