import { Edge, Node } from 'reactflow';
import { EntityHeader, Reference } from '@sage-bionetworks/synapse-types';
import { Activity, UsedURL } from '@sage-bionetworks/synapse-types';
import { ProvenanceNodeProps } from './ProvenanceUtils';
/**
 * Is one of the root Entities given by the user
 */
export declare const isRootEntity: (params: {
    entityHeader: EntityHeader;
    rootEntityHeaders?: EntityHeader[];
}) => boolean;
/**
 * Given the node properties, will return true if this node is already in the nodesCopy array.
 */
export declare const isNodeNotFound: (nodeProps: ProvenanceNodeProps, nodesCopy: Node[]) => boolean;
export declare const findEntityNode: (entityHeader: EntityHeader, nodesCopy: Node[]) => Node | undefined;
/**
 * Given the node properties, will return true if this edge is already in the edgesCopy array.
 */
export declare const isEdgeNotFound: (nodeProps1: ProvenanceNodeProps, nodeProps2: ProvenanceNodeProps, edgesCopy: Edge[]) => boolean;
/**
 * Given node properties of the new node and existing node, this function creates and adds a new node to
 * nodesCopy, and creates an edge from the new node to the existing node.  Note, this will only create
 * a new node or edge if these items are not found in the input nodesCopy array and edgesCopy array.
 */
export declare const addNodeAndEdge: (params: {
    newNodeProps: ProvenanceNodeProps;
    existingNodeProps: ProvenanceNodeProps;
    nodesCopy: Node[];
    edgesCopy: Edge[];
}) => void;
export declare const addActivityNode: (params: {
    activity: Activity;
    entityHeader: EntityHeader;
    nodesCopy: Node[];
    edgesCopy: Edge[];
}) => void;
export declare const addExpandNode: (params: {
    entityHeader: EntityHeader;
    itemCount: number | undefined;
    nodesCopy: Node[];
    edgesCopy: Edge[];
}) => void;
export declare const addEntityPlaceholderNode: (params: {
    ref: Reference;
    activity: Activity;
    nodesCopy: Node[];
    edgesCopy: Edge[];
}) => void;
export declare const addUndefinedNode: (params: {
    entityHeader: EntityHeader;
    nodesCopy: Node[];
    edgesCopy: Edge[];
}) => void;
export declare const addExternalNode: (params: {
    usedURL: UsedURL;
    activity: Activity;
    nodesCopy: Node[];
    edgesCopy: Edge[];
}) => void;
export declare const addEntityNode: (params: {
    entityHeader: EntityHeader;
    activity: Activity | undefined;
    nodesCopy: Node[];
    edgesCopy: Edge[];
}) => void;
//# sourceMappingURL=ProvenanceGraphUtils.d.ts.map