import * as React from 'react'; import { ColorValue, StyleProp, TextStyle, ViewStyle, ScrollViewProps } from 'react-native'; import { SharedValue, WithTimingConfig } from 'react-native-reanimated'; import type { TabButtonProps } from '../TabButton'; import type { TabItem, TabValue, OnChange, OnTabPress, RenderTabItem, RenderTabLabel, RenderTabIcon, RenderTabBadge, OnTabLongPress, RenderTabsIndicator } from '../types'; export interface TabsProps { /** * The tab items. */ tabs: TabItem[]; /** * Determines the style of the container. */ style?: StyleProp; /** * The value of the currently selected `Tab`. */ value?: Value; /** * When set to true allows the tab bar to scroll horizontally. * @default false */ scrollable?: boolean; /** * Callback fired when the value changes. */ onChange?: OnChange; /** * Determines the bounces of tab list. */ bounces?: ScrollViewProps['bounces']; /** * Determines the overScrollMode of scroll view. */ overScrollMode?: ScrollViewProps['overScrollMode']; /** * Determines the estimated tab width. * @default 0 */ estimatedTabWidth?: number; /** * The initial window size. It is used to determine the sizes and positions of the tabs and the indicator. * @default Dimensions.get('window').width */ initialLayoutWidth?: number; /** * Background color to be applied when the tab is pressed. */ pressColor?: ColorValue; /** * Opacity to be applied when the tab is pressed. */ pressOpacity?: number; /** * Determines the opacity of disabled. */ disabledOpacity?: number; /** * Determines the tab gap. * @default 0 */ tabGap?: number; /** * Determines the style of the tab. */ tabStyle?: StyleProp; /** * Determines the style of the tab label. */ labelStyle?: StyleProp; /** * Render the custom tab item. */ renderTabItem?: RenderTabItem; /** * Render the tab icon to display. */ renderTabIcon?: RenderTabIcon; /** * Render the tab label to display. */ renderTabLabel?: RenderTabLabel; /** * Render the tab badge to display. */ renderTabBadge?: RenderTabBadge; /** * Callback fired when the tab pressed. */ onTabPress?: OnTabPress; /** * Callback fired when the tab long pressed. */ onTabLongPress?: OnTabLongPress; /** * Animated position value. */ animatedPosition?: SharedValue; /** * @default true */ animationEnabled?: boolean; /** * Determines the animation config of the indicator. */ animationConfig?: WithTimingConfig; /** * Render the tabs indicator to display. */ renderIndicator?: RenderTabsIndicator; /** * Determines the style of the indicator. */ indicatorStyle?: StyleProp; /** * The indicator determines its enabled. * @default true */ indicatorEnabled?: boolean; /** * The component used to render the tabs. */ tabComponent?: React.ComponentType; /** * Determines the style of the `ScrollView` content container. */ contentContainerStyle?: StyleProp; } declare const Tabs: (props: TabsProps) => React.JSX.Element; export default Tabs;