import { type MouseEvent, type RefObject } from 'react';
export type TagValue = string | Record<string, unknown>;
export type TagsListProps<TData extends TagValue = TagValue> = {
    /**
     * Название класса, применяется к корневому компоненту
     */
    className?: string;
    /**
     * Список к отображению
     */
    data?: TData[] | undefined;
    /**
     * Если `true`, то тег будет недоступен для взаимодействия
     */
    isDisabled?: boolean;
    /**
     * Поле, используемое в качестве ключа списка.
     * Если не передано, для генерации ключа будет использоваться getOptionLabel
     */
    keyId?: TData extends string ? never : keyof TData;
    /**
     * Используется для определения строкового значения опции
     */
    getOptionLabel: (value: TData) => string | number;
    onChange: (value: TData[] | undefined) => void;
    /**
     * Функция, вызываемая при клике на тэг
     */
    onClick?: (value: MouseEvent<HTMLDivElement>) => void;
    /**
     * Ref на внешний контейнер, чья ширина используется как база для расчёта доступного пространства..
     */
    inputContainerRef?: RefObject<HTMLElement | null>;
    /**
     * Зарезервированная ширина, которая будет вычтена из доступной ширины при расчете количества отображаемых тегов
     */
    reservedWidth?: number;
};
