import { DefaultNavigatorOptions, ParamListBase, TabActionHelpers, TabNavigationState, TabRouterOptions } from '@react-navigation/native'; import { PropsWithChildren } from 'react'; import { ViewProps } from 'react-native'; import { ExpoTabsScreenOptions, TabNavigationEventMap, TabsContextValue } from './TabContext'; import { ScreenTrigger } from './common'; export * from './TabContext'; export * from './TabList'; export * from './TabSlot'; export * from './TabTrigger'; export { ExpoTabsResetValue } from './TabRouter'; /** * Options to provide to the Tab Router. */ export type UseTabsOptions = Omit, ExpoTabsScreenOptions, TabNavigationEventMap, any>, 'children'> & { backBehavior?: TabRouterOptions['backBehavior']; }; export type TabsProps = ViewProps & { /** Forward props to child component and removes the extra ``. Useful for custom wrappers. */ asChild?: boolean; options?: UseTabsOptions; }; /** * Root component for the headless tabs. * * @see [`useTabsWithChildren`](#usetabswithchildrenoptions) for a hook version of this component. * @example * ```tsx * * * * * * * ``` */ export declare function Tabs(props: TabsProps): import("react").JSX.Element; export type UseTabsWithChildrenOptions = PropsWithChildren; export type UseTabsWithTriggersOptions = UseTabsOptions & { triggers: ScreenTrigger[]; }; /** * Hook version of `Tabs`. The returned NavigationContent component * should be rendered. Using the hook requires using the `` * and `` components exported from Expo Router. * * The `useTabsWithTriggers()` hook can be used for custom components. * * @see [`Tabs`](#tabs) for the component version of this hook. * @example * ```tsx * export function MyTabs({ children }) { * const { NavigationContent } = useTabsWithChildren({ children }) * * return * } * ``` */ export declare function useTabsWithChildren(options: UseTabsWithChildrenOptions): { state: TabNavigationState; navigation: { dispatch(action: Readonly<{ type: string; payload?: object; source?: string; target?: string; }> | ((state: Readonly[]; type: string; stale: false; }>>) => 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: Readonly<{ key: string; index: number; routeNames: string[]; history?: unknown[]; routes: import("@react-navigation/native").NavigationRoute[]; type: string; stale: false; }> | import("@react-navigation/native").PartialState[]; type: string; stale: false; }>>): void; goBack(): void; isFocused(): boolean; canGoBack(): boolean; getId(): string | undefined; getParent | undefined>(id?: string): T; getState(): Readonly<{ key: string; index: number; routeNames: string[]; history?: unknown[]; routes: import("@react-navigation/native").NavigationRoute[]; type: string; stale: false; }>; } & import("@react-navigation/native").PrivateValueStore<[ParamListBase, unknown, unknown]> & import("@react-navigation/native").EventEmitter & { setParams(params: Partial): void; replaceParams(params: object | undefined): void; } & TabActionHelpers; describe: (route: import("@react-navigation/native").RouteProp, placeholder: boolean) => import("@react-navigation/native").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: TabNavigationState | import("@react-navigation/native").PartialState>): void; goBack(): void; isFocused(): boolean; canGoBack(): boolean; getId(): string | undefined; getParent | undefined>(id?: string): T; getState(): TabNavigationState; } & import("@react-navigation/native").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("@react-navigation/native").EventConsumer>> & import("@react-navigation/native").PrivateValueStore<[ParamListBase, string, TabNavigationEventMap]> & TabActionHelpers, import("@react-navigation/native").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: TabNavigationState | import("@react-navigation/native").PartialState>): void; goBack(): void; isFocused(): boolean; canGoBack(): boolean; getId(): string | undefined; getParent | undefined>(id?: string): T; getState(): TabNavigationState; } & import("@react-navigation/native").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("@react-navigation/native").EventConsumer>> & import("@react-navigation/native").PrivateValueStore<[ParamListBase, string, TabNavigationEventMap]> & TabActionHelpers, import("@react-navigation/native").RouteProp>>; NavigationContent: ({ children }: { children: React.ReactNode; }) => import("react/jsx-runtime").JSX.Element; }; /** * Alternative hook version of `Tabs` that uses explicit triggers * instead of `children`. * * @see [`Tabs`](#tabs) for the component version of this hook. * @example * ```tsx * export function MyTabs({ children }) { * const { NavigationContent } = useTabsWithChildren({ triggers: [] }) * * return * } * ``` */ export declare function useTabsWithTriggers(options: UseTabsWithTriggersOptions): TabsContextValue; //# sourceMappingURL=Tabs.d.ts.map