///
import { RefObject } from "react";
import { Mesh, Texture, Vector3, WebGLRenderTarget, WebGLRenderer } from "three";
export declare function writeContentToLayer(renderer: WebGLRenderer, layer: XRCompositionLayer, frame: XRFrame, content: TexImageSource): void;
/**
* hook to create and manage layers
* @param createLayer the function to create the layer via WebXR
* @param transparent wether the layer should be transparent
* @param index the order of the layer in regards to all other layers
* @returns the created layer
*/
export declare function useLayer(createLayer: (binding: XRWebGLBinding, space: XRSpace) => T, transparent: boolean, index: number): T | undefined;
/**
* function to update the contents and transformation of a layer
* @param ref the object that is bound to the layer
* @param layer the layer to update
* @param texture the texture to update the layer with (optional)
* @param transparent
* @param width
* @param height
* @param updateLayerSize function to update the webxr layer based on a scale
* @param updateTarget function to update the layer content for dynamic content (optional)
* @returns either the passed texture or a texture form the render target for dynamic content
*/
export declare function useLayerUpdate(ref: RefObject, layer: T | undefined, texture: Texture | undefined, transparent: boolean, width: number, height: number, updateLayerSize: (layer: T, scale: Vector3) => void, updateTarget?: (renderer: WebGLRenderer, target: WebGLRenderTarget) => void): Texture | undefined;
export * from "./quad-layer.js";
export * from "./cylinder-layer.js";