import React from 'react';
import { AddNodePosition, DropPositionInfo, InternalRCNode, RCTreeNode } from './types';
export declare const DEPTH_LEVEL_INDENT = 16;
export declare const defaultIsLeaf: ({ children }: {
    children?: unknown[];
}) => boolean;
type ConvertTreeDataProps<Node> = {
    data: Node[];
    parentPath?: number[];
    isLeaf: (node: Node) => boolean;
};
export declare const convertTreeData: <Node extends RCTreeNode>({ data, isLeaf }: ConvertTreeDataProps<Node>) => InternalRCNode<Node>[];
export declare const getNodeAtPosition: <Node extends RCTreeNode>(treeData: Node[], pos: string) => Node | null;
export declare const getParentPos: (pos: string) => string;
export declare const getDropNodeParent: <Node extends RCTreeNode>(treeData: Node[], dropPositionInfo: DropPositionInfo, dragNodePosition: string) => Node | null;
export declare const changeNodeAtPosition: <Node extends RCTreeNode>(treeData: Node[], pos: string, changeNode: (node: Node) => Node) => Node[];
export declare const removeNodeAtPosition: (treeData: RCTreeNode[], pos: string) => any;
export declare const insertNodeAtPosition: (treeData: RCTreeNode[], pos: string, dropPosition: number, node: RCTreeNode) => any;
export declare const moveNode: (treeData: RCTreeNode[], dragNode: RCTreeNode, dragNodePos: string, dropPositionInfo: DropPositionInfo) => any;
export declare const getExpandedKeys: (nodes?: RCTreeNode[]) => any;
export declare const slideNodePos: (dropNodePos: string, nodePos: string, backward?: boolean) => string;
export declare const getDropNodePosition: (event: React.DragEvent<HTMLDivElement>, dropNode: InternalRCNode, prevDropPositionInfo: any) => {
    pos: string;
    dropPosition: AddNodePosition;
    addToEnd?: undefined;
} | {
    pos: string;
    dropPosition: AddNodePosition;
    addToEnd: boolean;
};
export declare const isDropIndicatorNode: (node: InternalRCNode) => boolean;
export declare const gatherNodeKeys: (node: InternalRCNode) => string[];
type LevelLinesData = Record<string, [boolean[], boolean]>;
export declare const getLevelLinesData: (treeData: RCTreeNode[]) => LevelLinesData;
export declare const getTreeMaxWidth: (data: RCTreeNode[]) => number;
export declare const calcNodeWidth: (depth: number, containerWidth: number) => number;
export {};
