import React from 'react';
import { PureComponent } from '../component';
import { NodeProps } from './Props';
interface NodeState {
    active: boolean;
    expanded: boolean;
    fetching: boolean;
}
declare class Node<DataItem, Value extends any[]> extends PureComponent<NodeProps<DataItem, Value>, NodeState> {
    element: HTMLDivElement;
    dragImage: HTMLDivElement;
    constructor(props: NodeProps<DataItem, Value>);
    componentWillUnmount(): void;
    setFetching(fetching: boolean): void;
    update(key: keyof NodeState, value: boolean): void;
    bindElement(el: HTMLDivElement): void;
    isLeaf(): boolean;
    handleToggle(): void;
    handleDragStart(event: React.DragEvent): void;
    handleDragOver(e: React.DragEvent<HTMLDivElement>): void;
    handleDragEnd(): void;
    render(): JSX.Element;
}
export default Node;
