import { FontStyleTypeModel, ThemeTypesModel } from '../../Themes/theme_types'; import { Color } from '../../types'; type availableColors = Color.green | Color.blue | Color.dark; interface HeaderProp { customDarkLogo?: string; customLightLogo?: string; color?: availableColors; projectName?: string; customClass?: string; isResponsive?: boolean; customLogoWidth?: string; customLogoHeight?: string; isInverse?: boolean; theme?: ThemeTypesModel; width?: 'fixed' | 'full'; responsivePriority?: string[]; userProfileData?: userProfileData; navigationMenu?: NavigationMenuItem[]; quickActions?: QuickAction[]; searchCallback?: (val: string) => void; } interface userProfileData { user: { username: string; initials: string; userInfo: string; photoURL?: string; }; className?: string; navigation: userProfileNavItem[]; } interface userProfileNavItem { isDisabled: boolean; label: string; value: string; onSelectedItem?: () => void; } interface NavigationMenuItem { title: string; isActive: boolean; ariaLabel: string; onClick: () => void; } interface QuickAction { title: string; icon: string; isActive: boolean; ariaLabel: string; click?: () => void; } interface MobMenuContextWrapperProps { styled: ModelView; isInverse?: boolean; } interface ActionColor { default: { backgroundColor: string; color: string; }; hover: { backgroundColor: string; color: string; }; pressed: { backgroundColor: string; color: string; }; } interface ModelView { style: { header: { default: { backgroundColor: string; }; inversed: { backgroundColor: string; }; }; actionBTN: { colors: { white: ActionColor; black: ActionColor; blue: ActionColor; green: ActionColor; }; }; projectName: { default: { color: string; }; inversed: { color: string; }; }; }; size: { actionBTN: { text: { paddingLeft: number; paddingRight: number; font: FontStyleTypeModel; }; icon: { width: number; height: number; }; }; projectName: { font: FontStyleTypeModel; }; }; } interface WidthWrapperProps { widthType: 'fixed' | 'full'; } interface HeaderContainerProps { styled: ModelView; type: 'inversed' | 'default'; } interface LogoProps { hide: boolean; } interface ProjectNameProps { showDivider: boolean; hide: boolean; type: 'inversed' | 'default'; styled: ModelView; } interface NavigationProps { hide: boolean; } interface SearchContainerProps { hide: boolean; rightOffset: boolean; } interface HeaderActionsProps { hide: boolean; } export type { availableColors, QuickAction, NavigationMenuItem, HeaderProp, userProfileData, ModelView, MobMenuContextWrapperProps, LogoProps, ProjectNameProps, WidthWrapperProps, NavigationProps, SearchContainerProps, HeaderActionsProps, HeaderContainerProps, };