import { GetStylesApi } from '../../core';
import type { TreeDragDropPayload } from './move-tree-node/move-tree-node';
import type { RenderNode, TreeDragState, TreeFactory, TreeNodeData } from './Tree';
import type { TreeController } from './use-tree';
import { TreeAllowDrop } from './use-tree-node-drag-drop';
interface TreeNodeProps {
    node: TreeNodeData;
    getStyles: GetStylesApi<TreeFactory>;
    rootIndex: number | undefined;
    controller: TreeController;
    expandOnClick: boolean | undefined;
    flatValues: string[];
    isSubtree?: boolean;
    level?: number;
    renderNode: RenderNode | undefined;
    selectOnClick: boolean | undefined;
    allowRangeSelection: boolean | undefined;
    expandOnSpace: boolean | undefined;
    checkOnSpace: boolean | undefined;
    keepMounted: boolean | undefined;
    onDragDrop: ((payload: TreeDragDropPayload) => void) | undefined;
    allowDrop: TreeAllowDrop | undefined;
    withDragHandle: boolean | undefined;
    dragStateRef: React.RefObject<TreeDragState>;
    data: TreeNodeData[];
}
export declare function TreeNode({ node, getStyles, rootIndex, controller, expandOnClick, selectOnClick, isSubtree, level, renderNode, flatValues, allowRangeSelection, expandOnSpace, checkOnSpace, keepMounted, onDragDrop, allowDrop, withDragHandle, dragStateRef, data, }: TreeNodeProps): import("react/jsx-runtime").JSX.Element;
export declare namespace TreeNode {
    var displayName: string;
}
export {};
