import { type Ref } from "vue"; import type { ColumnDef, Row, DataGridSortState, DataGridFilterState } from "../components/LuDataGrid.types"; export interface UseDataGridOptions { columns: Ref; data: Ref; groupBy?: Ref; selectable?: Ref; idKey?: Ref; localSort?: Ref; localSearch?: Ref; } export declare function useDataGrid(opts: UseDataGridOptions): { visibleColumns: import("vue").ComputedRef; hiddenColumns: Ref & Omit, keyof Set>, Set | (Set & Omit, keyof Set>)>; columnOrder: Ref; toggleColumn: (key: string) => void; resetColumnOrder: () => void; sortState: Ref<{ key: string; direction: "asc" | "desc"; } | null, DataGridSortState | { key: string; direction: "asc" | "desc"; } | null>; toggleSort: (key: string) => { key: string; direction: "asc" | "desc"; } | null; searchQuery: Ref; columnFilters: Ref; setColumnFilter: (key: string, value: string | number | [number, number] | undefined) => void; clearFilters: () => void; filteredData: import("vue").ComputedRef; selectedIds: Ref & Omit, keyof Set>, Set | (Set & Omit, keyof Set>)>; isSelected: (row: Row) => boolean; toggleRow: (row: Row) => string[]; selectAll: () => string[]; selectAllData: () => string[]; clearSelection: () => string[]; allSelected: import("vue").ComputedRef; someSelected: import("vue").ComputedRef; selectionCount: import("vue").ComputedRef; groupedRows: import("vue").ComputedRef<({ type: "group"; key: string; label: string; } | { type: "row"; row: Row; })[]>; hasColumnFilters: import("vue").ComputedRef; };