/**
 * @description 工具组存储管理，每个组件有一个唯一的工具组来加载不同工具
 * @author jiannan.jiao
 */
import { TOOL_GROUP_TYPE } from '../constant';
import type { Ref } from 'vue';
import type { Types as toolsTypes } from '@cornerstonejs/tools';
import type { MedicalComponentID, DisplayComponentID } from '../types';
/** @description MedicalComponentID|SeriesType|orientations */
type viewportId = string;
type ToolGroups = {
    primary: toolsTypes.IToolGroup;
    secondary: toolsTypes.IToolGroup;
};
/** @description 用响应式数据记录actived的hand工具,用于工具条按钮的响应 */
export declare const headerActivedState: Map<string, Ref<string>>;
/**
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 */
/**
 * @description
 * @author jiannan.jiao
 * @date 18/09/2023
 * @export
 * @param {TOOL_GROUP_TYPE} seriesType1
 * @param {TOOL_GROUP_TYPE} seriesType2
 * @returns {*}
 */
export declare function seriesTypeCheck(seriesType1: TOOL_GROUP_TYPE, seriesType2: TOOL_GROUP_TYPE): boolean;
/**
 * @description
 * @author jiannan.jiao
 * @date 18/09/2023
 * @export
 * @param {ToolGroups} toolGroups
 * @param {(_seriesType: TOOL_GROUP_TYPE) => void} callback
 */
export declare function toolGroupsForIn(toolGroups: ToolGroups, callback: (_seriesType: TOOL_GROUP_TYPE) => void): void;
/**
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 */
/**
 * @description
 * @author jiannan.jiao
 * @date 07/09/2023
 * @export
 * @param {MedicalComponentID} id
 */
export declare function initToolGroups(id: MedicalComponentID): void;
/**
 * @description
 * @author jiannan.jiao
 * @date 07/09/2023
 * @export
 * @param {MedicalComponentID} id
 * @returns {*}
 */
export declare function getToolGroups(id: MedicalComponentID): ToolGroups | undefined;
/**
 * @description
 * @author jiannan.jiao
 * @date 07/09/2023
 * @export
 * @param {DisplayComponentID } id
 * @param {viewportId[]} viewportIds
 */
export declare function addViewports(id: DisplayComponentID, viewportIds: viewportId[]): void;
/**
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 */
/**
 * @description
 * @author jiannan.jiao
 * @date 08/09/2023
 * @export
 * @param {MedicalComponentID} id
 * @param {string} toolClassName
 */
export declare function setHeaderToolActived(id: MedicalComponentID, toolClassName: string, bindings?: toolsTypes.IToolBinding[]): void;
/**
 * @description
 * @author jiannan.jiao
 * @date 08/09/2023
 * @export
 * @param {MedicalComponentID} id
 * @param {boolean} [activationCustom=false]
 */
export declare function setHeaderToolDisabled(id: MedicalComponentID, activationCustom?: boolean): void;
/**
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 */
/**
 * @description 添加一个自定义工具到组件的工具组中
 * @author jiannan.jiao
 * @date 08/09/2023
 * @export
 * @param {(MedicalComponentID | DisplayComponentID )} id
 * @param {*} ToolClass
 * @param {toolsTypes.ToolConfiguration} configuration
 */
export declare function addATool(id: MedicalComponentID | DisplayComponentID, ToolClass: any, configuration?: toolsTypes.ToolConfiguration): void;
/**
 * @description 从组件的工具组中删除一个自定义工具
 * @author jiannan.jiao
 * @date 21/06/2024
 * @export
 * @param {(MedicalComponentID | DisplayComponentID)} id
 * @param {*} ToolClass
 */
export declare function removeATool(id: MedicalComponentID | DisplayComponentID, ToolClass: any): void;
/**
 * @description 将一个自定义添加的工具状态设置为actived
 * @author jiannan.jiao
 * @date 08/09/2023
 * @export
 * @param {MedicalComponentID | DisplayComponentID } id
 * @param {string} toolClassName
 */
export declare function setAToolActived(id: MedicalComponentID | DisplayComponentID, toolClassName: string): void;
/**
 * @description 将一个自定义添加的工具状态设置为enabled
 * @author jiannan.jiao
 * @date 19/09/2023
 * @export
 * @param {(MedicalComponentID | DisplayComponentID )} id
 * @param {string} toolClassName
 */
export declare function setAToolEnabled(id: MedicalComponentID | DisplayComponentID, toolClassName: string): void;
/**
 * @description 将一个自定义添加的工具状态设置为disabled
 * @author jiannan.jiao
 * @date 08/09/2023
 * @export
 * @param {(MedicalComponentID | DisplayComponentID )} id
 * @param {string} [toolClassName] 如果不指定工具类名默认将actived状态的工具disabled
 */
export declare function setAToolDisabled(id: MedicalComponentID | DisplayComponentID, toolClassName?: string): void;
/**
 * @description
 * @author jiannan.jiao
 * @date 25/09/2023
 * @export
 * @param {(MedicalComponentID | DisplayComponentID )} id
 * @param {string} toolClassName
 * @param {toolsTypes.ToolConfiguration} configuration
 */
export declare function setToolConfiguration(id: MedicalComponentID | DisplayComponentID, toolClassName: string, configuration: toolsTypes.ToolConfiguration): void;
/**
 * @description 组件初始化时创建对应的Camera同步器
 * @author jiannan.jiao
 * @date 12/09/2023
 * @export
 * @param {MedicalComponentID} id
 */
export declare function addCameraPositionSynchronizers(id: MedicalComponentID): void;
/**
 * @description 移除同步管理器中添加的同步器
 * @author jiannan.jiao
 * @date 12/09/2023
 * @export
 * @param {MedicalComponentID} id
 */
export declare function removeCameraPositionSynchronizers(id: MedicalComponentID): void;
/**
 * @description 向同步器中添加一个视口，它将被同时添加到soureViewport和targetViewport中
 * @author jiannan.jiao
 * @date 12/09/2023
 * @export
 * @param {string} renderingEngineId
 * @param {viewportId} viewportId
 */
export declare function addViewportToCameraPositionSynchronizers(renderingEngineId: string, viewportId: viewportId): void;
/**
 * @description 用于取消同步时移除同步器中的视口
 * @author jiannan.jiao
 * @date 12/09/2023
 * @export
 * @param {MedicalComponentID} id
 */
export declare function destoryCameraPositionSynchronizers(id: MedicalComponentID): void;
/**
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 */
/**
 * @description
 * @author jiannan.jiao
 * @date 12/09/2023
 * @export
 * @param {DisplayComponentID } id
 */
export declare function addVOISynchronizer(id: DisplayComponentID): void;
/**
 * @description
 * @author jiannan.jiao
 * @date 12/09/2023
 * @export
 * @param {DisplayComponentID } id
 */
export declare function removeVOISynchronizer(id: DisplayComponentID): void;
/**
 * @description 组件初始化时创建对应的SliceInfoTool同步器
 * @author jiannan.jiao
 * @date 31/10/2023
 * @export
 * @param {MedicalComponentID} id
 */
export declare function addPointerPositionSynchronizers(id: MedicalComponentID): void;
/**
 * @description 移除同步管理器中添加的SliceInfoTool同步器
 * @author jiannan.jiao
 * @date 31/10/2023
 * @export
 * @param {MedicalComponentID} id
 */
export declare function removePointerPositionSynchronizers(id: MedicalComponentID): void;
/**
 * @description 向同步器中添加一个视口，它将被同时添加到soureViewport和targetViewport中
 * @author jiannan.jiao
 * @date 31/10/2023
 * @export
 * @param {string} renderingEngineId
 * @param {viewportId} viewportId
 */
export declare function addViewportToPointerPositionSynchronizers(renderingEngineId: string, viewportId: viewportId): void;
/**
 * @description 用于取消SliceInfoTool同步时移除同步器中的视口
 * @author jiannan.jiao
 * @date 31/10/2023
 * @export
 * @param {MedicalComponentID} id
 */
export declare function destoryPointerPositionSynchronizers(id: MedicalComponentID): void;
/**
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 */
/**
 * @description 专门用来设置DraggableTool为actived状态，默认将全部可拖拽元素设置为false
 * @author jiannan.jiao
 * @date 25/09/2023
 * @export
 * @param {(MedicalComponentID | DisplayComponentID )} id
 * @param {boolean} [resetState=true]
 */
export declare function setDraggableToolActived(id: MedicalComponentID | DisplayComponentID, resetState?: boolean): void;
/**
 * @description  专门用来设置DraggableTool为disabled状态，默认将全部可拖拽元素设置为false
 * @author jiannan.jiao
 * @date 25/09/2023
 * @export
 * @param {(MedicalComponentID | DisplayComponentID )} id
 */
export declare function setDraggableToolDisabled(id: MedicalComponentID | DisplayComponentID): void;
/**
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 */
/**
 * @description 专门用来设置DraggableDisplayTool为actived状态，默认将全部可拖拽元素的显示设置为true
 * @author jiannan.jiao
 * @date 26/09/2023
 * @export
 * @param {(MedicalComponentID | DisplayComponentID )} id
 */
export declare function setDraggableDisplayToolEnabled(id: MedicalComponentID | DisplayComponentID): void;
/**
 * @description  专门用来设置DraggableDisplayTool为disabled状态，默认将全部可拖拽元素的显示设置为false，并默认将拖拽关闭
 * @author jiannan.jiao
 * @date 25/09/2023
 * @export
 * @param {(MedicalComponentID | DisplayComponentID )} id
 */
export declare function setDraggableDisplayToolDisabled(id: MedicalComponentID | DisplayComponentID, effectDrag?: boolean): void;
/**
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 */
export declare function setBrushRadius(id: MedicalComponentID | DisplayComponentID, brushSize: number): void;
export {};
