import type { CameraControlsRef } from '@threlte/extras';
import type { Vector3Tuple } from 'three';
import type { TrackballControls } from 'three/examples/jsm/Addons.js';
export interface CameraPose {
    position: Vector3Tuple;
    lookAt: Vector3Tuple;
}
interface CameraControlsContext {
    current: CameraControlsRef | TrackballControls | undefined;
    set(current: CameraControlsRef | TrackballControls): void;
    setPose(pose: CameraPose, animate?: boolean): void;
    setInitialPose(): void;
    setZoom(zoom: number): void;
}
export declare const provideCameraControls: (initialCameraPose: () => CameraPose | undefined) => void;
export declare const useCameraControls: () => CameraControlsContext;
interface TransformControlsContext {
    active: boolean;
    setActive: (value: boolean) => void;
}
export declare const provideTransformControls: () => void;
export declare const useTransformControls: () => TransformControlsContext;
export {};
