import type { ColorRepresentation } from 'three';
export interface Settings {
    anthropicKey: string;
    cameraMode: 'orthographic' | 'perspective';
    interactionMode: 'navigate' | 'measure' | 'select' | 'gizmo';
    refreshRates: {
        poses: number;
        pointclouds: number;
        vision: number;
    };
    disabledCameras: Record<string, boolean>;
    disabledVisionServices: Record<string, boolean>;
    snapping: boolean;
    transformMode: 'none' | 'translate' | 'rotate' | 'scale';
    grid: boolean;
    gridCellSize: number;
    gridSectionSize: number;
    gridFadeDistance: number;
    pointSize: number;
    pointColor: ColorRepresentation;
    lineWidth: number;
    lineDotSize: number;
    enableMeasureAxisX: boolean;
    enableMeasureAxisY: boolean;
    enableMeasureAxisZ: boolean;
    enableLabels: boolean;
    enableArmPositionsWidget: boolean;
    openCameraWidgets: Record<string, string[]>;
    openFramePovWidgets: Record<string, string[]>;
    renderStats: boolean;
    renderArmModels: 'colliders' | 'colliders+model' | 'model';
    renderSubEntityHoverDetail: boolean;
    enableXR: boolean;
    xrMode: 'frame-configure' | 'arm-teleop';
    xrController: {
        left: {
            armName?: string;
            gripperName?: string;
            scaleFactor: number;
            rotationEnabled: boolean;
        };
        right: {
            armName?: string;
            gripperName?: string;
            scaleFactor: number;
            rotationEnabled: boolean;
        };
    };
}
interface Context {
    current: Settings;
    isLoaded: boolean;
    merge(value: Settings): void;
}
export declare const RefreshRates: {
    readonly poses: "poses";
    readonly pointclouds: "pointclouds";
    readonly vision: "vision";
};
export declare const provideSettings: () => Context;
export declare const useSettings: () => Context;
export {};
