import { Scene } from "@babylonjs/core/scene"; import { Observer } from "@babylonjs/core/Misc/observable"; import { PointerInfo } from "@babylonjs/core/Events/pointerEvents"; import { KeyboardInfo } from "@babylonjs/core/Events/keyboardEvents"; import { AdvancedDynamicTexture } from "@babylonjs/gui/2D/advancedDynamicTexture"; import { IPointerEventDecoratorOptions } from "./events"; import { VisibleInInspectorDecoratorConfiguration } from "./inspector"; export interface ISceneDecoratorData { _NodesFromScene?: { nodeName: string; propertyKey: string | Symbol; }[]; _ComponentsFromScene?: { componentConstructor: new (...args: any) => any; propertyKey: string | Symbol; }[]; _NodesFromDescendants?: { nodeName: string; propertyKey: string | Symbol; directDescendantsOnly: boolean; }[]; _AnimationGroups?: { animationGroupName: string; propertyKey: string | Symbol; }[]; _SoundsFromScene?: { soundName: string; propertyKey: string | Symbol; }[]; _GuiFromAsset?: { pathInAssets: string; onGuiCreated?: (instance: unknown, gui: AdvancedDynamicTexture) => unknown; propertyKey: string | Symbol; }[]; _ParticleSystemsFromScene?: { particleSystemName: string; directDescendantsOnly: boolean; propertyKey: string | Symbol; }[]; _VisibleInInspector?: { label?: string; propertyKey: string | Symbol; configuration: VisibleInInspectorDecoratorConfiguration; }[]; _SceneAssets?: { sceneName: string; propertyKey: string | Symbol; }[]; _PointerEvents?: { eventTypes: number[]; options: IPointerEventDecoratorOptions; propertyKey: string | Symbol; }[]; _KeyboardEvents?: { eventTypes: number[]; propertyKey: string | Symbol; }[]; _SpritesFromSpriteManager?: { spriteName: string; propertyKey: string | Symbol; }[]; _AnimationsFromSprite?: { animationName: string; propertyKey: string | Symbol; }[]; } export declare function applyDecorators(scene: Scene, object: any, script: any, instance: any, rootUrl: string): void | { observers: { pointerObserver: Observer | null; keyboardObserver: Observer | null; }; };