import { ThemeTypesModel, FontStyleTypeModel } from '../../Themes/theme_types'; import { Size, Color } from '../../types'; type availableColors = Color.green | Color.dark | Color.blue; type availableSize = Size.s | Size.m | Size.l; type highlightType = 'fill' | 'border'; interface VerticalTabItemProps { size: availableSize; color: availableColors; highlight: highlightType; counter?: string; icon?: string; tabIndex?: number; isInverse?: boolean; label: string; isActive: boolean; allowBorderFocus?: boolean; disabledAll?: boolean; isDisabled?: boolean; className?: string; theme?: ThemeTypesModel; activated: () => void; } interface defaultTheme { fontColor: string; bgColor: string; hover: { fontColor: string; bgColor: string; }; } interface selectedTheme { fill: { fontColor: string; bgColor: string; }; border: { fontColor: string; bgColor: string; }; } interface colorTheme { default: defaultTheme; selected: selectedTheme; } interface dayTheme { green: colorTheme; blue: colorTheme; dark: colorTheme; } interface size { button: { paddingTop: number; height: number; paddingLeft: number; paddingRight: number; }; icon: { width: number; height: number; marginRight: number; marginLeft: number; top: number; }; label: { paddingTop: number; }; counter: { top: number; }; font: FontStyleTypeModel; } interface viewModel { style: { day: dayTheme; night: dayTheme; }; size: { s: size; m: size; l: size; }; } interface ContainerProps { disabledAll?: boolean; isDisabled?: boolean; } interface ButtonProps { allowBorderFocus?: boolean; color: availableColors; timeMode: 'night' | 'day'; highlight: highlightType; isActive: boolean; size: availableSize; styled: viewModel; theme: ThemeTypesModel; } export type { viewModel, VerticalTabItemProps, ButtonProps, ContainerProps };