import * as Core from "../../core-viewers";
import { CameraRef } from './cameraState';
import { CursorManager } from '../helpers/cursor';
import { Settings } from '../settings';
import { SideState } from './sideState';
import * as Icons from '../icons';
import { SectionBoxRef } from './sectionBoxState';
import { getMeasureState } from './measureState';
import { ModalHandle } from '../panels/modal';
import { IsolationRef } from './sharedIsolation';
import * as ControlBar from '../controlbar';
/**
 * Returns a control bar section for the section box.
 */
export declare function controlBarSectionBox(section: SectionBoxRef, hasSelection: boolean): ControlBar.IControlBarSection;
export declare function controlBarMeasure(settings: Settings, measure: ReturnType<typeof getMeasureState>): {
    id: string;
    enable: () => boolean;
    style: string;
    buttons: {
        id: string;
        enabled: () => boolean;
        isOn: () => boolean;
        tip: string;
        action: () => void;
        icon: typeof Icons.measure;
        style: typeof ControlBar.Style.buttonDefaultStyle;
    }[];
};
export declare function controlBarCamera(camera: CameraRef): ControlBar.IControlBarSection;
export declare function controlBarSelection(isolation: IsolationRef): ControlBar.IControlBarSection;
/**
 * Combines all control bar sections into one control bar.
 */
export declare function useControlBar(viewer: Core.Webgl.Viewer, camera: CameraRef, modal: ModalHandle, side: SideState, cursor: CursorManager, settings: Settings, section: SectionBoxRef, isolationRef: IsolationRef, customization: ControlBar.ControlBarCustomization | undefined): (ControlBar.IControlBarSection | {
    id: string;
    enable: () => boolean;
    style: string;
    buttons: {
        id: string;
        enabled: () => boolean;
        isOn: () => boolean;
        tip: string;
        action: () => void;
        icon: typeof Icons.measure;
        style: typeof ControlBar.Style.buttonDefaultStyle;
    }[];
})[];
/**
 * Checks if any settings-related UI buttons are enabled
 * @param {Settings} settings - The viewer settings to check
 * @returns {boolean} True if any settings buttons are enabled
 */
export declare function anyUiSettingButton(settings: Settings): boolean;
