import { ThemeTypesModel, FontStyleTypeModel } from '../../../Themes/theme_types'; import { Color } from '../../../types'; type availableColor = Color.green | Color.blue | Color.dark; interface UploadedItemProps { id: string; name: string; extension: string | undefined; size: number; error?: string; progress: number; successMessage?: string; maxSymbolsName: number; allowBorderFocus?: boolean; theme: ThemeTypesModel; color: availableColor; isInversed: boolean; isDisabled?: boolean; unknownExtensionsIcon?: string; isDownloadable?: boolean; onDownload?: (id: string) => void; onDelete: (id: string) => void; onTryAgain: (id: string) => void; } interface IconExtensionProps { theme: ThemeTypesModel; timeTheme: 'day' | 'night'; styled: ModelView; } interface FileNameProps { theme: ThemeTypesModel; timeTheme: 'day' | 'night'; styled: ModelView; } interface DeleteActionProps { theme: ThemeTypesModel; timeTheme: 'day' | 'night'; styled: ModelView; isDisabled?: boolean; allowBorderFocus?: boolean; } interface ProgressProps { progress: number; isError?: boolean; color: availableColor; theme: ThemeTypesModel; timeTheme: 'day' | 'night'; styled: ModelView; } interface FooterProps { type: 'default' | 'success' | 'error'; theme: ThemeTypesModel; timeTheme: 'day' | 'night'; styled: ModelView; isDivider: boolean; } interface ModelView { style: { day: timePeriod; night: timePeriod; }; size: { fileName: { font: FontStyleTypeModel; }; message: { font: FontStyleTypeModel; }; }; } interface timePeriod { IconExtensionColor: string; DeleteActionColor: string; FileNameColor: string; MainInfoMessageColor: { default: string; error: string; success: string; }; SecondaryInfoMessage: string; green: colorObj; blue: colorObj; dark: colorObj; divider: string; } interface colorObj { progress: { bgColor: string; coverColor: string; }; } export type { UploadedItemProps, ModelView, IconExtensionProps, FileNameProps, DeleteActionProps, ProgressProps, FooterProps, };