import * as VIM from '../../core-viewers/webgl/index';
import { CameraRef } from './cameraState';
import { CursorManager } from '../helpers/cursor';
import { Isolation } from '../helpers/isolation';
import { ComponentSettings } from '../settings/settings';
import { SideState } from '../sidePanel/sideState';
import * as Icons from '../panels/icons';
import { SectionBoxRef } from './sectionBoxState';
import { ModalRef } from '../panels/modal';
import * as ControlBar from '../controlbar/controlBar';
/**
 * Returns a control bar section for the section box.
 */
export declare function controlBarSectionBox(section: SectionBoxRef, hasSelection: boolean): ControlBar.IControlBarSection;
export declare function controlBarCamera(camera: CameraRef): {
    id: string;
    enable: () => boolean;
    style: string;
    buttons: {
        id: string;
        tip: string;
        isOn: () => boolean;
        action: () => void;
        icon: typeof Icons.autoCamera;
        style: typeof ControlBar.buttonDefaultStyle;
    }[];
};
/**
 * Combines all control bar sections into one control bar.
 */
export declare function useControlBar(viewer: VIM.Viewer, camera: CameraRef, modal: ModalRef, side: SideState, isolation: Isolation, cursor: CursorManager, settings: ComponentSettings, section: SectionBoxRef, customization: ControlBar.ControlBarCustomization | undefined): (ControlBar.IControlBarSection | {
    id: string;
    enable: () => boolean;
    style: string;
    buttons: ({
        id: string;
        enabled: () => boolean;
        tip: string;
        action: () => void;
        icon: typeof Icons.toggleIsolation;
        style: typeof ControlBar.buttonDefaultStyle;
        isOn?: undefined;
    } | {
        id: string;
        enabled: () => boolean;
        isOn: () => boolean;
        tip: string;
        action: () => void;
        icon: typeof Icons.measure;
        style: typeof ControlBar.buttonDefaultStyle;
    })[];
} | {
    id: string;
    enable: () => boolean;
    style: string;
    buttons: {
        id: string;
        tip: string;
        isOn: () => boolean;
        action: () => void;
        icon: typeof Icons.autoCamera;
        style: typeof ControlBar.buttonDefaultStyle;
    }[];
})[];
