import type { ReactElement, ReactNode } from 'react'; import type { StyleProp, ViewStyle, ViewProps } from 'react-native'; import type { IconName } from '../Icon'; export type BottomNavigationTabType = { key: string; title?: string; icon: IconName; component: ReactNode; testID?: string; /** * Badge to display on the tab icon. */ badge?: { /** The number to display on the badge. */ count: number; /** Maximum number before showing `${max}+`. Defaults to 99. */ max?: number; /** Testing id for the badge wrapper. */ testID?: string; }; }; interface BottomNavigationProps extends ViewProps { /** * Callback which is called on tab press, receiving key of upcoming active Tab. */ onTabPress: (key: string) => void; /** * Whether inactive tabs should be removed and unmounted in React. * Defaults to `false`. */ renderActiveTabOnly?: boolean; /** * Current selected tab key. */ selectedTabKey: string; /** * List of Tabs to be rendered. Each Tab must have an unique key. */ tabs: BottomNavigationTabType[]; /** * Additional style. */ style?: StyleProp; /** * Testing id of the component. */ testID?: string; } declare const BottomNavigation: ({ onTabPress, renderActiveTabOnly, selectedTabKey, tabs, ...nativeProps }: BottomNavigationProps) => ReactElement; export default BottomNavigation;