import type { Camera, WebGLRenderer } from "three"; import { Scene } from "three"; import type { UILayer } from "../../layers/UILayer/UILayer"; import { UIColor } from "../../miscellaneous/color/UIColor"; import type { UIColorConfig } from "../../miscellaneous/color/UIColor.Internal"; import { UIElement } from "../UIElement/UIElement"; import type { UISceneOptions } from "./UIScene.Internal"; import { UISceneUpdateMode } from "./UIScene.Internal"; /** Renders Three.js scene to texture */ export declare class UIScene extends UIElement { private readonly colorInternal; private readonly clearColorInternal; private readonly renderTarget; private sceneInternal; private cameraInternal; private updateModeInternal; private resolutionFactorInternal; private evenFrame; private updateRequired; private resolutionFactorDirty; private propertyDirty; /** * Creates a new UIScene instance. * * @param layer - Layer containing this element * @param options - Configuration options * @throws If resolutionFactor outside range 0.1 to 2.0 */ constructor(layer: UILayer, options?: Partial); /** Camera used for rendering */ get camera(): Camera; /** Background color for render target */ get clearColor(): UIColor; /** Multiplicative tint. Alpha channel controls opacity. */ get color(): UIColor; /** Render target resolution multiplier. Range 0.1 to 2.0. */ get resolutionFactor(): number; /** Three.js scene to render */ get scene(): Scene; /** Controls when scene re-renders */ get updateMode(): UISceneUpdateMode; /** Camera used for rendering */ set camera(value: Camera); /** Background color for render target */ set clearColor(value: UIColorConfig); /** Multiplicative tint. Alpha channel controls opacity. */ set color(value: UIColorConfig); /** Render target resolution multiplier. Range 0.1 to 2.0. */ set resolutionFactor(value: number); /** Three.js scene to render */ set scene(value: Scene); /** Controls when scene re-renders */ set updateMode(value: UISceneUpdateMode); /** Removes element and frees resources */ destroy(): void; /** Triggers re-render on next frame. Useful in MANUAL mode. */ requestUpdate(): void; protected onWillRender(renderer: WebGLRenderer, deltaTime: number): void; }