import { ThemeTypesModel } from '../../Themes/theme_types'; import { Color, Size, stickerOptions } from '../../types'; type availableSize = Size.s | Size.m | Size.l; type availableColor = Color.green | Color.dark | Color.blue; interface HorizontalTabGroupProps { tabItems: TabItemProps[]; tabActive: string; size?: availableSize; color?: availableColor; highlight?: 'fill' | 'border'; nameDropCollector?: string; isResponsive?: boolean; ariaLabel?: string; theme?: ThemeTypesModel; stickerOptions?: stickerOptions; className?: string; isInverse?: boolean; isDisabled?: boolean; onTabChanged?: (obj: tabCore) => void; } interface tabCore { id: string; label: string; } interface tabData { id: string; label: string; icon?: string; counter?: string; isDisabled?: boolean; className?: string; } interface TabItemProps extends tabData { nestedItems?: tabData[]; } interface ContainerProps { visibilityState?: boolean; theme: ThemeTypesModel; styled: ModelView; dayTime: 'day' | 'night'; } interface ItemWrapperProps { theme: ThemeTypesModel; restTab: boolean; styled: ModelView; size: availableSize; } interface sizeParams { tabItem: { marginRight: number; }; } interface ModelView { style: { day: { borderColor: string; }; night: { borderColor: string; }; }; size: { s: sizeParams; m: sizeParams; l: sizeParams; }; } export type { tabCore, tabData, TabItemProps, HorizontalTabGroupProps, ModelView, ItemWrapperProps, ContainerProps, stickerOptions, };