import { GridApi, IFilter } from 'ag-grid-community';
import { IClientSideFilter } from '../FilterRenderers';
import { NumberFilterModel } from '../FilterRenderers/NumberFilterRenderer';
import { ColumnDefinition } from '../types';
export interface ListFilter extends IClientSideFilter {
    options: (string | null)[];
    value: (string | null)[];
}
export declare const useFilterState: () => ListFilter[];
export declare type FilterRecord<TValue = any[] | NumberFilterModel> = {
    field: string;
    instance: IFilter;
    columnDefinition: ColumnDefinition;
    type: 'set' | 'number';
    options?: any[];
    filterValues?: TValue;
};
export declare function useNextFilterState({ columnDefinitions, gridApi, }: {
    columnDefinitions: ColumnDefinition[];
    gridApi?: GridApi;
}): {
    allAvailableFilters: FilterRecord<any[] | NumberFilterModel>[];
    filterableColumns: ColumnDefinition<any, string, any, string, any, any, string | number | import("../types").LocationFilterOpt | {
        date: Date;
    } | import("../FilterRenderers/NumberFilterRenderer").NumberFilterValue, string, any>[];
};
