import { WebsiteRoute } from 'dew-types'; import { PathFunction } from 'path-to-regexp'; import React, { ReactNode } from 'react'; import { LinkValue, MatchedRoute, RouterLocation, RouterNavigator, StringOrStringArray, UrlParams } from './types'; export interface LocationContextValue { routes: WebsiteRoute[]; matchedRoutes: MatchedRoute[]; location: RouterLocation; navigator: RouterNavigator; query: Record; pathFnMap: Record>; } export declare const LocationContext: React.Context; export interface RouterProps { routes: WebsiteRoute[]; matchedRoutes: MatchedRoute[]; children: ReactNode; location: RouterLocation; navigator: RouterNavigator; } export declare function makePathFnMap(_routes: WebsiteRoute[]): Record>>; export declare function Router({ location, routes, matchedRoutes, navigator, children, }: RouterProps): JSX.Element; export declare function useRouter(): { routes: WebsiteRoute[]; matchedRoutes: MatchedRoute[]; location: RouterLocation; query: Record; navigator: RouterNavigator; parseLink: ({ name, lang, params, query }: LinkValue) => string | null; pathFnMap: Record>>; };