// Generated by dts-bundle-generator v9.5.1 import React$1 from "react"; import { ReactElement, ReactNode } from "react"; export interface RouterProps { scrollUp?: boolean; url?: string; children?: React$1.ReactNode; } declare const _default: ({ scrollUp, url: baseUrl, children, }: RouterProps) => import("react/jsx-runtime").JSX.Element; export type ParseParamType = T extends `${infer Name}<${infer Type}>` ? Type extends "number" ? { [K in Name]: number; } : Type extends "string" ? { [K in Name]: string; } : Type extends "date" ? { [K in Name]: Date; } : Type extends "boolean" ? { [K in Name]: boolean; } : { [K in Name]: string; } : { [K in T]: string; }; export type ExtractParams = T extends `${infer _Prefix}/:${infer Param}/${infer Rest}` ? ParseParamType & ExtractParams<`/${Rest}`> : T extends `${infer _Prefix}/:${infer Param}` ? ParseParamType : {}; export type InferParamsFromPath = T extends `${string}/:${string}` ? ExtractParams : {}; export interface RoutePropsBase { path?: string; scrollUp?: boolean; children?: React$1.ReactNode; } export type RouteProps< T extends Record = {}, > = RoutePropsBase & ( | { component: React$1.FunctionComponent; render?: never; } | { render: (params: T) => React$1.ReactNode; component?: never; } | { component?: never; render?: never; } ); export type RouteType =

( props: RouteProps> & { path?: P; }, ) => React$1.ReactNode; declare const _default$1: RouteType; export type Query = Record; export type Url = { path: string; query: Query; hash?: string; params?: Params; }; export type UrlSet = { path?: string; query?: Query; hash?: string; }; export type Params = Record; export type SetUrlOptions = { mode?: "push" | "replace"; }; export type NewUrlValue = Url | UrlSet | string; export type SetUrl = ( newUrl: NewUrlValue | ((prev: Url) => NewUrlValue), opts?: SetUrlOptions, ) => void; export interface SwitchProps { redirect?: | string | { path: string; } | ((url: Url) => string); children?: React$1.ReactNode; } declare const _default$2: ({ redirect, children, }: SwitchProps) => React$1.ReactElement | null; declare const _default$3: import("react").Context<[Url, SetUrl] | undefined>; declare const _default$4: () => [Url, SetUrl]; export type PathUpdater = (path: string) => string; export type SetPath = ( path: string | PathUpdater, opts?: SetUrlOptions, ) => void; declare const _default$5: () => [string, SetPath]; export type QueryValue = string | string[] | undefined; export type SetQueryProp = ( value: string | ((prev: QueryValue) => string), opts?: SetUrlOptions, ) => void; export type QueryUpdater = (query: Query) => Query | string; export type SetQuery = ( newQuery: Query | string | QueryUpdater, opts?: SetUrlOptions, ) => void; export declare function useQuery(key: string): [QueryValue, SetQueryProp]; export declare function useQuery(): [Query, SetQuery]; export type HashUpdater = (hash: string | undefined) => string; export type SetHash = ( hash: string | HashUpdater, opts?: SetUrlOptions, ) => void; declare const _default$6: () => [string | undefined, SetHash]; export declare function useParams(): Params; export declare function useParams( key: string, ): T; export { _default as default, _default$1 as Route, _default$2 as Switch, _default$3 as Context, _default$4 as useUrl, _default$5 as usePath, _default$6 as useHash, }; export {};