/// import * as THREE from 'three'; import { SharedCanvasContext, RenderCallback, Camera } from './canvas'; export declare function useFrame(callback: RenderCallback, renderPriority?: number): null; export declare function useThree(): SharedCanvasContext; export declare function useUpdate(callback: (props: T) => void, dependents: any[], optionalRef?: React.MutableRefObject): React.MutableRefObject; export declare function useResource(optionalRef?: React.MutableRefObject): [React.MutableRefObject, T]; declare type Extensions = (loader: THREE.Loader) => void; export interface Loader extends THREE.Loader { load(url: string, onLoad?: (result: T) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void): unknown; } declare type LoaderResult = T extends any[] ? Loader : Loader; export declare function useLoader(Proto: new () => LoaderResult, url: T extends any[] ? string[] : string, extensions?: Extensions): T; export declare function useCamera(camera: Camera, props?: Partial): (_: THREE.Raycaster, intersects: THREE.Intersection[]) => void; export {};