type Config, Required extends boolean, ParsedType, InitialValue> = (Required extends false ? { parse?: (value?: string | string[]) => ParsedType; } : { parse: (value?: string | string[]) => ParsedType; }) & { stringify?: (value: ParsedType) => string; initial: InitialValue; paramsToClearOnSetState?: (keyof Props)[]; }; type Params = Record, Name extends Extract = Extract, NullableUnparsedParsedType extends Props[Name] | undefined = Props[Name] | undefined, ParseFunction extends undefined | ((value?: string | string[]) => NonNullable) = (value?: string | string[]) => NonNullable, InitialValue = NullableUnparsedParsedType | undefined, ParsedType = InitialValue extends undefined ? NullableUnparsedParsedType : ParseFunction extends undefined ? NullableUnparsedParsedType : NonNullable> = NonNullable extends string ? [name: Name, config: Config] | [name: Name] : [name: Name, config: Config]; type Returns = Record, Name extends keyof Props = keyof Props, NullableUnparsedParsedType extends Props[Name] | undefined = Props[Name] | undefined, ParseFunction extends undefined | ((value?: string | string[]) => NonNullable) = (value?: string | string[]) => NonNullable, InitialValue = NullableUnparsedParsedType | undefined, ParsedType = InitialValue extends undefined ? NullableUnparsedParsedType : ParseFunction extends undefined ? NullableUnparsedParsedType : NonNullable> = readonly [ state: ParsedType | InitialValue, setState: (value: ParsedType, options?: SetStateOptions) => void ]; type SetStateOptions = { /** * Override whether this function calls `Router.push` or `Router.replace`. * * By default, `Router.push` is called if the query parameter already exists in the URL. */ webBehavior?: 'push' | 'replace'; }; export declare function createParam = Record>(): { useParam: , NullableUnparsedParsedType extends Props[Name] | undefined = Props[Name] | undefined, ParseFunction extends ((value?: string | string[]) => NonNullable) | undefined = (value?: string | string[]) => NonNullable, InitialValue = NullableUnparsedParsedType | undefined, ParsedType = InitialValue extends undefined ? NullableUnparsedParsedType : ParseFunction extends undefined ? NullableUnparsedParsedType : NonNullable>(...[name, maybeConfig]: Params) => Returns; useUpdateParams: () => (props: Partial, options?: { web?: { replace?: boolean | undefined; } | undefined; } | undefined) => void; useParams: () => { params: Props; setParams: (value: Partial, options?: SetStateOptions) => void; }; }; export {}; //# sourceMappingURL=index.d.ts.map