import type { ReactElement, ReactNode } from 'react'; import type { ReactRouterLocation } from '../types'; export interface ReactRouterV6RouteObject { caseSensitive?: boolean; children?: ReactRouterV6RouteObject[]; element?: ReactNode; index?: boolean; path?: string; } export interface ReactRouterV6RoutesProps { children?: ReactNode; location?: Partial | string; routesComponent?: ReactRouterV6RoutesShape; } export declare type ReactRouterV6Params = { readonly [key in Key]: string | undefined; }; export interface ReactRouterV6RouteMatch { params: ReactRouterV6Params; pathname: string; pathnameBase: string; route: ReactRouterV6RouteObject; } export declare type ReactRouterV6CreateRoutesFromChildren = (children: ReactNode) => ReactRouterV6RouteObject[]; export declare type ReactRouterV6MatchRoutes = (routes: ReactRouterV6RouteObject[], location: Partial | string, basename?: string) => ReactRouterV6RouteMatch[] | null; export declare type ReactRouterV6RoutesShape = (props: ReactRouterV6RoutesProps) => ReactElement | null; export declare type ReactRouterV6UseLocation = () => ReactRouterLocation; export declare type ReactRouterV6UseNavigationType = () => 'POP' | 'PUSH' | 'REPLACE'; export interface ReactRouterV6Dependencies { createRoutesFromChildren: ReactRouterV6CreateRoutesFromChildren; matchRoutes: ReactRouterV6MatchRoutes; Routes: ReactRouterV6RoutesShape; useLocation: ReactRouterV6UseLocation; useNavigationType: ReactRouterV6UseNavigationType; }