import React, { Ref } from 'react'; import { SearchInputProps } from '../forms/SearchInput'; import { GenericDataRow } from '../types'; import { TableFilter, TableFilterSimple, TableRows } from './types'; export declare type FilterableProps = { addFilter?: (filter: TableFilter) => void; searchable?: boolean; query?: string; filters?: TableFilterSimple[]; defaultFilters?: TableFilterSimple[]; onEnter?: (value: string) => any; onFilterChange?: (filters: TableFilter[]) => void; }; export declare type FilterableReceiverProps = { filterValue?: string; filter?: (row: GenericDataRow) => boolean; defaultFilters?: TableFilter[]; }; declare class FilterableStore { props: FilterableProps; filters: unknown; onFilterChange: void; query: unknown; focusedToken: number; inputFocused: boolean; inputNode: HTMLInputElement; filter: (row: GenericDataRow) => boolean; inputListener: void; onKeyDown: (e: KeyboardEvent) => void; onChangeQuery: (e: React.ChangeEvent) => void; matchTags: (query: string, matchEnd: boolean) => void; addFilter: (filter: TableFilter) => void; removeFilter: (index: number) => void; replaceFilter: (index: number, filter: TableFilter) => void; onInputFocus: () => void; onInputBlur: () => void; onTokenFocus: (focusedToken: number) => void; onTokenBlur: () => void; get hasFocus(): boolean; clear: () => void; inputProps: any; } declare type UseFilterable = { ref: Ref; store: FilterableStore; filter: (row: GenericDataRow) => boolean; onAddFilter: (fitler: TableFilter) => void; }; export declare function useFilterable(props: FilterableProps): UseFilterable; export declare const FilterableSearchInput: React.MemoExoticComponent<({ useFilterable, ...rest }: Omit, "onDrag" | "onDragEnd" | "onDragStart"> & Omit & { onEnter?: Function; type?: import("..").InputType; form?: Object; step?: any; } & { actions?: React.ReactNode; filters?: TableFilter[]; onClickClear?: React.MouseEventHandler; focusedToken?: number; filterProps?: Object; clearable?: boolean; } & { useFilterable: UseFilterable; }) => JSX.Element>; export declare const filterRowsFactory: (filters: TableFilter[], query: string) => (row: GenericDataRow) => boolean; export declare const filterRows: (rows: TableRows, filterValue?: string, filter?: (row: GenericDataRow) => boolean) => TableRows; export {}; //# sourceMappingURL=Filterable.d.ts.map