/**
 * @description 序列信息数据存储, 以及序列窗宽窗位数据
 * @author jiannan.jiao
 */
import type { Types } from '@cornerstonejs/core';
import type { MedicalComponentID, SeriesProps, VolumeProps } from '../types';
import type { SeriesId, VolumeId } from '.';
/**
 * @description
 * @author jiannan.jiao
 * @date 07/09/2023
 * @export
 * @param {SeriesProps} data
 */
export declare function setSeriesProps(data: SeriesProps): void;
/**
 * @description
 * @author jiannan.jiao
 * @date 07/09/2023
 * @export
 * @param {SeriesId} id
 * @returns {*}  {(SeriesProps | undefined)}
 */
export declare function getSeriesProps(id: SeriesId): SeriesProps | undefined;
/**
 * @description
 * @author jiannan.jiao
 * @date 07/09/2023
 * @export
 * @param {SeriesId} id
 */
export declare function removeSeriesProps(id: SeriesId): void;
/**
 * @description 更新viewport的actors中与id匹配的视口窗宽窗位
 * @author jiannan.jiao
 * @date 21/11/2023
 * @export
 * @param {SeriesId} id
 * @param {Types.VOIRange} range
 */
export declare function setVOIRange(id: SeriesId, range: Types.VOIRange, updateViewport?: boolean): void;
/**
 * @description 获取指定序列的窗宽窗位信息
 * @author jiannan.jiao
 * @date 21/11/2023
 * @export
 * @param {SeriesId} id
 * @returns {*}
 */
export declare function getVOIRange(id: SeriesId): {
    range: Types.VOIRange;
    windowLevel: Types.VOI;
} | undefined;
/**
 * @description 移除指定序列的窗宽窗位信息
 * @author jiannan.jiao
 * @date 21/11/2023
 * @export
 * @param {SeriesId} id
 * @returns {*}
 */
export declare function removeVOIRange(id: SeriesId): boolean;
/**
 * @description
 * @author jiannan.jiao
 * @date 21/11/2023
 * @export
 */
export declare function clearVOIRangeState(): void;
/**
 * @description
 * @author jiannan.jiao
 * @date 24/11/2023
 * @export
 * @param {VolumeProps} data
 */
export declare function setVolumeProps(data: VolumeProps): void;
/**
 * @description
 * @author jiannan.jiao
 * @date 24/11/2023
 * @export
 * @param {VolumeId} id
 * @returns {*}
 */
export declare function getVolumeProps(id: VolumeId): VolumeProps | undefined;
/**
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 */
/** @description 用作记录render_series.ts中正在请求的序列ID，防止重复请求 */
export declare const loading: Set<string>;
/**
 * @description 设置一个序列用于组件使用
 * @author jiannan.jiao
 * @date 21/06/2024
 * @export
 * @param {SeriesId} id
 * @param {MedicalComponentID} componentId
 */
export declare function setSeriesUsefor(id: SeriesId, componentId: MedicalComponentID): void;
/**
 * @description 获取序列的使用情况
 * @author jiannan.jiao
 * @date 21/06/2024
 * @export
 * @param {SeriesId} id
 * @returns {*}
 */
export declare function getSeriesUsefor(id: SeriesId): {
    componentIds: Set<string>;
    requests: Set<XMLHttpRequest>;
} | undefined;
/**
 * @description 删除一个序列在组件中的使用。如果没有其他组件再使用该序列
 *              则删除整个对象，并清理请求池中该序列未发送的请求
 * @author jiannan.jiao
 * @date 21/06/2024
 * @export
 * @param {SeriesId} id
 * @param {MedicalComponentID} componentId
 */
export declare function deleteSeriesUsefor(id: SeriesId, componentId: MedicalComponentID): void;
/**
 * @description 添加一个图像请求对象
 * @author jiannan.jiao
 * @date 21/06/2024
 * @export
 * @param {SeriesId} id
 * @param {XMLHttpRequest} xhr
 */
export declare function addXHR(id: SeriesId, xhr: XMLHttpRequest): void;
/**
 * @description 删除一个图像请求对象
 * @author jiannan.jiao
 * @date 21/06/2024
 * @export
 * @param {SeriesId} id
 * @param {XMLHttpRequest} xhr
 */
export declare function deleteXHR(id: SeriesId, xhr: XMLHttpRequest): void;
