import { Destroyable, Event, Listener } from "xbsj-xe2/dist-node/xe2-base-utils"; import { SceneObject } from "../SceneObjects"; import { PickingListening } from "./PickingListening"; export declare class SceneObjectsManager extends Destroyable { private _sceneObjects; get sceneObjects(): Set; private _sceneObjectsToChange; get sceneObjectsToChange(): Listener<[toDels: SceneObject[], toAdds: SceneObject[]]>; private _sceneObjectDevTagsChanged; get sceneObjectDevTagsChanged(): Listener<[sceneObject: SceneObject, devTags: string[] | undefined, oldDevTags: string[] | undefined]>; private _pickingListening; get sceneObjectsPicking(): PickingListening; get sceneObjectPickedEvent(): Event<[sceneObjectPickedInfo: import("../SceneObjects").SceneObjectPickedInfo]>; constructor(); addSceneObject(sceneObject: SceneObject): boolean; deleteSceneObject(sceneObject: SceneObject): boolean; /** * 监听场景对象的属性,属性变化时就会触发 * @param propName 属性名称 * @param callback 属性变化以后需要做什么样的操作 * @param filter 用来过滤需要监听的场景对象 * @returns */ listenProp(propName: string, callback: (sceneObject: SceneObject, prop: T) => void, filter?: (sceneObject: SceneObject) => boolean): () => undefined; }