import { SearchParameterKey } from '../../search-parameters/search-parameter-serializer.js';
import { ProductListingParameters } from '../product-listing-parameters/product-listing-parameters-actions.js';
import { CommerceSearchParameters } from '../search-parameters/search-parameters-actions.js';
import { SortCriterion } from '../sort/sort.js';
import { Parameters } from './parameters-actions.js';
export declare const commerceFacetsRegex: RegExp;
export interface Serializer<T extends Parameters> {
    serialize: (parameters: T) => string;
    deserialize: (fragment: string) => T;
}
export declare const searchSerializer: Serializer<CommerceSearchParameters>;
export declare const productListingSerializer: Serializer<ProductListingParameters>;
export type ParametersKey = keyof CommerceSearchParameters;
export type FacetParameters = keyof Pick<Parameters, 'f' | 'fExcluded' | 'lf' | 'cf' | 'nf' | 'nfExcluded' | 'df' | 'dfExcluded' | 'mnf' | 'mnfExcluded'>;
type FacetKey = keyof typeof supportedFacetParameters;
declare const supportedFacetParameters: Record<FacetParameters, boolean>;
export declare function buildCriterionExpression(criterion: SortCriterion | undefined): string;
export declare function isValidBasicKey(key: string): key is Exclude<SearchParameterKey, FacetKey>;
export declare function keyHasObjectValue(key: string): key is FacetKey;
export declare function deserializeSortCriteria(value: string): SortCriterion | undefined;
export {};
