import type { FerrsignView1 } from "ferrsign"; import type { Camera, Vector2, WebGLRenderer } from "three"; import { Ray, Vector3 } from "three"; import type { UIResizePolicy } from "../../miscellaneous/resize-policy/UIResizePolicy"; import { UILayer } from "../UILayer/UILayer"; import type { UIFullscreenLayerInputEventData, UIFullscreenLayerOptions } from "./UIFullscreenLayer.Internal"; /** Layer that automatically handles browser window resizing and input events */ export declare class UIFullscreenLayer extends UILayer { private resizePolicyInternal; private resizePolicyDirty; private readonly signalPointerPressedInternal; private readonly signalPointerMovedInternal; private readonly signalPointerReleasedInternal; constructor(options?: Partial); /** Current resize policy */ get resizePolicy(): UIResizePolicy; /** Signal fired when pointer is pressed */ get signalPointerPressed(): FerrsignView1; /** Signal fired when pointer is moved */ get signalPointerMoved(): FerrsignView1; /** Signal fired when pointer is released */ get signalPointerReleased(): FerrsignView1; /** Updates resize policy */ set resizePolicy(value: UIResizePolicy); /** Removes event listeners and frees resources */ destroy(): void; /** * Renders layer and all visible elements * @param renderer Three.js WebGL renderer * @param deltaTime Time since last frame in seconds */ render(renderer: WebGLRenderer, deltaTime: number): void; /** * Projects 3D world position to 2D layer coordinates * @param position World position * @param camera Three.js camera * @param result Reusable vector instance * @returns Layer coordinates */ projectWorldPosition(position: Vector3, camera: Camera, result?: Vector3): Vector3; /** * Projects 2D layer coordinates to 3D world position * @param position Layer coordinates * @param camera Three.js camera * @param z Depth coordinate * @param result Reusable vector instance * @returns World position */ projectLayerPosition(position: Vector2, camera: Camera, z?: number, result?: Vector3): Vector3; /** * Builds ray from layer position through camera * @param position Layer coordinates * @param camera Three.js camera * @param result Reusable ray instance * @returns Ray from near to far plane */ buildRay(position: Vector2, camera: Camera, result?: Ray): Ray; private readonly onResize; private readonly onPointerDown; private readonly onPointerMove; private readonly onPointerUp; private handleWindowInput; }