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