import type { CSSProperties, HTMLAttributes, ReactElement, ReactNode, SyntheticEvent } from 'react';
import type { BadgeColor } from '../Badge';
export type TagColor = 'default' | 'primary' | 'error' | 'grey' | 'success' | 'warning';
export type TagVariant = 'contained' | 'light' | 'text';
export type TagSize = 'small' | 'medium' | 'large';
export type TagState = 'default' | 'hover' | 'active';
export type TagAddonProps = {
    color?: BadgeColor;
};
export type TagAddon = (props: TagAddonProps) => ReactElement | null;
export type TagProps = {
    /**
     * Если true, то элемент будет не доступен для взаимодействия
     */
    disabled?: boolean;
    /**
     * Содержимое компонента
     */
    label?: ReactNode;
    /**
     * Иконка слева от label
     */
    icon?: ReactElement;
    /**
     * Название класса, применяется к корневому компоненту.
     */
    className?: string;
    /**
     * Функция вызываемая на нажатие иконки удаления
     *
     * Если параметр передан, то в компоненте отображается кнопка удаления.
     */
    onDelete?: (event: SyntheticEvent) => void;
    /**
     * Цвет тега
     */
    color?: TagColor;
    /**
     * Тип тега
     */
    variant?: TagVariant;
    /**
     * Размер тега
     */
    size?: TagSize;
    /**
     * Контент слева от label
     */
    startAddon?: TagAddon;
    /**
     * Контент справа от label
     */
    endAddon?: TagAddon;
    /**
     * Стили компонента
     */
    style?: CSSProperties;
} & HTMLAttributes<HTMLDivElement>;
