import type { LooseRequired } from '../../share/type'; import type { TableColumn, TableData, TableProps, TableSelection } from '../type'; import { type Ref } from 'vue'; export declare const useSelection: (currentData: Ref, paginatedData: Ref, page: Ref, pageSize: Ref, props: LooseRequired, emits: ((evt: "select", value: boolean, key: any, record: TableData, event: InputEvent) => void) & ((evt: "selectAll", value: boolean, event: InputEvent) => void) & ((evt: "update:selectedKeys", value: any[]) => void) & ((evt: "selectedChange", value: any[]) => void)) => readonly [Ref, (selection: TableSelection, columns: TableColumn[]) => { key: symbol; width: number; minWidth: number | undefined; fixed: "left" | "none"; contentProps: { [x: string]: unknown; }; labelContentProps: { [x: string]: unknown; }; cellProps: import("../../index.ts").RestAttrs | undefined; labelCellProps: import("../../index.ts").RestAttrs | undefined; render: ({ record }: { record: TableData; }) => import("vue/jsx-runtime").JSX.Element; labelRender: () => string | import("vue/jsx-runtime").JSX.Element; }, import("vue").ComputedRef, { select: (key: any | any[], value: boolean) => Promise; clearSelect: () => Promise; selectAll: (value: boolean, crossPage?: boolean, ignoreDisabled?: boolean) => Promise; }];