import * as React from 'react'; export interface UseDataSelectorConfig { /** A default selected data */ defaultSelectedData?: Data[]; /** Get row Key Function */ getRowKey: | keyof Data | ((row: Data, index: number, array: Data[]) => React.Key); /** An handler to call when selected data change */ onSelectedDataChange?: (selected: Data[]) => void; /** Set if selector is disabled */ selectable?: boolean; } declare type UserDataSelectorConfigAndData = UseDataSelectorConfig & { /** All Data List */ allData: Data[]; /** Filtered Data Slice */ filteredData: Data[]; }; export interface DataSelector { /** Check if all rows are selected */ areAllRowsSelected: boolean; /** Deselect all rows */ deselectAllRows: () => void; /** Deselect one or more rows */ deselectRow: (...rows: Data[]) => void; /** Get the key of a row */ getRowKey: (row: Data, index: number, array: Data[]) => React.Key; /** Check if a row is selected */ isRowSelected: (row: Data) => boolean; /** Select all rows */ selectAllRows: () => void; /** Count of selected rows */ selectedCount: number; /** Selected Data Array */ selectedData: Data[]; /** Select one or more rows */ selectRow: (...rows: Data[]) => void; /** Toggle a row */ toggleSelectRow: (row: Data) => void; } export default function useDataSelector( config: UserDataSelectorConfigAndData ): DataSelector; export {};