import { Spec, Specs } from '../../types';
import { IO } from '../../types/IO';
export declare const SEPARATOR = "/";
export declare const LINK_SEPARATOR = "_";
export declare const INPUT = "input";
export declare const OUTPUT = "output";
export declare const I = "i";
export declare const O = "o";
export declare const MERGE = "@";
export declare const DATA = "#";
export declare const TYPE = "$";
export declare const EXTERNAL = "%";
export declare const INTERNAL = "^";
export declare const ERR = "!";
export declare const idRegex: RegExp;
export declare const nodeIdRegex: RegExp;
export declare const unitIdRegex: RegExp;
export declare const pinIdRegex: RegExp;
export declare const inputIdRegex: RegExp;
export declare const outputIdRegex: RegExp;
export declare const dataRegex: RegExp;
export declare const metadataRegex: RegExp;
export declare const mergeRegex: RegExp;
export declare const externalRegex: RegExp;
export declare const internalRegex: RegExp;
export declare const linkRegex: RegExp;
export declare function getDatumNodeIdFromDatumLinkId(linkId: string): string;
export declare function getTypeFromLinkPinNodeId(linkPinNodeId: string): IO;
export declare function getPinIdFromLinkPinNodeId(nodeId: string): string;
export declare function getIdFromDatumNodeId(nodeId: string): string;
export declare function getPinIdClass(pinNodeId: string): string;
export declare const getPinNodeId: (unitId: string, type: IO, pinId: string) => string;
export declare const getPinNodeId_: (unitId: string) => ((type: IO, pinId: string) => string);
export declare const getPinNodeId__: (unitId: string, type: IO) => ((pinId: string) => string);
export declare function getInputNodeId(unitId: string, pinId: string): string;
export declare function getOutputNodeId(unitId: string, pinId: string): string;
export declare function getSelfPinNodeId(unitId: string): string;
export declare function getLinkId(source: string, targetId: string): string;
export declare function getPinLinkId(unitId: string, type: IO, pinId: string): string;
export declare function getPinLinkIdFromPinNodeId(pinNodeId: string): string;
export declare function isNodeId(text: string): boolean;
export declare function isInternalNodeId(nodeId: string): boolean;
export declare function isOutputPinId(nodeId: string): boolean;
export declare function isUnitNodeId(nodeId: string): boolean;
export declare function isPinId(nodeId: string): boolean;
export declare function getUnitIdFromNodeId(nodeId: string): string;
export declare function isLinkId(linkId: string): boolean;
export declare function isPinLinkId(linkId: string): boolean;
export declare function isDatumLinkId(linkId: string): boolean;
export declare function isMetaLinkId(linkId: string): boolean;
export declare function isExternalLinkId(linkId: string): boolean;
export declare function getErrNodeId(unit_id: string): string;
export declare function segmentErrNodeId(errNodeId: string): {
    unitId: string;
};
export declare function segmentLinkPinNodeId(pinNodeId: string): {
    unitId: string;
    pinId: string;
    type: IO;
};
export declare function segmentLinkId(linkId: string): {
    source: string;
    target: string;
};
export declare function segmentPinLinkId(linkId: string): {
    unitId: string;
    pinNodeId: string;
};
export declare function segmentDatumLinkId(linkId: string): {
    datumNodeId: string;
    pinNodeId: string;
};
export declare function segmentMetaLinkId(linkId: string): {
    nodeId: string;
    metadataNodeId: string;
};
export declare function segmentExternalLinkId(linkId: string): {
    externalNodeId: string;
    nodeId: string;
};
export declare function getPinNodeIdFromPinLinkId(linkId: string): string;
export declare function getUnitIdFromPinLinkId(linkId: string): string;
export declare function isInputPinId(nodeId: string): boolean;
export declare function isPinNodeId(nodeId: string): boolean;
export declare function isLinkPinNodeId(nodeId: string): boolean;
export declare function isErrPinId(pinNodeId: string): boolean;
export declare function segmentCount(path: string): number;
export declare function getSelectionId(nodeId: string, type: string): string;
export declare function sameUnit(pinId0: string, pinId1: string): boolean;
export declare function getDatumNodeId(nodeId: string): string;
export declare function isDatumNodeId(nodeId: string): boolean;
export declare function segmentDatumNodeId(datumNodeId: string): {
    datumId: string;
};
export declare function getMetadataNodeId(nodeId: string, name: string): string;
export declare function getTypeNodeId(nodeId: string): string;
export declare function isMetadataNodeId(nodeId: string): boolean;
export declare function segmentMetadataId(metadataNodeId: string): {
    nodeId: string;
    id: string;
};
export declare function getMergeNodeId(mergeId: string): string;
export declare function isMergeNodeId(nodeId: string): boolean;
export declare function segmentMergeNodeId(mergeNodeId: string): {
    mergeId: string;
};
export declare function getIdFromMergeNodeId(mergeNodeId: string): string;
export declare function getExtNodeId(type: IO, pinId: string, subPinId: string): string;
export declare function getExtNodeIdFromIntNodeId(intNodeId: string): string;
export declare function getIntNodeIdFromExtNodeId(ext_node_id: string): string;
export declare function getIntNodeId(type: IO, pinId: string, subPinId: string): string;
export declare function isExternalNodeId(pinId: string): boolean;
export declare function segmentPlugNodeId(exposedNodeId: string): {
    pinId: string;
    type: IO;
    subPinId: string;
};
export declare function segmentInternalNodeId(internalNodeId: string): {
    pinId: string;
    type: IO;
    subPinId: string;
};
export declare const rangeArray: (n: number) => number[];
export declare const harmonicArray: (n: number) => number[];
export declare function isBaseSpecId(specs: Specs, id: string): boolean;
export declare function isBaseSpec(spec: Spec): boolean;
export declare const numberOrDefault: (n: any, def: number) => number;
export declare function kebabToCamel(str: string): string;
export declare function camelToKebab(str: string): string;
export declare function camelToSnake(str: string): string;
export declare function snakeToCamel(str: string): string;
export declare function camelToDashed(str: string): string;
export declare function kebabCase(str: string): string;
