import { ReactChild } from 'react';
import 'semantic-ui-css/semantic.min.css';
import { ProvenanceGraph, NodeID, Nodes, ProvenanceNode, StateNode } from '@visdesignlab/provenance-lib-core';
import { HierarchyNode } from 'd3';
import { EventConfig } from '../Utils/EventConfig';
import { BundleMap } from '../Utils/BundleMap';
interface ProvVisProps<T, S extends string, A> {
    graph: ProvenanceGraph<T, S, A>;
    root: NodeID;
    sideOffset?: number;
    current: NodeID;
    nodeMap: Nodes<T, S, A>;
    changeCurrent?: (id: NodeID) => void;
    backboneGutter?: number;
    gutter?: number;
    verticalSpace?: number;
    annotationHeight?: number;
    clusterVerticalSpace?: number;
    regularCircleRadius?: number;
    backboneCircleRadius?: number;
    regularCircleStroke?: number;
    backboneCircleStroke?: number;
    topOffset?: number;
    textSize?: number;
    height?: number;
    width?: number;
    linkWidth?: number;
    duration?: number;
    clusterLabels?: boolean;
    bundleMap?: BundleMap;
    eventConfig?: EventConfig<S>;
    popupContent?: (nodeId: StateNode<T, S, A>) => ReactChild;
    annotationContent?: (nodeId: StateNode<T, S, A>) => ReactChild;
}
export declare type StratifiedMap<T, S, A> = {
    [key: string]: HierarchyNode<ProvenanceNode<T, S, A>>;
};
export declare type StratifiedList<T, S, A> = HierarchyNode<ProvenanceNode<T, S, A>>[];
declare function ProvVis<T, S extends string, A>({ nodeMap, width, height, root, current, changeCurrent, gutter, backboneGutter, verticalSpace, annotationHeight, clusterVerticalSpace, regularCircleRadius, backboneCircleRadius, regularCircleStroke, backboneCircleStroke, sideOffset, topOffset, textSize, linkWidth, duration, clusterLabels, bundleMap, eventConfig, popupContent, annotationContent }: ProvVisProps<T, S, A>): JSX.Element;
export default ProvVis;
