import React from 'react';
import { DndContext, DropAnimation, PointerSensorOptions } from '@dnd-kit/core';
import { UseSortableArguments } from '@dnd-kit/sortable';
import type { FlattenedItem, ItemChangedReason, TreeItemComponentType, TreeItems } from './types';
export declare type SortableTreeProps<TData extends Record<string, any>, TElement extends HTMLElement> = {
    items: TreeItems<TData>;
    onItemsChanged(items: TreeItems<TData>, reason: ItemChangedReason<TData>): void;
    TreeItemComponent: TreeItemComponentType<TData, TElement>;
    indentationWidth?: number;
    indicator?: boolean;
    pointerSensorOptions?: PointerSensorOptions;
    disableSorting?: boolean;
    dropAnimation?: DropAnimation | null;
    dndContextProps?: React.ComponentProps<typeof DndContext>;
    sortableProps?: Omit<UseSortableArguments, 'id'>;
    keepGhostInPlace?: boolean;
    canRootHaveChildren?: boolean | ((dragItem: FlattenedItem<TData>) => boolean);
};
export declare const dropAnimationDefaultConfig: DropAnimation;
export declare function SortableTree<TreeItemData extends Record<string, any>, TElement extends HTMLElement = HTMLDivElement>({ items, indicator, indentationWidth, onItemsChanged, TreeItemComponent, pointerSensorOptions, disableSorting, dropAnimation, dndContextProps, sortableProps, keepGhostInPlace, canRootHaveChildren, ...rest }: SortableTreeProps<TreeItemData, TElement>): JSX.Element;
