import { queryStringMapType } from "../embeddable/entry";
import type { SearchToken } from "./client";
export type QueryKey = "search" | "text" | "textOnChange" | "selection" | "filters";
export type QueryStringValuesSpec = QueryKey[] | Partial<Record<QueryKey, boolean>>;
export type QueryValueShape = Partial<Record<QueryKey, unknown> & {
    text: string;
    textOnChange: string;
}>;
export declare function loadQueryString<Value extends QueryValueShape>(defaultValue: Value, queryStringMap?: queryStringMapType): Value;
export declare function saveQueryString<Value extends QueryValueShape>(value: Value, queryStringMap?: queryStringMapType): void;
export declare function loadLocalStorage<Value extends QueryValueShape>(defaultValue: Value, storageKey: string, queryStringMap?: queryStringMapType): Value;
export declare function saveLocalStorage<Value extends QueryValueShape>(value: Value, storageKey: string, queryStringMap?: queryStringMapType): void;
export declare function serializeFilters(filters: SearchToken[]): any[];
export declare function deserializeFilters(serializedArray: any[]): SearchToken[];
export declare function serializeFiltersGrouped(filters: SearchToken[]): any;
export declare function deserializeFiltersGrouped(serialized: any): SearchToken[];
