export type IconSize = 8 | 12 | 16 | 18 | 24 | 36 | 48; export type IconType = 'outlined' | 'sharp' | 'rounded'; export type IconColor = 'primary' | 'secondary' | 'tertiary' | 'brand' | 'brand-dark' | 'success' | 'warning' | 'warning-dark' | 'danger' | 'white' | 'inherit'; export type IconBackgroundColor = 'primary' | 'secondary' | 'brand-primary' | 'brand-secondary'; export interface IconSharedProps { /** * Name of material icon * https://fonts.google.com/icons */ name: string; /** * Additional classes to style the icon or its wrapper. * - If `background` is provided, the `className` will be applied to the wrapper element. * - If `background` is not provided, the `className` will be applied directly to the icon element. */ className?: string; /** * Type of icon * It is recommended to only use one type throughout your app * @default outlined */ type?: IconType; /** * Size of the icon * @default 24 */ size?: IconSize; /** * Render a filled variant of the icon * @default false */ filled?: boolean; /** * Which color Icon should be * Use 'positive', 'important' or 'warning' with caution, usually they should not be in application UI * @default primary */ color?: IconColor; /** * Icons label for screen-readers. * If omitted then the icon is hidden for screen-readers. */ label?: string; } export interface IconWithBackgroundProps extends IconSharedProps { /** * Add round background */ background: IconBackgroundColor; display?: 'block'; } export interface IconWithoutBackgroundProps extends IconSharedProps { background?: undefined; /** * Type of display * @default block */ display?: 'block' | 'inline'; } export type IconProps = IconSharedProps & (IconWithBackgroundProps | IconWithoutBackgroundProps); export declare const Icon: import('react').ForwardRefExoticComponent>;