/// <reference types="react" />
import type { DeviceItem, DeviceKind, DeviceRow, I18nText, UpdateDevicePayload } from '../types';
interface UseDeviceListParams {
    activeKind: DeviceKind;
    selectedWorkAreaId?: number;
    translation: (val?: I18nText) => string;
    profileNameMap: Map<number, string>;
}
/** 管理当前工作区和设备种类下的设备列表、筛选、分页、排序与 CRUD 请求。 */
export declare const useDeviceList: ({ activeKind, selectedWorkAreaId, translation, profileNameMap, }: UseDeviceListParams) => {
    search: string;
    typeFilter: string | undefined;
    page: number;
    pageSize: number;
    devices: DeviceItem[];
    tableData: DeviceRow[];
    deviceRequest: import("ahooks/lib/useRequest/src/types").Result<DeviceItem[], [params: import("../types").ListDeviceParams]>;
    createDeviceRequest: import("ahooks/lib/useRequest/src/types").Result<DeviceItem | null, [payload: import("../types").CreateDevicePayload]>;
    updateDeviceRequest: import("ahooks/lib/useRequest/src/types").Result<DeviceItem | null, [params: {
        id: number;
        payload: UpdateDevicePayload;
    }]>;
    removeDeviceRequest: import("ahooks/lib/useRequest/src/types").Result<any, [id: string | number]>;
    setSearch: import("react").Dispatch<import("react").SetStateAction<string>>;
    setTypeFilter: import("react").Dispatch<import("react").SetStateAction<string | undefined>>;
    setPage: import("react").Dispatch<import("react").SetStateAction<number>>;
    setPageSize: import("react").Dispatch<import("react").SetStateAction<number>>;
    resetDeviceView: () => void;
    reloadDevices: () => void;
    reloadDevicesAsync: () => Promise<DeviceItem[]>;
    toDeviceRow: (item: DeviceItem) => DeviceRow;
    handleDeviceSort: (orderedRows: DeviceRow[]) => Promise<void>;
};
export {};
