/**
 * Camera3D
 *
 * Three.js camera component with orbit controls.
 * Supports isometric, perspective, and top-down camera modes.
 *
 * @packageDocumentation
 */
import React from 'react';
import * as THREE from 'three';
export type CameraMode = 'isometric' | 'perspective' | 'top-down';
export interface Camera3DProps {
    /** Camera mode */
    mode?: CameraMode;
    /** Initial camera position */
    position?: [number, number, number];
    /** Target to look at */
    target?: [number, number, number];
    /** Zoom level */
    zoom?: number;
    /** Field of view (perspective mode only) */
    fov?: number;
    /** Enable orbit controls */
    enableOrbit?: boolean;
    /** Minimum zoom distance */
    minDistance?: number;
    /** Maximum zoom distance */
    maxDistance?: number;
    /** Called when camera changes */
    onChange?: (camera: THREE.Camera) => void;
}
export interface Camera3DHandle {
    /** Get current camera */
    getCamera: () => THREE.Camera;
    /** Set camera position */
    setPosition: (x: number, y: number, z: number) => void;
    /** Look at target */
    lookAt: (x: number, y: number, z: number) => void;
    /** Reset to initial position */
    reset: () => void;
    /** Get current view bounds */
    getViewBounds: () => {
        min: THREE.Vector3;
        max: THREE.Vector3;
    };
}
/**
 * Camera3D Component
 *
 * Configurable camera with orbit controls and multiple modes.
 *
 * @example
 * ```tsx
 * <Canvas>
 *     <Camera3D mode="isometric" position={[10, 10, 10]} target={[0, 0, 0]} />
 * </Canvas>
 * ```
 */
export declare const Camera3D: React.ForwardRefExoticComponent<Camera3DProps & React.RefAttributes<Camera3DHandle>>;
export default Camera3D;
