import { ChangeEvent, HTMLAttributes, InputHTMLAttributes, ReactNode } from 'react';
import { QA } from '../common';
import { TooltipProps } from '../Tooltip';
import { CheckboxProps } from '../Checkbox';
/** Значение option */
export type CheckboxTreeOptionValue = string | number;
export type CheckboxTreeOption = {
/** Label */
label: ReactNode;
/** Значение */
value: CheckboxTreeOptionValue;
/** Дочерние option */
childs?: CheckboxTreeOption[];
/** Подпись */
tooltip?: TooltipProps['content'];
} & Omit;
/** Обработчик изменения значения */
export type CheckboxTreeOnChange = (
/** Новое значение */
value: CheckboxTreeOptionValue[],
/** Option на котором произошло событие */
option: T,
/** Событие */
event: ChangeEvent) => void;
export type CheckboxTreeProps = {
/** Option */
options: T[];
/** Выбранные option */
value: CheckboxTreeOptionValue[] | undefined;
/** Обработчик изменения значения */
onChange: CheckboxTreeOnChange;
/** Отключен */
disabled?: boolean;
/** Фокусируемый без редактирования */
readOnly?: boolean;
/** Раскрытые option */
opened?: CheckboxTreeOptionValue[];
/** Обработчие раскрытия option */
toggleOpened?: (value: CheckboxTreeOptionValue) => void;
} & QA & Omit, 'onChange'> & Pick, 'name'>;