///
import { RootState } from "@react-three/fiber";
import React, { ReactNode, RefObject } from "react";
import { Object3D } from "three";
/**
* hook to apply the transformation of a space onto an object
* requires matrixAutoUpdate=false on the object
* @param ref a reference to the object
* @param space
* @param onFrame callback executed every frame with the object to retrieve its worldMatrix f.e.
*/
export declare function useApplySpace(ref: RefObject | Object3D, space: XRSpace, initialPose?: XRPose, onFrame?: OnFrameCallback): void;
export declare function applySpace(state: RootState, delta: number, frame: XRFrame | undefined, object: Object3D, space: XRSpace, onFrame?: (rootState: RootState, delta: number, frame: XRFrame | undefined, object: Object3D) => void): void;
export type OnFrameCallback = (rootState: RootState, delta: number, frame: XRFrame | undefined, object: Object3D) => void;
export declare function applyPose(state: RootState, delta: number, frame: XRFrame | undefined, object: Object3D, pose: XRPose | undefined, onFrame?: OnFrameCallback): void;
/**
* component for positioning content (children) at the position of a tracked webxr space
* the onFrame property allows to retrieve the object and its current matrixWorld transformation for every frame
*/
export declare const SpaceGroup: React.ForwardRefExoticComponent<{
space: XRSpace;
initialPose?: XRPose | undefined;
children?: ReactNode;
onFrame?: OnFrameCallback | undefined;
as?: (new () => Object3D) | undefined;
} & React.RefAttributes>>;