import React from 'react'; import { type StyleProp, View, type ViewStyle } from 'react-native'; import type { ThemeVars } from '@coinbase/cds-common/core/theme'; import { type TabsOptions, type TabValue } from '@coinbase/cds-common/tabs/useTabs'; import { type Rect } from '@coinbase/cds-common/types/Rect'; import type { BoxBaseProps, BoxProps } from '../layout/Box'; import type { HStackProps } from '../layout/HStack'; export declare const tabsSpringConfig: { readonly mass: 0.15; readonly stiffness: 160; readonly damping: 10; readonly overshootClamping: true; }; export type TabsActiveIndicatorProps = { activeTabRect: Rect; } & BoxProps; export type TabComponentProps< TabId extends string = string, TTab extends TabValue = TabValue, > = Omit & { id: TabId; /** * Color when a tab is inactive. */ color?: ThemeVars.Color; /** * Color when a tab is active. */ activeColor?: ThemeVars.Color; style?: StyleProp; }; export type TabComponent< TabId extends string = string, TTab extends TabValue = TabValue, > = React.FC>; export type TabsActiveIndicatorComponent = React.FC; export type TabsBaseProps< TabId extends string = string, TTab extends TabValue = TabValue, > = Omit & Omit, 'tabs'> & Pick, 'color' | 'activeColor'> & { /** The array of tabs data. Each tab may optionally define a custom Component to render. */ tabs: (TTab & { Component?: TabComponent; })[]; /** The default Component to render each tab. */ TabComponent?: TabComponent; /** The default Component to render the tabs active indicator. */ TabsActiveIndicatorComponent?: TabsActiveIndicatorComponent; /** Background color passed to the TabsActiveIndicatorComponent. */ activeBackground?: ThemeVars.Color; /** Optional callback to receive the active tab element. */ onActiveTabElementChange?: (element: View | null) => void; }; export type TabsProps< TabId extends string = string, TTab extends TabValue = TabValue, > = TabsBaseProps & Omit & { /** Custom styles for individual elements of the Tabs component */ styles?: { /** Root container element */ root?: StyleProp; /** Container element wrapping each tab */ tabContainer?: StyleProp; /** Tab element */ tab?: StyleProp; /** Active indicator element */ activeIndicator?: StyleProp; }; }; type TabsFC = = TabValue>( props: TabsProps & { ref?: React.ForwardedRef; }, ) => React.ReactElement; export declare const Tabs: TabsFC; export declare const TabsActiveIndicator: ({ activeTabRect, position, style, testID, ...props }: TabsActiveIndicatorProps) => import('react/jsx-runtime').JSX.Element; export {}; //# sourceMappingURL=Tabs.d.ts.map