/**
 * @module viw-webgl-react
 */
import { THREE } from '../../index';
import { ActionRef, AsyncFuncRef, StateRef } from '../helpers/reactUtils';
import { ISignal } from 'ste-signals';
export interface CameraRef {
    autoCamera: StateRef<boolean>;
    reset: ActionRef;
    frameSelection: AsyncFuncRef<void>;
    frameScene: AsyncFuncRef<void>;
}
interface ICameraAdapter {
    onSelectionChanged: ISignal;
    frameCamera: (box: THREE.Box3, duration: number) => void;
    resetCamera: (duration: number) => void;
    frameAll: (duration: number) => void;
    hasSelection: () => boolean;
    getSelectionBox: () => Promise<THREE.Box3>;
}
export declare function useCamera(adapter: ICameraAdapter): CameraRef;
export {};
