import type { MutableRefObject, RefAttributes } from 'react'; import { UniqueIdentifier } from '@dnd-kit/core'; export declare type TreeItem = { children?: TreeItem[]; id: UniqueIdentifier; collapsed?: boolean; canHaveChildren?: boolean | ((dragItem: FlattenedItem) => boolean); disableSorting?: boolean; } & T; export declare type TreeItems> = TreeItem[]; export declare type TreeItemComponentProps = { item: TreeItem; parent: FlattenedItem | null; childCount?: number; clone?: boolean; ghost?: boolean; collapsed?: boolean; depth: number; disableInteraction?: boolean; disableSelection?: boolean; disableSorting?: boolean; isLast: boolean; isOver: boolean; isOverParent: boolean; manualDrag?: boolean; hideCollapseButton?: boolean; disableCollapseOnItemClick?: boolean; showDragHandle?: boolean; handleProps?: any; indicator?: boolean; indentationWidth: number; style?: React.CSSProperties; className?: string; contentClassName?: string; onCollapse?(): void; onRemove?(): void; wrapperRef?(node: HTMLLIElement): void; }; export declare type TreeItemComponentType = React.FC & RefAttributes>>; export declare type FlattenedItem = { parentId: UniqueIdentifier | null; depth: number; index: number; isLast: boolean; parent: FlattenedItem | null; } & TreeItem; export declare type SensorContext = MutableRefObject<{ items: FlattenedItem[]; offset: number; }>; export declare type ItemChangedReason = { type: 'removed'; item: TreeItem; } | { type: 'dropped'; draggedItem: TreeItem; droppedToParent: TreeItem | null; draggedFromParent: TreeItem | null; } | { type: 'collapsed' | 'expanded'; item: TreeItem; };