import type { ChangeEvent, ReactElement, ReactNode } from 'react';
export type ChipStatus = 'success' | 'warning' | 'error';
/**
 * Пропсы `Chip`.
 *
 * Тип скрытого поля (`radio` или `checkbox`) задаётся через `ChipProvider` (`mode`).
 * Без провайдера используется `single`.
 */
export type ChipProps = {
    /**
     * Содержимое компонента
     */
    label?: ReactNode;
    /**
     * Размер компонента
     */
    size?: 'small' | 'medium' | 'large';
    /**
     * Статус компонента. Заменяет параметр `icon`
     */
    status?: ChipStatus;
    /**
     * Иконка слева от `label`
     */
    icon?: ReactElement;
    /**
     * Название класса, применяется к корневому компоненту.
     */
    className?: string;
    /**
     * Если `true`, компонент будет недоступен для взаимодействия
     */
    isDisabled?: boolean;
    /**
     * Если `true`, компонент отображается в выбранном состоянии
     */
    isSelected?: boolean;
    /**
     * Число счетчика справа от `label`. Заменяет параметр `endAdornment`
     */
    counter?: number;
    /**
     * Максимальное число которое отобразится в счетчике
     */
    maxCount?: number;
    /**
     * Элемент, который добавляется в конец компонента
     */
    endAdornment?: ReactNode;
    /**
     * Обработчик изменения состояния компонента
     */
    onChange?: (event: ChangeEvent<HTMLInputElement>) => void;
    /**
     * Атрибут `name` скрытого `input` (для группы `radio` — одинаковый `name` у всех вариантов).
     * Пробрасывается из `ChipProvider`, если задан там.
     */
    name?: string;
    /**
     * Атрибут `value` скрытого `input` (отметка в группе, отправка формы).
     */
    value?: string | number;
};
