import React from 'react' import { ViewStyle, TextStyle, StyleProp, Animated } from 'react-native' declare module 'react-native-material-bottom-navigation-depricated-viewPropTypes' { export interface TabConfig { key: number | string barColor?: string pressColor?: string } export type AnimationDefinition = (progress: Animated.Value) => any export type EasingFunction = (t: number) => number export interface BottomNavigationProps { tabs: { [index: number]: TabConfig } renderTab: ({ tab: TabConfig, isActive: boolean }) => JSX.Element activeTab?: number | string onTabPress?: (newTab: TabConfig, oldTab: TabConfig) => void useLayoutAnimation?: boolean style?: StyleProp viewportHeight?: number } export interface IconTabProps { isActive: boolean style?: StyleProp renderIcon: ({ isActive: boolean }) => JSX.Element renderBadge?: ({ isActive: boolean }) => JSX.Element showBadge?: boolean badgeSlotStyle?: StyleProp animationDuration?: number animationEasing?: EasingFunction iconAnimation?: AnimationDefinition badgeAnimation?: AnimationDefinition } export interface FullTabProps { isActive: boolean style?: StyleProp renderIcon: ({ isActive: boolean }) => JSX.Element renderBadge?: ({ isActive: boolean }) => JSX.Element showBadge?: boolean badgeSlotStyle?: StyleProp label: string labelStyle?: StyleProp animationDuration?: number animationEasing?: EasingFunction iconAnimation?: AnimationDefinition labelAnimation?: AnimationDefinition badgeAnimation?: AnimationDefinition } export interface BadgeProps { children?: JSX.Element | string | number style?: StyleProp textStyle?: StyleProp } export default class BottomNavigation extends React.Component< BottomNavigationProps > {} export class IconTab extends React.Component {} export class FullTab extends React.Component {} export class ShiftingTab extends React.Component {} export class Badge extends React.Component {} }