import type { TSLFloatNode, TSLFunction, TSLMat4Node, TSLVec2Node, TSLVec3Node, TSLVec4Node } from '../types/tsl.cjs'; export type ScreenUVToNDCArguments = [screenPosition: TSLVec2Node]; export type NDCToScreenUVArguments = [ndc: TSLVec2Node]; export type ViewPositionFromViewDepthArguments = [ screenPosition: TSLVec2Node, viewDepth: TSLFloatNode, projectionMatrixInverse: TSLMat4Node ]; export type ReprojectViewDepthArguments = [ screenPosition: TSLVec2Node, viewDepth: TSLFloatNode, projectionMatrixInverse: TSLMat4Node, viewMatrixInverse: TSLMat4Node, previousViewProjectionMatrix: TSLMat4Node, previousViewMatrix: TSLMat4Node ]; /** * Convert top-left-origin screen UVs to projection-space NDC. WebGPU's * fragment-coordinate Y axis points down while projection-space Y points up, * so the Y component must be mirrored at this boundary. * * @tsl * @function * @param {Node} screenPosition Top-left-origin screen UV. * @returns {Node} Projection-space NDC coordinate. */ export declare const screenUVToNDC: TSLFunction; /** * Convert projection-space NDC to the active backend's screen UV convention. * * @tsl * @function * @param {Node} ndc Projection-space NDC coordinate. * @returns {Node} Top-left-origin screen UV. */ export declare const ndcToScreenUV: TSLFunction; /** * Reconstruct a view-space position from a positive linear view distance. * Unlike three's getViewPosition helper, the depth input is not clip depth. * * @tsl * @function * @param {Node} screenPosition Top-left-origin screen UV. * @param {Node} viewDepth Positive linear view distance. * @param {Node} projectionMatrixInverse Inverse camera projection. * @returns {Node} Reconstructed view-space position. */ export declare const viewPositionFromViewDepth: TSLFunction; /** * Reproject a positive linear view depth into the previous camera frame. * The result packs previous-frame screen UV in `xy`, the expected positive * previous view depth in `z`, and an in-front/in-bounds validity mask in `w`. * Consumers still compare `z` against their history depth to reject moving * surfaces and newly revealed pixels. * * @tsl * @function * @param {Node} screenPosition Current top-left-origin screen UV. * @param {Node} viewDepth Current positive linear view distance. * @param {Node} projectionMatrixInverse Current inverse projection. * @param {Node} viewMatrixInverse Current camera-to-world matrix. * @param {Node} previousViewProjectionMatrix Previous projection times view matrix. * @param {Node} previousViewMatrix Previous world-to-camera matrix. * @returns {Node} Previous UV, expected depth, and validity mask. */ export declare const reprojectViewDepth: TSLFunction;