import * as React from 'react'; import type { NavigationAction, NavigationState, ParamListBase, PartialState, Router } from '../routers'; import { type AddKeyedListener, type AddListener } from './NavigationBuilderContext'; import type { Descriptor, EventMapBase, NavigationHelpers, NavigationProp, RouteConfig, RouteProp } from './types'; import type { NavigationEventEmitter } from './useEventEmitter'; export type ScreenConfigWithParent = { keys: (string | undefined)[]; options: (ScreenOptionsOrCallback | undefined)[] | undefined; layout: ScreenLayout | undefined; props: RouteConfig; }; type ScreenLayout = (props: { route: RouteProp; options: ScreenOptions; navigation: any; theme: ReactNavigation.Theme; children: React.ReactElement; }) => React.ReactElement; type ScreenOptionsOrCallback = ScreenOptions | ((props: { route: RouteProp; navigation: any; theme: ReactNavigation.Theme; }) => ScreenOptions); type Options = { state: State; screens: Record>; navigation: NavigationHelpers; screenOptions: ScreenOptionsOrCallback | undefined; screenLayout: ScreenLayout | undefined; onAction: (action: NavigationAction) => boolean; getState: () => State; setState: (state: State) => void; addListener: AddListener; addKeyedListener: AddKeyedListener; onRouteFocus: (key: string) => void; router: Router; emitter: NavigationEventEmitter; }; /** * Hook to create descriptor objects for the child routes. * * A descriptor object provides 3 things: * - Helper method to render a screen * - Options specified by the screen for the navigator * - Navigation object intended for the route */ export declare function useDescriptors void>, ScreenOptions extends {}, EventMap extends EventMapBase>({ state, screens, navigation, screenOptions, screenLayout, onAction, getState, setState, addListener, addKeyedListener, onRouteFocus, router, emitter, }: Options): { describe: (route: RouteProp, placeholder: boolean) => Descriptor | ((state: Readonly) => Readonly<{ type: string; payload?: object; source?: string; target?: string; }>)): void; navigate(...args: RouteName extends unknown ? [screen: RouteName, params?: object | undefined, options?: { merge?: boolean; pop?: boolean; } | undefined] : never): void; navigate(options: RouteName extends unknown ? { name: RouteName; params: object | undefined; path?: string; merge?: boolean; pop?: boolean; } : never): void; navigateDeprecated(...args: RouteName extends unknown ? [screen: RouteName, params?: object | undefined] : never): void; navigateDeprecated(options: RouteName extends unknown ? { name: RouteName; params: object | undefined; merge?: boolean; } : never): void; preload(...args: RouteName extends unknown ? [screen: RouteName, params?: object | undefined] : never): void; reset(state: State | PartialState): void; goBack(): void; isFocused(): boolean; canGoBack(): boolean; getId(): string | undefined; getParent | undefined>(id?: string): T; getState(): State; } & import("./types").PrivateValueStore<[ParamListBase, unknown, unknown]>, "getParent"> & { getParent[]; type: string; stale: false; }>, {}, {}> | undefined>(id?: string | undefined): T; setOptions(options: Partial): void; } & { setParams(params: Partial): void; replaceParams(params: object | undefined): void; } & import("./types").EventConsumer> & import("./types").PrivateValueStore<[ParamListBase, string, EventMap]> & ActionHelpers, RouteProp>; descriptors: Record | ((state: Readonly) => Readonly<{ type: string; payload?: object; source?: string; target?: string; }>)): void; navigate(...args: RouteName extends unknown ? [screen: RouteName, params?: object | undefined, options?: { merge?: boolean; pop?: boolean; } | undefined] : never): void; navigate(options: RouteName extends unknown ? { name: RouteName; params: object | undefined; path?: string; merge?: boolean; pop?: boolean; } : never): void; navigateDeprecated(...args: RouteName extends unknown ? [screen: RouteName, params?: object | undefined] : never): void; navigateDeprecated(options: RouteName extends unknown ? { name: RouteName; params: object | undefined; merge?: boolean; } : never): void; preload(...args: RouteName extends unknown ? [screen: RouteName, params?: object | undefined] : never): void; reset(state: State | PartialState): void; goBack(): void; isFocused(): boolean; canGoBack(): boolean; getId(): string | undefined; getParent | undefined>(id?: string): T; getState(): State; } & import("./types").PrivateValueStore<[ParamListBase, unknown, unknown]>, "getParent"> & { getParent[]; type: string; stale: false; }>, {}, {}> | undefined>(id?: string | undefined): T; setOptions(options: Partial): void; } & { setParams(params: Partial): void; replaceParams(params: object | undefined): void; } & import("./types").EventConsumer> & import("./types").PrivateValueStore<[ParamListBase, string, EventMap]> & ActionHelpers, RouteProp>>; }; export {}; //# sourceMappingURL=useDescriptors.d.ts.map