/// import { ActionFunction, LoaderFunction, ShouldRevalidateFunction } from 'react-router-dom'; import { RouteNodeRouteObject } from './routeNode'; import { TemplateParserMap, RouteOptions, RouteElement } from './types'; /** * RouteFnArgs with Paramers. * * @typeParam T - The routes template string * @typeParam TPM - The map of template parsers * @typeParam RO - The RouteOptions type * * @internal */ declare type RouteFnArgsWithParams, RO extends RouteOptions> = RouteFnBaseArgs & { params: TPM; }; /** * If the given RouteFnArgs has Parameters * @internal */ export declare function isRouteArgsWithParams(args: any): args is RouteFnArgsWithParams; /** * The Route Function Arguments including required parameters if the template contains parameters * * @typeParam T - The routes template string * @typeParam TPM - The map of template parsers * @typeParam RO - The RouteOptions type */ export declare type RouteFnArgs, RO extends RouteOptions> = keyof TemplateParserMap extends never ? RouteFnBaseArgs : RouteFnArgsWithParams; /** * The Base Route Function Arguments */ declare type RouteFnBaseArgs = { /** * The element to render when the route matches the URL. * * See https://reactrouter.com/en/main/route/route#element */ element: RouteElement; /** * Defining a layout Element implicitly wraps the route in a layout route. * * e.g. * ```tsx * { * element: , * layout: * } * // is equivalent to * }> * } /> * * ``` * * See https://reactrouter.com/en/main/route/route#layout-routes */ layout?: RouteNodeRouteObject; /** * Adds an index route to this routes children. * * See https://reactrouter.com/en/main/start/tutorial#index-routes * and https://reactrouter.com/en/main/guides/index-route */ index?: RouteNodeRouteObject; /** * Global options for this Route. */ options?: Partial; /** * See https://reactrouter.com/en/main/route/loader */ loader?: LoaderFunction; /** * See https://reactrouter.com/en/main/route/route#casesensitive */ caseSensitive?: boolean; /** * See https://reactrouter.com/en/main/route/action */ action?: ActionFunction; /** * See https://reactrouter.com/en/main/route/error-element */ errorElement?: JSX.Element; /** * See https://reactrouter.com/en/main/route/should-revalidate */ shouldRevalidate?: ShouldRevalidateFunction; }; export {};