expo-router
Version:
Expo Router is a file-based router for React Native and web applications.
125 lines • 13.3 kB
TypeScript
import { ParamListBase, StackRouter as RNStackRouter, StackNavigationState } from '@react-navigation/native';
import { NativeStackNavigationEventMap, NativeStackNavigationOptions } from '@react-navigation/native-stack';
import { ComponentProps } from 'react';
import { Protected } from '../views/Protected';
declare const RNStack: import("react").ForwardRefExoticComponent<Omit<Omit<import("@react-navigation/native-stack").NativeStackNavigatorProps, "children" | "layout" | "initialRouteName" | "id" | "screenListeners" | "screenOptions" | "screenLayout" | "UNSTABLE_router"> & import("@react-navigation/native").DefaultRouterOptions<string> & {
children: React.ReactNode;
layout?: ((props: {
state: StackNavigationState<ParamListBase>;
navigation: import("@react-navigation/native").NavigationHelpers<ParamListBase, {}>;
descriptors: Record<string, import(" -navigation/native").Descriptor<NativeStackNavigationOptions, import(" -navigation/native").NavigationProp<ParamListBase, string, string | undefined, StackNavigationState<ParamListBase>, NativeStackNavigationOptions, NativeStackNavigationEventMap>, import(" -navigation/native").RouteProp<ParamListBase, string>>>;
children: React.ReactNode;
}) => React.ReactElement) | undefined;
screenListeners?: Partial<{
transitionStart: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionStart", unknown>;
transitionEnd: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionEnd", unknown>;
gestureCancel: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "gestureCancel", unknown>;
sheetDetentChange: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "sheetDetentChange", unknown>;
focus: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "focus", unknown>;
blur: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "blur", unknown>;
state: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "state", unknown>;
beforeRemove: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "beforeRemove", true>;
}> | ((props: {
route: import("@react-navigation/native").RouteProp<ParamListBase, string>;
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<ParamListBase, string, undefined>;
}) => Partial<{
transitionStart: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionStart", unknown>;
transitionEnd: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionEnd", unknown>;
gestureCancel: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "gestureCancel", unknown>;
sheetDetentChange: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "sheetDetentChange", unknown>;
focus: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "focus", unknown>;
blur: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "blur", unknown>;
state: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "state", unknown>;
beforeRemove: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "beforeRemove", true>;
}>) | undefined;
screenOptions?: NativeStackNavigationOptions | ((props: {
route: import("@react-navigation/native").RouteProp<ParamListBase, string>;
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<ParamListBase, string, undefined>;
theme: ReactNavigation.Theme;
}) => NativeStackNavigationOptions) | undefined;
screenLayout?: ((props: {
route: import("@react-navigation/native").RouteProp<ParamListBase, string>;
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<ParamListBase, string, undefined>;
theme: ReactNavigation.Theme;
children: React.ReactElement;
}) => React.ReactElement) | undefined;
UNSTABLE_router?: (<Action extends Readonly<{
type: string;
payload?: object;
source?: string;
target?: string;
}>>(original: import("@react-navigation/native").Router<StackNavigationState<ParamListBase>, Action>) => Partial<import(" -navigation/native").Router<StackNavigationState<ParamListBase>, Action>>) | undefined;
} & {
id?: undefined;
}, "children"> & Partial<Pick<Omit<import(" -navigation/native-stack").NativeStackNavigatorProps, "children" | "layout" | "initialRouteName" | "id" | "screenListeners" | "screenOptions" | "screenLayout" | "UNSTABLE_router"> & import(" -navigation/native").DefaultRouterOptions<string> & {
children: React.ReactNode;
layout?: ((props: {
state: StackNavigationState<ParamListBase>;
navigation: import(" -navigation/native").NavigationHelpers<ParamListBase, {}>;
descriptors: Record<string, import(" -navigation/native").Descriptor<NativeStackNavigationOptions, import(" -navigation/native").NavigationProp<ParamListBase, string, string | undefined, StackNavigationState<ParamListBase>, NativeStackNavigationOptions, NativeStackNavigationEventMap>, import(" -navigation/native").RouteProp<ParamListBase, string>>>;
children: React.ReactNode;
}) => React.ReactElement) | undefined;
screenListeners?: Partial<{
transitionStart: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionStart", unknown>;
transitionEnd: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionEnd", unknown>;
gestureCancel: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "gestureCancel", unknown>;
sheetDetentChange: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "sheetDetentChange", unknown>;
focus: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "focus", unknown>;
blur: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "blur", unknown>;
state: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "state", unknown>;
beforeRemove: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "beforeRemove", true>;
}> | ((props: {
route: import(" -navigation/native").RouteProp<ParamListBase, string>;
navigation: import(" -navigation/native-stack").NativeStackNavigationProp<ParamListBase, string, undefined>;
}) => Partial<{
transitionStart: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionStart", unknown>;
transitionEnd: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionEnd", unknown>;
gestureCancel: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "gestureCancel", unknown>;
sheetDetentChange: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "sheetDetentChange", unknown>;
focus: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "focus", unknown>;
blur: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "blur", unknown>;
state: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "state", unknown>;
beforeRemove: import(" -navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import(" -navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "beforeRemove", true>;
}>) | undefined;
screenOptions?: NativeStackNavigationOptions | ((props: {
route: import("@react-navigation/native").RouteProp<ParamListBase, string>;
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<ParamListBase, string, undefined>;
theme: ReactNavigation.Theme;
}) => NativeStackNavigationOptions) | undefined;
screenLayout?: ((props: {
route: import("@react-navigation/native").RouteProp<ParamListBase, string>;
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<ParamListBase, string, undefined>;
theme: ReactNavigation.Theme;
children: React.ReactElement;
}) => React.ReactElement) | undefined;
UNSTABLE_router?: (<Action extends Readonly<{
type: string;
payload?: object;
source?: string;
target?: string;
}>>(original: import("@react-navigation/native").Router<StackNavigationState<ParamListBase>, Action>) => Partial<import(" -navigation/native").Router<StackNavigationState<ParamListBase>, Action>>) | undefined;
} & {
id?: undefined;
}, "children">> & import("react").RefAttributes<unknown>> & {
Screen: (props: import("../useScreens").ScreenProps<NativeStackNavigationOptions, StackNavigationState<ParamListBase>, NativeStackNavigationEventMap>) => null;
Protected: typeof Protected;
};
/**
* React Navigation matches a screen by its name or a 'getID' function that uniquely identifies a screen.
* When a screen has been uniquely identified, the Stack can only have one instance of that screen.
*
* Expo Router allows for a screen to be matched by name and path params, a 'getID' function or a singular id.
*
* Instead of reimplementing the entire StackRouter, we can override the getStateForAction method to handle the singular screen logic.
*
*/
export declare const stackRouterOverride: NonNullable<ComponentProps<typeof RNStack>['UNSTABLE_router']>;
declare const Stack: ((props: ComponentProps<typeof RNStack>) => import("react").JSX.Element) & {
Screen: (props: ComponentProps<typeof RNStack.Screen> & {
singular?: boolean;
}) => null;
Protected: import("react").FunctionComponent<import("../views/Protected").ProtectedProps>;
};
export default Stack;
export declare const StackRouter: typeof RNStackRouter;
//# sourceMappingURL=StackClient.d.ts.map