import { SpreadsheetColumn, PersistedSheetState } from '../types'; export interface UseFilteringOptions { columns: SpreadsheetColumn[]; data: T[]; allowFilters?: boolean; getValue?: (row: T, column: SpreadsheetColumn) => any; persistKey?: string; /** When provided, search is delegated to the parent (e.g. server-side) */ onSearchChange?: (search: string) => void; searchDebounceMs?: number; serverSearchDebounceMs?: number; initialState?: Pick | null; } export interface FilterDropdownState { columnKey: string; position: { top: number; left: number; }; } export interface FilteringResult { searchInput: string; searchTerm: string; handleSearchChange: (value: string) => void; columnFilters: Record; filterSearchTerms: Record; setFilterSearchTerm: (columnKey: string, value: string) => void; openFilterDropdown: string | null; filterDropdownPosition: { top: number; left: number; } | null; filterData: (source: T[]) => T[]; toggleFilterDropdown: (columnKey: string, event: React.MouseEvent) => void; closeFilterDropdown: () => void; handleColumnFilterChange: (columnKey: string, value: string, checked: boolean) => void; clearAllFilters: () => void; clearColumnFilter: (columnKey: string) => void; selectAllColumnValues: (columnKey: string) => void; getUniqueColumnValues: (columnKey: string) => string[]; hasActiveFilters: boolean; filteredCount: number; isPending: boolean; startTransition: (callback: () => void) => void; uniqueColumnValuesCache: Record; setColumnFilters: React.Dispatch>>; } export declare function useFiltering(options: UseFilteringOptions): FilteringResult; export default useFiltering; //# sourceMappingURL=useFiltering.d.ts.map