/// <reference types="lodash" />
import "source-map-support/register";
import { PvjsonEntity, GPMLElement, Pathway, PathwayStarter, PvjsonEntitiesById } from "./gpml2pvjson";
import { GraphIdManager } from "./GraphIdManager";
export declare type GPML_VALUE_SIMPLE = string | number;
export declare type GPML_VALUE_UP_TO_OBJECT = GPML_VALUE_SIMPLE | Record<string, GPML_VALUE_SIMPLE>;
export declare type GPML_VALUE_UP_TO_SUB_OBJECT = GPML_VALUE_UP_TO_OBJECT | Record<string, GPML_VALUE_UP_TO_OBJECT>;
export declare type GPML_VALUE = GPML_VALUE_UP_TO_SUB_OBJECT | GPML_VALUE_UP_TO_SUB_OBJECT[];
export declare class Processor {
    output: {
        pathway: Pathway | PathwayStarter;
        entitiesById: PvjsonEntitiesById;
    };
    graphIdManager: GraphIdManager;
    graphIdsByGraphRef: Record<string, string[]>;
    containedGraphIdsByGroupGraphId: Record<string, string[]>;
    containedGraphIdsByGroupGroupId: Record<string, string[]>;
    promisedGraphIdByGroupId: Record<string, Promise<string>>;
    groupIdToGraphIdStream: Highland.Stream<[string, string]>;
    promisedGPMLElementByGraphId: Record<string, Promise<GPMLElement>>;
    gpmlElementStream: Highland.Stream<GPMLElement>;
    promisedPvjsonEntityLatestByGraphId: Record<string, Promise<PvjsonEntity>>;
    pvjsonEntityLatestStream: Highland.Stream<PvjsonEntity>;
    graphIdToZIndex: Record<string, number>;
    KeyMappings: Record<string, any>;
    KeyValueConverters: Record<string, any>;
    ValueMappings: Record<string, any>;
    ValueConverters: Record<string, any>;
    constructor(KeyMappings: any, KeyValueConverters: any, ValueMappings: any, ValueConverters: any);
    private ensureGraphIdExists;
    fillInGPMLPropertiesFromParent: import("lodash").CurriedFunction2<Record<string, any>, Record<string, any>, Record<string, any>>;
    getPvjsonEntityLatestByGraphId: (graphId: any) => Promise<PvjsonEntity>;
    getGPMLElementByGraphId: (GraphId: any) => Promise<Record<string, any>>;
    preprocessGPMLElement: (gpmlElement: GPMLElement) => GPMLElement;
    processGPMLAndPropertiesAndType: import("lodash").CurriedFunction2<string, any, ({
        fill: string;
        stroke: string;
        drawAs: string;
        gpmlElementName: string;
        id: string;
        kaavioType: string;
        strokeWidth: number;
        height: number;
        padding: number;
        width: number;
        x: number;
        y: number;
        zIndex: number;
        contains: string[];
        type: string[];
    } & {
        strokeStyle?: string;
        cellularComponent?: string;
        xrefIdentifier?: string;
        xrefDataSource?: string;
        strokeDasharray?: string;
        textContent?: string;
        burrs?: string[];
        citations?: string[];
        filters?: string[];
        comments?: import("./gpml2pvjson").Comment[];
    } & Comment) | ({
        fill: string;
        stroke: string;
        drawAs: string;
        gpmlElementName: string;
        id: string;
        kaavioType: string;
        strokeWidth: number;
        height: number;
        padding: number;
        width: number;
        x: number;
        y: number;
        zIndex: number;
        type: string[];
    } & {
        strokeStyle?: string;
        cellularComponent?: string;
        xrefIdentifier?: string;
        xrefDataSource?: string;
        fontWeight?: string;
        isPartOf?: string;
        strokeDasharray?: string;
        textAlign?: string;
        verticalAlign?: string;
        wpType?: string;
        rx?: number;
        ry?: number;
        rotation?: number;
        textRotation?: number;
        burrs?: string[];
        citations?: string[];
        filters?: string[];
        comments?: import("./gpml2pvjson").Comment[];
    } & Comment) | ({
        fill: string;
        stroke: string;
        drawAs: string;
        gpmlElementName: string;
        id: string;
        kaavioType: string;
        strokeWidth: number;
        height: number;
        padding: number;
        width: number;
        x: number;
        y: number;
        zIndex: number;
        type: string[];
        attachmentDisplay: import("./gpml2pvjson").AttachmentDisplay;
    } & {
        xrefIdentifier?: string;
        xrefDataSource?: string;
        strokeDasharray?: string;
        rotation?: number;
        textRotation?: number;
        citations?: string[];
        filters?: string[];
        comments?: import("./gpml2pvjson").Comment[];
    } & {
        isAttachedTo: string;
    } & Comment) | ({
        stroke: string;
        drawAs: string;
        gpmlElementName: string;
        id: string;
        kaavioType: string;
        zIndex: number;
        type: string[];
    } & {
        left?: string;
        right?: string;
        controlled?: string;
        biopaxType?: string;
        controller?: string;
        controlType?: string;
        conversionDirection?: string;
        xrefIdentifier?: string;
        xrefDataSource?: string;
        isPartOf?: string;
        markerEnd?: string;
        markerStart?: string;
        strokeDasharray?: string;
        wpInteractionType?: string;
        burrs?: string[];
        citations?: string[];
        filters?: string[];
        sboInteractionType?: string[];
        participants?: string[];
        comments?: import("./gpml2pvjson").Comment[];
    } & {
        isAttachedTo?: string[];
        points: import("./gpml2pvjson").Point[];
    } & Comment) | ({
        source: string;
        year: string;
        gpmlElementName: string;
        id: string;
        kaavioType: string;
        standardName: string;
        textContent: string;
        authors: string[];
        type: string[];
    } & {
        xrefIdentifier?: string;
        xrefDataSource?: string;
    } & Comment)>;
    processProperties: import("lodash").CurriedFunction1<Record<string, any>, ({
        fill: string;
        stroke: string;
        drawAs: string;
        gpmlElementName: string;
        id: string;
        kaavioType: string;
        strokeWidth: number;
        height: number;
        padding: number;
        width: number;
        x: number;
        y: number;
        zIndex: number;
        contains: string[];
        type: string[];
    } & {
        strokeStyle?: string;
        cellularComponent?: string;
        xrefIdentifier?: string;
        xrefDataSource?: string;
        strokeDasharray?: string;
        textContent?: string;
        burrs?: string[];
        citations?: string[];
        filters?: string[];
        comments?: import("./gpml2pvjson").Comment[];
    } & Comment) | ({
        fill: string;
        stroke: string;
        drawAs: string;
        gpmlElementName: string;
        id: string;
        kaavioType: string;
        strokeWidth: number;
        height: number;
        padding: number;
        width: number;
        x: number;
        y: number;
        zIndex: number;
        type: string[];
    } & {
        strokeStyle?: string;
        cellularComponent?: string;
        xrefIdentifier?: string;
        xrefDataSource?: string;
        fontWeight?: string;
        isPartOf?: string;
        strokeDasharray?: string;
        textAlign?: string;
        verticalAlign?: string;
        wpType?: string;
        rx?: number;
        ry?: number;
        rotation?: number;
        textRotation?: number;
        burrs?: string[];
        citations?: string[];
        filters?: string[];
        comments?: import("./gpml2pvjson").Comment[];
    } & Comment) | ({
        fill: string;
        stroke: string;
        drawAs: string;
        gpmlElementName: string;
        id: string;
        kaavioType: string;
        strokeWidth: number;
        height: number;
        padding: number;
        width: number;
        x: number;
        y: number;
        zIndex: number;
        type: string[];
        attachmentDisplay: import("./gpml2pvjson").AttachmentDisplay;
    } & {
        xrefIdentifier?: string;
        xrefDataSource?: string;
        strokeDasharray?: string;
        rotation?: number;
        textRotation?: number;
        citations?: string[];
        filters?: string[];
        comments?: import("./gpml2pvjson").Comment[];
    } & {
        isAttachedTo: string;
    } & Comment) | ({
        stroke: string;
        drawAs: string;
        gpmlElementName: string;
        id: string;
        kaavioType: string;
        zIndex: number;
        type: string[];
    } & {
        left?: string;
        right?: string;
        controlled?: string;
        biopaxType?: string;
        controller?: string;
        controlType?: string;
        conversionDirection?: string;
        xrefIdentifier?: string;
        xrefDataSource?: string;
        isPartOf?: string;
        markerEnd?: string;
        markerStart?: string;
        strokeDasharray?: string;
        wpInteractionType?: string;
        burrs?: string[];
        citations?: string[];
        filters?: string[];
        sboInteractionType?: string[];
        participants?: string[];
        comments?: import("./gpml2pvjson").Comment[];
    } & {
        isAttachedTo?: string[];
        points: import("./gpml2pvjson").Point[];
    } & Comment) | ({
        source: string;
        year: string;
        gpmlElementName: string;
        id: string;
        kaavioType: string;
        standardName: string;
        textContent: string;
        authors: string[];
        type: string[];
    } & {
        xrefIdentifier?: string;
        xrefDataSource?: string;
    } & Comment)>;
    processPropertiesAndType: import("lodash").CurriedFunction2<string, Record<string, any>, ({
        fill: string;
        stroke: string;
        drawAs: string;
        gpmlElementName: string;
        id: string;
        kaavioType: string;
        strokeWidth: number;
        height: number;
        padding: number;
        width: number;
        x: number;
        y: number;
        zIndex: number;
        contains: string[];
        type: string[];
    } & {
        strokeStyle?: string;
        cellularComponent?: string;
        xrefIdentifier?: string;
        xrefDataSource?: string;
        strokeDasharray?: string;
        textContent?: string;
        burrs?: string[];
        citations?: string[];
        filters?: string[];
        comments?: import("./gpml2pvjson").Comment[];
    } & Comment) | ({
        fill: string;
        stroke: string;
        drawAs: string;
        gpmlElementName: string;
        id: string;
        kaavioType: string;
        strokeWidth: number;
        height: number;
        padding: number;
        width: number;
        x: number;
        y: number;
        zIndex: number;
        type: string[];
    } & {
        strokeStyle?: string;
        cellularComponent?: string;
        xrefIdentifier?: string;
        xrefDataSource?: string;
        fontWeight?: string;
        isPartOf?: string;
        strokeDasharray?: string;
        textAlign?: string;
        verticalAlign?: string;
        wpType?: string;
        rx?: number;
        ry?: number;
        rotation?: number;
        textRotation?: number;
        burrs?: string[];
        citations?: string[];
        filters?: string[];
        comments?: import("./gpml2pvjson").Comment[];
    } & Comment) | ({
        fill: string;
        stroke: string;
        drawAs: string;
        gpmlElementName: string;
        id: string;
        kaavioType: string;
        strokeWidth: number;
        height: number;
        padding: number;
        width: number;
        x: number;
        y: number;
        zIndex: number;
        type: string[];
        attachmentDisplay: import("./gpml2pvjson").AttachmentDisplay;
    } & {
        xrefIdentifier?: string;
        xrefDataSource?: string;
        strokeDasharray?: string;
        rotation?: number;
        textRotation?: number;
        citations?: string[];
        filters?: string[];
        comments?: import("./gpml2pvjson").Comment[];
    } & {
        isAttachedTo: string;
    } & Comment) | ({
        stroke: string;
        drawAs: string;
        gpmlElementName: string;
        id: string;
        kaavioType: string;
        zIndex: number;
        type: string[];
    } & {
        left?: string;
        right?: string;
        controlled?: string;
        biopaxType?: string;
        controller?: string;
        controlType?: string;
        conversionDirection?: string;
        xrefIdentifier?: string;
        xrefDataSource?: string;
        isPartOf?: string;
        markerEnd?: string;
        markerStart?: string;
        strokeDasharray?: string;
        wpInteractionType?: string;
        burrs?: string[];
        citations?: string[];
        filters?: string[];
        sboInteractionType?: string[];
        participants?: string[];
        comments?: import("./gpml2pvjson").Comment[];
    } & {
        isAttachedTo?: string[];
        points: import("./gpml2pvjson").Point[];
    } & Comment) | ({
        source: string;
        year: string;
        gpmlElementName: string;
        id: string;
        kaavioType: string;
        standardName: string;
        textContent: string;
        authors: string[];
        type: string[];
    } & {
        xrefIdentifier?: string;
        xrefDataSource?: string;
    } & Comment)>;
    private processType;
    setPvjsonEntity: (pvjsonEntity: any) => void;
    getGPMLKeyAsJSFunctionName: (gpmlKey: string) => string;
    getPvjsonValue: (gpmlElement: any, gpmlKey: string, gpmlValue: GPML_VALUE) => any;
    processKV: import("lodash").CurriedFunction2<any, [any, any], [string, any][]>;
}
