import { type ComponentProps, type ElementType, type FunctionComponent, type ReactNode, type SyntheticEvent } from 'react'; import { type TreeListData } from '../types'; export type TreeItemProps = { /** * Название класса, применяется к корневому компоненту. */ className?: string; /** * Уникальный префикс для идентификаторов в рамках дерева */ prefixId?: string; /** * Если true, item выделяется как активный. */ isSelected: boolean; /** * Содержимое, которое будет отображено внутри элемента списка. */ label: ReactNode; /** * Подзаголовок, который будет отображено под элементом списка. */ note?: ReactNode; /** * Render-props, позволяет более гибко настраивать содержимое item */ renderItem?: FunctionComponent>; /** * Содержимое, отображающееся при раскрытии элемента. * При наличии children item будет отображен как родительский элемент. */ children?: ReactNode; /** * Компонент, используемый для корневого узла элемента списка. Либо строка для использования элемента HTML, либо компонент. * @default 'div' */ component?: TComponent; /** * Уровень вложенности в дереве. */ level: number; /** * Если true, то элемент будет не доступен для взаимодействия * @default 'false' */ isDisabled?: boolean; /** * Текст тултипа при заблокированном состоянии элемента дерева */ disableReason?: string; /** * Если true, то список можно будет развернуть даже если установлен `isDisabled=true` * @default 'false' */ isNotBlockingExpandList?: boolean; /** * Если true, то вложенный список будет раскрыт * @default 'false' */ isDefaultExpanded?: boolean; /** * Флаг для переопределения внутреннего состояния открыто/закрыто */ isForceExpanded?: boolean; /** * Функция, которая запускается при нажатии на элемент списка. */ onClick?: (event: SyntheticEvent) => void; } & Omit, ''>; export declare const TreeItem: (props: TreeItemProps) => JSX.Element;