import { SVGAttributes } from 'react'; import { LogoProps, LogoName } from '../Assets/Logos/system/types'; import { FlagName, FlagProps } from '../Assets/Flags/system/types'; import { PaymentProps, PaymentName } from '../Assets/Payments/system/types'; import { AssetSize } from '../../types'; import { ICON_NAMES } from './IconCommon'; export type IconState = 'default' | 'success' | 'warning' | 'danger' | 'info'; export type IconName = (typeof ICON_NAMES)[number]; export interface IconProps extends SVGAttributes { /** The name of the icon to display */ name: IconName; /** The color of the icon */ color?: string; /** The size of the icon */ size?: AssetSize; /** The visual state of the icon */ state?: IconState; } type NoThemeType = { theme?: never; }; type NoColorType = { color?: never; }; export type ImageName = IconName | LogoName | FlagName | PaymentName; export type ImageType = ((Omit & NoThemeType) | (Omit & NoColorType) | (Omit & NoThemeType & NoColorType) | (Omit & NoThemeType & NoColorType)) & { name: ImageName; }; export {};