import { Id, Obj } from '../types';
import { NodeType, SortInfo } from '../components/tree';
import { BezierFunc } from './bezier';
import { Customizable, DragDropEvents, Sensors } from '@dnd-kit/abstract';
/**
* 默认提供给@dnd-kit的sensors属性
*/
export declare const defaultSensors: Customizable;
/**
* 组件通用的onDragEnd方法
* @param e 事件
* @param items 传入需要排序的数组
* @param primaryKey 索引用的主键,默认为`id`
* @return 返回新的数组,但如果顺序未改变,会得到null
*/
export declare function onDndDragEnd({ operation }: Parameters['dragend']>[0], items: T[]): T[] | null;
export declare function onDndDragEnd({ operation }: Parameters['dragend']>[0], items: T[], primaryKey?: keyof T): T[] | null;
export declare function arrayMove(array: T[], from: number, to: number): T[];
/**
* 组件通用的onSort方法,注意:该方法会原地修改{@link treeNodes}
* @param info 信息
* @param treeNodes 树节点
* @param primaryKey 索引用的主键,默认为`id`
*/
export declare function onTreeNodeSort, V extends Id = Id>(info: SortInfo, treeNodes: N[], primaryKey?: string): N[];
export declare function edgeBounce(value: number, { allowEdgeBounce, min, max, bounceElementTranslate, bounceDragDistance, bezierFn }: {
allowEdgeBounce: boolean;
min: number;
max: number;
bounceElementTranslate: number;
bounceDragDistance: number;
bezierFn?: BezierFunc;
}): number;