import * as React from 'react';
import { TreeProps, DtTreeNodeExpandedEvent, DtTreeNodeSelectedEvent, DtTreeNode } from './Tree';
export declare type ExpandAction = false | 'click' | 'doubleClick';
export interface DirectoryTreeProps extends TreeProps {
    expandAction?: ExpandAction;
}
export interface DirectoryTreeState {
    expandedKeys?: string[];
    selectedKeys?: string[];
}
export default class DirectoryTree extends React.Component<DirectoryTreeProps, DirectoryTreeState> {
    static defaultProps: {
        prefixCls: string;
        showIcon: boolean;
        expandAction: string;
    };
    state: DirectoryTreeState;
    onDebounceExpand: (event: React.MouseEvent<HTMLElement>, node: DtTreeNode) => void;
    lastSelectedKey?: string;
    cachedSelectedKeys?: string[];
    constructor(props: DirectoryTreeProps);
    componentWillReceiveProps(nextProps: DirectoryTreeProps): void;
    onExpand: (expandedKeys: string[], info: DtTreeNodeExpandedEvent) => void | PromiseLike<any>;
    onClick: (event: React.MouseEvent<HTMLElement, MouseEvent>, node: DtTreeNode) => void;
    onDoubleClick: (event: React.MouseEvent<HTMLElement, MouseEvent>, node: DtTreeNode) => void;
    onSelect: (keys: string[], event: DtTreeNodeSelectedEvent) => void;
    expandFolderNode: (event: React.MouseEvent<HTMLElement, MouseEvent>, node: DtTreeNode) => void;
    setUncontrolledState: (state: DirectoryTreeState) => void;
    render(): JSX.Element;
}
