import React, { ReactNode, ElementType, ComponentType } from 'react'; import { BoxProps, SvgIconProps } from '@mui/material'; export interface LabelBaseProps extends BoxProps { /** * Content to be rendered inside Label, alternatively children are used */ label?: ReactNode; } export interface GeneralLabelProps extends LabelBaseProps { type?: 'general'; } export interface SimpleLabelProps extends LabelBaseProps { type: 'simple'; } export type FeatureVariants = 'primary' | 'neutral' | 'secondary' | 'discount' | 'alert' | 'error' | 'info' | 'success' | 'warning'; export interface FeatureLabelProps extends LabelBaseProps { type: 'feature'; variant?: FeatureVariants; } export type SemanticVariants = 'positive' | 'info' | 'warning' | 'alert' | 'error'; export interface SemanticLabelProps extends LabelBaseProps { type: 'semantic'; variant?: SemanticVariants; iconProps?: SvgIconProps; IconComponent?: ComponentType; } export type StatusVariants = 'positive' | 'warning' | 'alert' | 'error' | 'neutral' | 'disabled'; export interface StatusLabelProps extends LabelBaseProps { type: 'status' | 'indicator'; variant?: StatusVariants; dotProps?: BoxProps; labelPlacement?: 'end' | 'start' | 'top' | 'bottom'; } export type CO2Variants = 'A+++' | 'A++' | 'A+' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G'; export interface CO2LabelProps extends LabelBaseProps { type: 'CO2'; variant?: CO2Variants; size?: 'small' | 'large'; labelBoxProps?: BoxProps; labelNextProps?: BoxProps; } export type LabelProps = SimpleLabelProps | FeatureLabelProps | SemanticLabelProps | StatusLabelProps | CO2LabelProps | GeneralLabelProps; export declare const Label: React.FC;