import { CollectionState, Filter, FiltersMap, OptionalFiltersMap } from '@wix/bex-core';
import { CollectionConfig, CursorFetchDataFn, OffsetFetchDataFn } from '@wix/bex-core/react';
type FiltersConfig<F extends FiltersMap> = F extends OptionalFiltersMap ? {
    filters?: {};
} : {
    filters: F;
};
type PaginationModeConfig<T, F extends FiltersMap> = {
    paginationMode?: 'offset';
    fetchData: OffsetFetchDataFn<T, F>;
} | {
    paginationMode: 'cursor';
    fetchData: CursorFetchDataFn<T, F>;
};
export type FilterCollectionConfig<T, F extends FiltersMap> = Omit<CollectionConfig<T, F>, 'itemKey' | 'itemName' | 'filters' | 'paginationMode' | 'fetchData' | 'fetchErrorMessage'> & FiltersConfig<F> & PaginationModeConfig<T, F>;
export type FilterCollectionFactory = <T, F extends FiltersMap = FiltersMap>(filter: Filter<T[]>, config: FilterCollectionConfig<T, F>) => CollectionState<T, F>;
export declare function useCreateFilterCollection(): FilterCollectionFactory;
export declare function useFilterCollection<T, F extends FiltersMap = OptionalFiltersMap>(filter: Filter<T[]>, config: FilterCollectionConfig<T, F>): CollectionState<T, F>;
export {};
//# sourceMappingURL=useFilterCollection.d.ts.map