import { default as React, ReactNode } from 'react';
import { ArchbaseTreeNode } from './ArchbaseTreeView.types';
export interface ArchbaseTreeViewProps {
    id: string;
    selectable?: boolean;
    color?: string;
    backgroundColor?: string;
    borderColor?: string;
    hoverColor?: string;
    hoverBackgroundColor?: string;
    focusedColor?: string;
    focusedBackgroundColor?: string;
    selectedColor?: string;
    selectedBackgroundColor?: string | 'auto';
    iconColor?: string;
    iconBackgroundColor?: string;
    enableLinks?: boolean;
    highlightSelected?: boolean;
    withBorder?: boolean;
    showTags?: boolean;
    selectChildrenOnParentSelect?: boolean;
    singleSelect?: boolean;
    nodes?: ArchbaseTreeNode[];
    onDoubleClick?: (dataSource: ArchbaseTreeNode[], node: ArchbaseTreeNode) => void;
    onClick?: () => void;
    onFocusedNode?: (node: ArchbaseTreeNode) => void;
    onLoosedFocusNode?: (focused: ArchbaseTreeNode) => void;
    onSelectedNode?: (dataSource: ArchbaseTreeNode[], node: ArchbaseTreeNode, selectedNodes: ArchbaseTreeNode[]) => void;
    onUnSelectedNode?: (dataSource: ArchbaseTreeNode[], node: ArchbaseTreeNode, selectedNodes: ArchbaseTreeNode[]) => void;
    onRemovedNode?: (dataSource: ArchbaseTreeNode[]) => void;
    onLoadDataSource?: (node: ArchbaseTreeNode) => Promise<ArchbaseTreeNode[]>;
    onAddedNode?: (node: ArchbaseTreeNode, dataSource: ArchbaseTreeNode[]) => void;
    onExpandedNode?: (dataSource: ArchbaseTreeNode[], expandedNodes: ArchbaseTreeNode[]) => void;
    onCollapsedNode?: (dataSource: ArchbaseTreeNode[], expandedNodes: ArchbaseTreeNode[]) => void;
    onChangedDataSource?: (dataSource: ArchbaseTreeNode[]) => void;
    dataSource: ArchbaseTreeNode[];
    focusedNode?: ArchbaseTreeNode;
    style?: React.CSSProperties;
    height?: string;
    width?: string;
    customRenderText?: (node: ArchbaseTreeNode) => ReactNode;
    update?: number;
}
export declare const ArchbaseTreeView: React.FC<ArchbaseTreeViewProps>;
