import React from 'react';
import { EntityHeader, ProjectHeader } from '../../../utils/synapseTypes';
import { EntityType } from '../../../utils/synapseTypes/EntityType';
import { Map } from 'immutable';
export declare type RootNodeConfiguration = {
    nodeText: string;
    children: (Pick<EntityHeader, 'name' | 'id' | 'type'> | ProjectHeader)[];
};
export declare enum NodeAppearance {
    SELECT = 0,
    BROWSE = 1
}
export declare type TreeNodeProps = {
    entityHeader?: Pick<EntityHeader, 'name' | 'id' | 'type'> | ProjectHeader;
    selected: Map<string, number>;
    setSelectedId: (entityId: string) => void;
    level?: number;
    autoExpand?: (entityId: string) => boolean;
    visibleTypes?: EntityType[];
    appearance: NodeAppearance;
    rootNodeConfiguration?: RootNodeConfiguration;
    selectableTypes: EntityType[];
};
export declare const TreeNode: React.FunctionComponent<TreeNodeProps>;
