import { RangeFacetOptionalParameters } from './interfaces/options.js';
import { RangeFacetRequest, RangeFacetResponse, RangeFacetValue, RangeValueRequest } from './interfaces/range-facet.js';
type RangeFacetSlice<RequestType extends RangeFacetRequest = RangeFacetRequest> = {
    request: RequestType;
};
type RangeFacetState<SliceType extends RangeFacetSlice<RangeFacetRequest>> = Record<string, SliceType>;
export declare const defaultRangeFacetOptions: RangeFacetOptionalParameters;
export declare function registerRangeFacet<T extends RangeFacetSlice>(state: RangeFacetState<T>, slice: T): void;
export declare function updateRangeValues<T extends RangeFacetSlice>(state: RangeFacetState<T>, facetId: string, values: T['request']['currentValues']): void;
export declare function toggleSelectRangeValue<T extends RangeFacetSlice, U extends RangeFacetValue>(state: RangeFacetState<T>, facetId: string, selection: U): void;
export declare function toggleExcludeRangeValue<T extends RangeFacetSlice, U extends RangeFacetValue>(state: RangeFacetState<T>, facetId: string, selection: U): void;
export declare function handleRangeFacetDeselectAll<T extends RangeFacetSlice>(state: RangeFacetState<T>, facetId: string): void;
export declare function handleRangeFacetSearchParameterRestoration<T extends RangeFacetSlice>(state: RangeFacetState<T>, rangeFacets: Record<string, T['request']['currentValues']>): void;
export declare function onRangeFacetRequestFulfilled<T extends RangeFacetSlice, U extends RangeFacetResponse>(state: RangeFacetState<T>, facets: U[], convert: (values: U['values']) => T['request']['currentValues']): void;
export declare function findExactRangeValue(values: RangeValueRequest[], value: RangeValueRequest): RangeValueRequest | undefined;
export {};
