import type { SyncFunctionComponent } from '../../../types/SyncFunctionComponent';
import type { TreeListData } from '../../types';
import type { MultipleValue } from '../types';
export type FormatDisableItem = {
    id: string;
    disabledReason?: string;
};
export type TreeItemProps<TValue extends MultipleValue = string[]> = {
    item: TreeListData;
    /**
     * Выбранные значения
     */
    value?: TValue;
    /**
     * Render-props, позволяет более гибко настраивать содержимое item
     */
    renderItem?: SyncFunctionComponent<Omit<TreeListData, 'children'>>;
    /**
     * Уровень вложенности в дереве
     */
    level: number;
    /**
     * Если true, то дерево будет раскрыто по умолчанию при монтировании
     * @default false
     */
    isInitialExpanded?: boolean;
    /**
     * Уровень раскрытия дерева по умолчанию, при isExpanded=true
     */
    expandedLevel: number;
    /**
     * Список `value` элементов дерева, которые не доступны для взаимодействия
     */
    disabledItems?: FormatDisableItem[];
    /**
     * Функция, которая запускается при выборе item
     */
    onChange: (value: TValue) => void;
    /**
     *  Переключает компонент в режим работы с объектами а не с id элементов
     */
    isObjectMode?: boolean;
};
