import * as React from 'react'; import { StyleProp, ViewStyle, TextStyle } from 'react-native'; import { Props as TabBarItemProps } from './TabBarItem'; import { Props as IndicatorProps } from './TabBarIndicator'; import type { Route, Scene, SceneRendererProps, NavigationState, Layout, Event } from './types'; export declare type Props = SceneRendererProps & { navigationState: NavigationState; scrollEnabled?: boolean; bounces?: boolean; activeColor?: string; inactiveColor?: string; pressColor?: string; pressOpacity?: number; getLabelText: (scene: Scene) => string | undefined; getAccessible: (scene: Scene) => boolean | undefined; getAccessibilityLabel: (scene: Scene) => string | undefined; getTestID: (scene: Scene) => string | undefined; renderLabel?: (scene: Scene & { focused: boolean; color: string; }) => React.ReactNode; renderIcon?: (scene: Scene & { focused: boolean; color: string; }) => React.ReactNode; renderBadge?: (scene: Scene) => React.ReactNode; renderIndicator: (props: IndicatorProps) => React.ReactNode; renderTabBarItem?: (props: TabBarItemProps & { key: string; }) => React.ReactElement; onTabPress?: (scene: Scene & Event) => void; onTabLongPress?: (scene: Scene) => void; tabStyle?: StyleProp; indicatorStyle?: StyleProp; indicatorContainerStyle?: StyleProp; labelStyle?: StyleProp; contentContainerStyle?: StyleProp; style?: StyleProp; }; declare type State = { layout: Layout; tabWidths: { [key: string]: number; }; }; export default class TabBar extends React.Component, State> { static defaultProps: { getLabelText: ({ route }: Scene) => string | undefined; getAccessible: ({ route }: Scene) => boolean; getAccessibilityLabel: ({ route }: Scene) => string | undefined; getTestID: ({ route }: Scene) => string | undefined; renderIndicator: (props: IndicatorProps) => JSX.Element; }; state: State; componentDidUpdate(prevProps: Props, prevState: State): void; private measuredTabWidths; private scrollAmount; private scrollViewRef; private getFlattenedTabWidth; private getComputedTabWidth; private getMaxScrollDistance; private getTabBarWidth; private normalizeScrollValue; private getScrollAmount; private resetScroll; private handleLayout; private getTranslateX; render(): JSX.Element; } export {};