import type { DateRangeRequest } from '../facets/range-facets/date-facet-set/interfaces/request.js';
import type { NumericRangeRequest } from '../facets/range-facets/numeric-facet-set/interfaces/request.js';
import { SearchParameterKey } from './search-parameter-serializer.js';
export type SearchParamValue = string | string[] | undefined;
export type SearchParamPair<T> = [SearchParameterKey, T];
export type FacetValueSearchParam = Record<string, string[]>;
export type RangeFacetValueSearchParam = Record<string, DateRangeRequest[] | NumericRangeRequest[]>;
export declare function toArray<T>(value: T | T[]): T[];
export declare function addFacetValuesToSearchParams(facetId: string, paramKey: SearchParameterKey): (searchParams: Record<string, unknown>, valueArray: unknown[]) => void;
export declare function isValidSearchParam(key: string): boolean;
export declare function isFacetPair(pair: [SearchParameterKey, unknown]): pair is SearchParamPair<FacetValueSearchParam>;
export declare function isRangeFacetPair(pair: [SearchParameterKey, unknown]): pair is SearchParamPair<RangeFacetValueSearchParam>;
/**
 * Extends the search parameters with the given key-value pair. If the key-value pair is not valid or if the value is undefined, the search parameters are not modified.
 * @param searchParams - The search parameters object to extend.
 * @param key - The key of the search parameter.
 * @param value - The value of the search parameter.
 */
export declare function extendSearchParameters(searchParams: Record<string, unknown>, key: string, value: SearchParamValue): void;
