import { a as ParserBuilder } from './serializer-D6QaciYt.js';
export { P as Parser, e as createParser, d as createSerializer, o as inferParserType, c as parseAsArrayOf, j as parseAsBoolean, i as parseAsFloat, h as parseAsHex, g as parseAsInteger, l as parseAsIsoDateTime, b as parseAsJson, n as parseAsNumberLiteral, f as parseAsString, p as parseAsStringEnum, m as parseAsStringLiteral, k as parseAsTimestamp } from './serializer-D6QaciYt.js';
import 'react';

type SearchParams = Record<string, string | string[] | undefined>;
type ExtractParserType<Parser> = Parser extends ParserBuilder<any> ? ReturnType<Parser['parseServerSide']> : never;
declare function createSearchParamsCache<Parsers extends Record<string, ParserBuilder<any>>>(parsers: Parsers): {
    parse: (searchParams: SearchParams) => Readonly<keyof Parsers extends infer T extends keyof Parsers ? { [K in T]: ExtractParserType<Parsers[K]>; } : never>;
    get: <Key extends keyof Parsers>(key: Key) => (keyof Parsers extends infer T extends keyof Parsers ? { [K in T]: ExtractParserType<Parsers[K]>; } : never)[Key];
    all: () => Readonly<keyof Parsers extends infer T extends keyof Parsers ? { [K in T]: ExtractParserType<Parsers[K]>; } : never>;
};
declare function compareSearchParams(a: SearchParams, b: SearchParams): boolean;

export { ParserBuilder, type SearchParams, compareSearchParams, createSearchParamsCache };
