import type { ReactNode } from 'react'; import type { ViewProps, StyleProp, TextStyle } from 'react-native'; export interface TabsProps extends ViewProps { active?: number; type?: 'card' | 'line'; align?: 'start' | 'center'; color?: string; background?: string; duration?: number; lineWidth?: number | 'auto'; lineHeight?: number; animated?: boolean; border?: boolean; ellipsis?: boolean; shrink?: boolean; swipeable?: boolean; lazyRender?: boolean; /** 延迟渲染占位符 */ lazyRenderPlaceholder?: React.ReactNode; swipeThreshold?: number; titleActiveColor?: string; titleInactiveColor?: string; beforeChange?: (index: number) => boolean | Promise; onClickTab?: (index: number, disabled: boolean) => void; onChange?: (index: number) => void; } export interface TabPaneProps extends ViewProps { key?: React.Key; index?: number; title: ReactNode | ((active: boolean) => ReactNode); disabled?: boolean; dot?: boolean; badge?: number | string; name?: number | string; titleStyle?: StyleProp; showZeroBadge?: boolean; }