import type { WebGLRenderer } from "three"; import type { UILayer } from "../../layers/UILayer/UILayer"; import type { UIProperty } from "../../miscellaneous/generic-plane/shared"; import { UIMicro } from "../../miscellaneous/micro/UIMicro"; import type { UIBlendMode } from "../../miscellaneous/UIBlendMode"; import type { UIMode } from "../../miscellaneous/UIMode"; import type { UITransparencyMode } from "../../miscellaneous/UITransparencyMode"; import type { UISceneWrapperView } from "../../wrappers/UISceneWrapper/UISceneWrapper.Internal"; import { UIDummy } from "../UIDummy/UIDummy"; import type { UIElementOptions } from "./UIElement.Internal"; /** Base class for renderable UI elements */ export declare abstract class UIElement extends UIDummy { /** Transforms that don't affect constraints */ readonly micro: UIMicro; protected readonly sceneWrapper: UISceneWrapperView; protected planeHandler: number; private transparencyModeInternal; private transparencyModeDirty; private blendModeInternal; private blendModeDirty; private hueInternal; private saturationInternal; private lightnessInternal; private hslDirty; private readonly hslValue; private visibilityDirty; /** * Creates a new UIElement instance. * * @param layer - Layer containing this element * @param source - GLSL shader source code * @param properties - Shader uniform properties * @param options - Configuration options */ constructor(layer: UILayer, source: string, properties: Record, options?: Partial); /** Alpha blending mode */ get transparencyMode(): UITransparencyMode; /** Color blending mode (only affects BLEND transparency) */ get blendMode(): UIBlendMode; /** Hue shift in degrees */ get hue(): number; /** Saturation multiplier (1 = unchanged, 0 = grayscale) */ get saturation(): number; /** Lightness offset (0 = unchanged) */ get lightness(): number; /** * Controls visibility and interactivity. * * Redeclared here because declaring only a setter would shadow the accessor * pair inherited from {@link UIDummy}, making reads return undefined. */ get mode(): UIMode; /** Alpha blending mode */ set transparencyMode(value: UITransparencyMode); /** Color blending mode (only affects BLEND transparency) */ set blendMode(value: UIBlendMode); /** Hue shift in degrees */ set hue(value: number); /** Saturation multiplier (1 = unchanged, 0 = grayscale) */ set saturation(value: number); /** Lightness offset (0 = unchanged) */ set lightness(value: number); /** Controls visibility and interactivity */ set mode(value: UIMode); /** Removes element and frees resources */ destroy(): void; protected setPlaneTransform(): void; protected onWillRender(renderer: WebGLRenderer, deltaTime: number): void; private readonly handleWillRender; }