expo-router
Version:
Expo Router is a file-based router for React Native and web applications.
69 lines (68 loc) • 2.97 kB
TypeScript
import { type NavigationAction, type NavigationState, type ParamListBase, type Router } from '../routers';
import { type NavigationHelpers, PrivateValueStore } from './types';
import type { NavigationEventEmitter } from './useEventEmitter';
type Options<State extends NavigationState, Action extends NavigationAction> = {
id: string | undefined;
handleAction: (action: NavigationAction) => void;
state: State;
emitter: NavigationEventEmitter<any>;
router: Router<State, Action>;
};
/**
* Navigation object with helper methods to be used by a navigator.
* This object includes methods for common actions as well as methods from the parent screen's navigation object.
*/
export declare function useNavigationHelpers<State extends NavigationState, ActionHelpers extends Record<string, () => void>, Action extends NavigationAction, EventMap extends Record<string, any>>({ id: navigatorId, handleAction, state, emitter, router }: Options<State, Action>): {
dispatch(action: NavigationAction): void;
dispatchSync(action: NavigationAction): void;
navigate<RouteName extends string>(...args: RouteName extends unknown ? [screen: RouteName, params?: object | undefined, options?: {
merge?: boolean;
pop?: boolean;
} | undefined] : never): void;
navigate<RouteName extends string>(options: RouteName extends unknown ? {
name: RouteName;
params: object | undefined;
path?: string;
merge?: boolean;
pop?: boolean;
} : never): void;
preload<RouteName extends string>(...args: RouteName extends unknown ? [screen: RouteName, params?: object | undefined] : never): void;
reset(state: Readonly<{
key: string;
routeKeySeq: number;
index: number;
routeNames: string[];
history?: unknown[];
routes: import("..").NavigationRoute<ParamListBase, string>[];
type?: string;
stale: false;
}> | import("..").PartialState<Readonly<{
key: string;
routeKeySeq: number;
index: number;
routeNames: string[];
history?: unknown[];
routes: import("..").NavigationRoute<ParamListBase, string>[];
type?: string;
stale: false;
}>>): void;
goBack(): void;
isFocused(): boolean;
canGoBack(): boolean;
getId(): string | undefined;
getParent<T = NavigationHelpers<ParamListBase, {}> | undefined>(id?: string): T;
getState(): Readonly<{
key: string;
routeKeySeq: number;
index: number;
routeNames: string[];
history?: unknown[];
routes: import("..").NavigationRoute<ParamListBase, string>[];
type?: string;
stale: false;
}>;
} & PrivateValueStore<[ParamListBase, unknown, unknown]> & import("./types").EventEmitter<EventMap> & {
setParams(params: Partial<object | undefined>): void;
replaceParams(params: object | undefined): void;
} & ActionHelpers;
export {};