import { ComputedRef, InjectionKey, MaybeRefOrGetter, Ref } from 'vue'; import { DeepRequired } from '../../lib/types'; export interface TableSelectionProvide { selectedRows: Ref>; selectRow: (row: Row) => void; selectAllRows: () => void; enabled: ComputedRef; isSelectedAll: ComputedRef; } export declare const TableSelectionProvideSymbol: InjectionKey; export interface Header { label: string; sortToggle: () => void; sortKey?: 'asc' | 'desc'; } interface TableOptionsInput { pagination?: { enabled?: boolean; perPage?: number; maxPages?: number; }; /** * If setting is enabled, you _must_ provide an `id` property on your dataset * objects, which is used for selection. The value of this property can be * either a string or a number and has to be unique. */ select?: Dataset[number] extends { id: string | number; } ? boolean : false; } export declare function defineTable(computedDataset: MaybeRefOrGetter, tableOptions?: TableOptionsInput): { setSort: (key: keyof Dataset[number], type?: "asc" | "desc" | "toggle") => void; clearSort: () => void; search: Ref; rows: ComputedRef; allRows: ComputedRef; selectedRows: ComputedRef[]>; headers: ComputedRef; pagination: ComputedRef; canPrevPage: ComputedRef; canNextPage: ComputedRef; setPage: (page: number) => void; options: Ref<{ pagination: { enabled: boolean; perPage: number; maxPages: number; }; select: import('vue').UnwrapRef | import('vue').UnwrapRef<((Dataset[number] extends { id: string | number; } ? boolean : false) extends infer T ? { [K in keyof T]: DeepRequired; } : never) & Required & (Dataset[number] extends { id: string | number; } ? boolean : false)>; }, DeepRequired> | { pagination: { enabled: boolean; perPage: number; maxPages: number; }; select: import('vue').UnwrapRef | import('vue').UnwrapRef<((Dataset[number] extends { id: string | number; } ? boolean : false) extends infer T_1 ? { [K in keyof T_1]: DeepRequired; } : never) & Required & (Dataset[number] extends { id: string | number; } ? boolean : false)>; }>; selectRow: (row: Dataset[number]) => void; selectAllRows: () => void; isSelectedAll: ComputedRef; deselectAllRows: () => void; }; export {};