xref: /expo/packages/expo-router/build/Route.d.ts (revision 46f023fa)
1import React, { ReactNode } from 'react';
2import type { ErrorBoundaryProps } from './exports';
3import { sortRoutesWithInitial, sortRoutes } from './sortRoutes';
4export type DynamicConvention = {
5    name: string;
6    deep: boolean;
7};
8export type LoadedRoute = {
9    ErrorBoundary?: React.ComponentType<ErrorBoundaryProps>;
10    default?: React.ComponentType<any>;
11    unstable_settings?: Record<string, any>;
12    getNavOptions?: (args: any) => any;
13    generateStaticParams?: (props: {
14        params?: Record<string, string | string[]>;
15    }) => Record<string, string | string[]>[];
16};
17export type RouteNode = {
18    /** Load a route into memory. Returns the exports from a route. */
19    loadRoute: () => Partial<LoadedRoute>;
20    /** Loaded initial route name. */
21    initialRouteName?: string;
22    /** nested routes */
23    children: RouteNode[];
24    /** Is the route a dynamic path */
25    dynamic: null | DynamicConvention[];
26    /** `index`, `error-boundary`, etc. */
27    route: string;
28    /** Context Module ID, used for matching children. */
29    contextKey: string;
30    /** Added in-memory */
31    generated?: boolean;
32    /** Internal screens like the directory or the auto 404 should be marked as internal. */
33    internal?: boolean;
34};
35/** Return the RouteNode at the current contextual boundary. */
36export declare function useRouteNode(): RouteNode | null;
37export declare function useContextKey(): string;
38/** Provides the matching routes and filename to the children. */
39export declare function Route({ children, node }: {
40    children: ReactNode;
41    node: RouteNode;
42}): JSX.Element;
43export { sortRoutesWithInitial, sortRoutes };
44//# sourceMappingURL=Route.d.ts.map