import { Object3D } from "three"; import ThreeMeshUI from "three-mesh-ui"; import { FrameEvent } from "../../engine/engine_setup.js"; import { Behaviour } from "../Component.js"; import { BaseUIComponent } from "./BaseUIComponent.js"; export declare function tryGetUIComponent(obj: Object3D): BaseUIComponent | null; export declare function isUIObject(obj: Object3D): boolean; export type RenderSettings = { renderOnTop?: boolean; doubleSided?: boolean; depthWrite?: boolean; castShadows?: boolean; receiveShadows?: boolean; }; export declare function updateRenderSettings(shadowComponent: Object3D | ThreeMeshUI.MeshUIBaseElement, settings: RenderSettings): void; export declare type RevocableProxy = { proxy: any; revoke: () => void; }; /** internal method to proxy a field to detect changes */ /**@deprecated use watcher instead */ export declare function onChange(caller: T, field: string, callback: (newValue: any, oldValue: any) => void): RevocableProxy; /** internal method to schedule a function at a specific moment in the update loop */ export declare function scheduleAction(caller: Behaviour, action: Function, timing?: FrameEvent): void;