import * as THREE from "three";
import type { SettingsTreeAction } from "@foxglove/studio";
import type { ICameraHandler } from "@foxglove/studio-base/panels/ThreeDeeRender/renderables/ICameraHandler";
import { type AnyFrameId, type Pose } from "@foxglove/studio-base/panels/ThreeDeeRender/transforms";
import type { IRenderer } from "../IRenderer";
import { SceneExtension } from "../SceneExtension";
import type { SettingsTreeEntry } from "../SettingsManager";
import { type CameraState } from "../camera";
export declare class CameraStateSettings extends SceneExtension implements ICameraHandler {
    #private;
    readonly renderer: IRenderer;
    unfollowPoseSnapshot: Pose | undefined;
    constructor(renderer: IRenderer, canvas: HTMLCanvasElement, aspect: number);
    private cameraIcon;
    dispose(): void;
    startOrbit(speedDegPerSec?: number, direction?: 1 | -1): void;
    stopOrbit(): void;
    settingsNodes(): SettingsTreeEntry[];
    handleSettingsAction: (action: SettingsTreeAction) => void;
    startFrame(currentTime: bigint, renderFrameId: AnyFrameId, fixedFrameId: AnyFrameId): void;
    getActiveCamera(): THREE.PerspectiveCamera | THREE.OrthographicCamera;
    handleResize(width: number, height: number, _pixelRatio: number): void;
    getCameraState(): CameraState;
    setCameraState(cameraState: CameraState): void;
}
//# sourceMappingURL=CameraStateSettings.d.ts.map