import { GraphPinSpec, GraphSubPinSpec } from '../../types';
import { GraphMergeSpec } from '../../types/GraphMergeSpec';
import { GraphSpec } from '../../types/GraphSpec';
import { GraphUnitSpec } from '../../types/GraphUnitSpec';
import { GraphUnitsSpec } from '../../types/GraphUnitsSpec';
import { IO } from '../../types/IO';
export declare const setName: ({ name }: {
    name: string;
}, spec: GraphSpec) => void;
export declare const addUnit: ({ unitId, unit }: {
    unitId: string;
    unit: GraphUnitSpec;
}, spec: GraphSpec) => void;
export declare const removeUnits: ({ ids }: {
    ids: string[];
}, spec: GraphSpec) => void;
export declare const mergeUnits: ({ units }: {
    units: GraphUnitsSpec;
}, spec: GraphSpec) => void;
export declare const removeUnitExposedTypePins: ({ id, type }: {
    id: string;
    type: IO;
}, spec: GraphSpec) => void;
export declare const removeUnitExposedPins: ({ unitId: id }: {
    unitId: string;
}, spec: GraphSpec) => void;
export declare const removeUnitMerges: ({ unitId }: {
    unitId: string;
}, spec: GraphSpec) => void;
export declare const removeUnit: ({ unitId }: {
    unitId: string;
}, spec: GraphSpec) => void;
export declare const addMerge: ({ mergeId, mergeSpec }: {
    mergeId: string;
    mergeSpec: GraphMergeSpec;
}, spec: GraphSpec) => void;
export declare const addPinToMerge: ({ mergeId, unitId, type, pinId, }: {
    mergeId: string;
    type: IO;
    unitId: string;
    pinId: string;
}, spec: GraphSpec) => void;
export declare const removeMerge: ({ mergeId }: {
    mergeId: string;
}, spec: GraphSpec) => void;
export declare const mergeMerges: ({ a, b }: {
    a: string;
    b: string;
}, spec: GraphSpec) => void;
export declare const _removePinFromMerge: ({ mergeId, unitId, type, pinId, }: {
    mergeId: string;
    type: IO;
    unitId: string;
    pinId: string;
}, spec: GraphSpec) => void;
export declare const removePinFromMerge: ({ mergeId, unitId, type, pinId, }: {
    mergeId: string;
    type: IO;
    unitId: string;
    pinId: string;
}, spec: GraphSpec) => void;
export declare const isPinMerged: (spec: GraphSpec, id: any, unitId: string, type: IO, pinId: string) => boolean;
export declare const coverPinSet: ({ pinId, type }: {
    pinId: string;
    type: IO;
}, spec: GraphSpec) => void;
export declare const coverPin: ({ pinId, type, subPinId, }: {
    pinId: string;
    type: IO;
    subPinId: string;
}, spec: GraphSpec) => void;
export declare const exposePinSet: ({ pinId, type, pinSpec }: {
    pinId: string;
    type: IO;
    pinSpec: GraphPinSpec;
}, spec: GraphSpec) => void;
export declare const setUnitId: ({ unitId, newUnitId, name, }: {
    unitId: string;
    newUnitId: string;
    name: string;
}, spec: GraphSpec) => void;
export declare const exposePin: ({ pinId, type, subPinId, subPinSpec, }: {
    pinId: string;
    type: IO;
    subPinId: string;
    subPinSpec: GraphSubPinSpec;
}, spec: GraphSpec) => void;
export declare const exposeInputSet: ({ pinId, input }: {
    pinId: string;
    input: GraphPinSpec;
}, spec: GraphSpec) => void;
export declare const exposeInput: ({ pinId, subPinId, input, }: {
    pinId: string;
    subPinId: string;
    input: GraphSubPinSpec;
}, spec: GraphSpec) => void;
export declare const plugPin: ({ type, pinId, subPinId, subPinSpec, }: {
    type: IO;
    pinId: string;
    subPinId: string;
    subPinSpec: GraphSubPinSpec;
}, spec: GraphSpec) => void;
export declare const unplugInput: ({ pinId, subPinId, }: {
    pinId: string;
    subPinId: string;
}, spec: GraphSpec) => void;
export declare const unplugOutput: ({ pinId, subPinId, }: {
    pinId: string;
    subPinId: string;
}, spec: GraphSpec) => void;
export declare const unplugPin: ({ type, pinId, subPinId, }: {
    type: IO;
    pinId: string;
    subPinId: string;
}, spec: GraphSpec) => void;
export declare const coverInputSet: ({ pinId }: {
    pinId: string;
}, spec: GraphSpec) => void;
export declare const coverInput: ({ pinId, subPinId, }: {
    pinId: string;
    subPinId: string;
}, spec: GraphSpec) => void;
export declare const exposeOutputSet: ({ pinId, output }: {
    pinId: string;
    output: GraphPinSpec;
}, spec: GraphSpec) => void;
export declare const exposeOutput: ({ pinId, subPinId, output, }: {
    pinId: string;
    subPinId: string;
    output: GraphSubPinSpec;
}, spec: GraphSpec) => void;
export declare const coverOutputSet: ({ pinId }: {
    pinId: string;
}, spec: GraphSpec) => void;
export declare const coverOutput: ({ pinId, subPinId, }: {
    pinId: string;
    subPinId: string;
}, spec: GraphSpec) => void;
export declare const setPinSetId: ({ type, pinId, newId }: {
    type: IO;
    pinId: string;
    newId: string;
}, spec: GraphSpec) => void;
export declare const setPinSetFunctional: ({ type, pinId, functional }: {
    type: IO;
    pinId: string;
    functional: boolean;
}, spec: GraphSpec) => void;
export declare const setPinSetDataType: ({ type, pinId, dataType }: {
    type: IO;
    pinId: string;
    dataType: string;
}, spec: GraphSpec) => void;
export declare const setPinSetRef: ({ type, pinId, ref }: {
    type: IO;
    pinId: string;
    ref: boolean;
}, spec: GraphSpec) => void;
export declare const setUnitInput: ({ id, name, data }: {
    id: string;
    name: string;
    data: string;
}, spec: GraphSpec) => void;
export declare const setUnitOutput: ({ id, name, data }: {
    id: string;
    name: string;
    data: string;
}, spec: GraphSpec) => void;
export declare const setUnitPinData: ({ unitId, type, pinId, data, }: {
    unitId: string;
    type: IO;
    pinId: string;
    data: any;
}, spec: GraphSpec) => void;
export declare const setUnitPinConstant: ({ unitId, type, pinId, constant, }: {
    unitId: string;
    type: IO;
    pinId: string;
    constant: boolean;
}, spec: GraphSpec) => void;
export declare const setUnitPinIgnored: ({ unitId, type, pinId, ignored, }: {
    unitId: string;
    type: IO;
    pinId: string;
    ignored: boolean;
}, spec: GraphSpec) => GraphSpec;
export declare const setUnitOutputIgnored: ({ unitId, pinId, ignored, }: {
    unitId: string;
    pinId: string;
    ignored: boolean;
}, spec: GraphSpec) => void;
export declare const setUnitInputIgnored: ({ unitId, pinId, ignored, }: {
    unitId: string;
    pinId: string;
    ignored: boolean;
}, spec: GraphSpec) => void;
export declare const removeUnitPinData: ({ unitId, type, pinId }: {
    unitId: string;
    type: IO;
    pinId: string;
}, spec: GraphSpec) => void;
export declare const setMetadata: ({ path, value }: {
    path: string[];
    value: any;
}, spec: GraphSpec) => void;
export declare const setUnitMetadata: ({ id, path, value }: {
    id: string;
    path: string[];
    value: any;
}, spec: GraphSpec) => void;
export declare const setUnitSize: ({ unitId, width, height }: {
    unitId: string;
    width: number;
    height: number;
}, spec: GraphSpec) => void;
export declare const setComponentSize: ({ width, height }: {
    width: number;
    height: number;
}, spec: GraphSpec) => void;
export declare const setSubComponentSize: ({ unitId, width, height }: {
    unitId: string;
    width: number;
    height: number;
}, spec: GraphSpec) => void;
export declare const renameUnitPin: ({ unitId, type, pinId, newPinId, }: {
    unitId: string;
    type: IO;
    pinId: string;
    newPinId: string;
}, spec: GraphSpec) => void;
