import * as React from 'react';
import { EventDataNode, DataNode, Key } from '../rc-components/tree/interface';
import Tree, { TreeProps } from './index';
import ConfigContext, { ConfigContextValue } from '../config-provider/ConfigContext';
export declare type ExpandAction = false | 'click' | 'doubleClick';
export interface DirectoryTreeProps extends TreeProps {
    expandAction?: ExpandAction;
}
export interface DirectoryTreeState {
    expandedKeys?: Key[];
    selectedKeys?: Key[];
}
declare class DirectoryTree extends React.Component<DirectoryTreeProps, DirectoryTreeState> {
    static get contextType(): typeof ConfigContext;
    static defaultProps: {
        showIcon: boolean;
        expandAction: string;
    };
    static getDerivedStateFromProps(nextProps: DirectoryTreeProps): DirectoryTreeState;
    context: ConfigContextValue;
    state: DirectoryTreeState;
    tree: Tree;
    onDebounceExpand: (event: React.MouseEvent<HTMLElement>, node: EventDataNode) => void;
    lastSelectedKey?: string;
    cachedSelectedKeys?: string[];
    constructor(props: DirectoryTreeProps);
    onExpand: (expandedKeys: string[], info: {
        node: EventDataNode;
        expanded: boolean;
        nativeEvent: MouseEvent;
    }) => void;
    onClick: (event: React.MouseEvent<HTMLElement, MouseEvent>, node: EventDataNode) => void;
    onDoubleClick: (event: React.MouseEvent<HTMLElement, MouseEvent>, node: EventDataNode) => void;
    onSelect: (keys: string[], event: {
        event: "select";
        selected: boolean;
        node: any;
        selectedNodes: DataNode[];
        nativeEvent: MouseEvent;
    }) => void;
    setTreeRef: (node: Tree) => void;
    expandFolderNode: (event: React.MouseEvent<HTMLElement, MouseEvent>, node: any) => void;
    getPrefixCls(): string;
    setUncontrolledState: (state: DirectoryTreeState) => void;
    renderDirectoryTree: () => JSX.Element;
    render(): JSX.Element;
}
export default DirectoryTree;
