import React from 'react';
export type TreeNodeData<T> = {
    key: string;
    object: T;
    children?: TreeNodeData<T>[];
    isOpen?: boolean;
};
export type TreeProps<T> = {
    className?: string;
    treeData: TreeNodeData<T>;
    renderNode: TreeNodeProps<T>['renderNode'];
};
/**
 * Component that renders a generic tree.
 * @param treeData - The tree data.
 * @param renderNode - A function that renders a tree node.
 */
export declare function Tree<T>(props: TreeProps<T>): React.ReactElement;
export type TreeNodeProps<T> = {
    treeData: TreeNodeData<T>;
    renderNode: (node: TreeNodeData<T>, isOpen: boolean) => JSX.Element | null;
};
export declare const DatasetNode: ({ node }: {
    node: any;
}) => React.JSX.Element;
export declare const ColumnNode: ({ node }: {
    node: any;
}) => React.JSX.Element;
