import type { Ref } from 'vue'; import type { TableRowSelection, Key, GetRowKey, TableLocale, SelectionItem, CheckboxProps, SurelyTableProps, FlatRecord } from '../components/interface'; import type { DataEntity } from '../utils/conductUtil'; import type { KeyEntities } from './useFlattenRecords'; export declare const SELECTION_ALL: "SELECT_ALL"; export declare const SELECTION_INVERT: "SELECT_INVERT"; export declare const SELECTION_NONE: "SELECT_NONE"; interface UseSelectionConfig { prefixCls: Ref; pageData: Ref; getRowKey: Ref>; getRecordByKey: (key: Key) => RecordType; childrenColumnName: Ref; flattenData: Ref; keyEntities: Ref; locale: Ref; checkboxPropsMap: Ref>>; allDataRowKeys: Ref; allDataRootRowKeys: Ref; pageDataRowKeys: Ref; pageDataEnableRowKeys: Ref; } export declare type SelectionsRes = { derivedSelectedKeySet: Ref>; derivedHalfSelectedKeySet: Ref>; derivedSelectedKeys: Ref; setSelectedKeys: (keys: Key[]) => void; triggerSingleSelection: (key: Key, selected: boolean, keys: Key[], event: Event) => void; mergedSelections: Ref; lastSelectedKey: Ref; setLastSelectedKey: (key: Key) => void; mergedRowSelection: Ref; isCheckboxDisabled: (r: FlatRecord) => void; levelEntities: Ref>>; maxLevel: Ref; allDisabled: Ref; allDisabledSomeChecked: Ref; allDisabledAndChecked: Ref; checkedCurrentAll: Ref; checkedCurrentSome: Ref; }; export declare type INTERNAL_SELECTION_ITEM = SelectionItem | typeof SELECTION_ALL | typeof SELECTION_INVERT | typeof SELECTION_NONE; export default function useSelection(props: SurelyTableProps, mergedRowSelection: Ref | undefined>, allData: Ref, configRef: UseSelectionConfig): SelectionsRes; export {};