import { MoveMapping } from '../../Class/Graph/buildMoveMap';
import { Moves } from '../../Class/Graph/buildMoves';
import { Flags, GraphAddMergeData, GraphAddPinToMergeData, GraphAddUnitData, GraphBulkEditData, GraphCoverPinData, GraphCoverPinSetData, GraphCoverUnitPinSetData, GraphExposePinData, GraphExposePinSetData, GraphExposeUnitPinSetData, GraphMoveSubGraphIntoData, GraphMoveSubGraphOutOfData, GraphPlugPinData, GraphRemoveMergeData, GraphRemoveMergeDataData, GraphRemovePinFromMergeData, GraphRemovePlugDataData, GraphRemoveUnitData, GraphRemoveUnitPinDataData, GraphSetComponentSizeData, GraphSetMergeDataData, GraphSetMetadataData, GraphSetPinMetadataData, GraphSetPinSetDefaultIgnoredData, GraphSetPinSetFunctionalData, GraphSetPinSetIdData, GraphSetPlugDataData, GraphSetSubComponentSizeData, GraphSetUnitIdData, GraphSetUnitMetadataData, GraphSetUnitPinDataData, GraphSetUnitPinMetadataData, GraphSetUnitPinSetIdData, GraphSetUnitSizeData, GraphTakeUnitErrData, GraphUnplugPinData } from '../../Class/Graph/interface';
import { Position } from '../../client/util/geometry/types';
import { GraphSubPinSpec, Specs } from '../../types';
import { Action } from '../../types/Action';
import { AllKeys } from '../../types/AllKeys';
import { Dict } from '../../types/Dict';
import { GraphMergeSpec } from '../../types/GraphMergeSpec';
import { GraphMergesSpec } from '../../types/GraphMergesSpec';
import { GraphPinSpec } from '../../types/GraphPinSpec';
import { GraphSpec } from '../../types/GraphSpec';
import { GraphUnitMerges } from '../../types/GraphUnitMerges';
import { GraphUnitPlugs } from '../../types/GraphUnitPlugs';
import { IO } from '../../types/IO';
import { IOOf } from '../../types/IOOf';
import { UnitBundleSpec } from '../../types/UnitBundleSpec';
import { G, GraphSelection } from '../../types/interface/G';
import { U } from '../../types/interface/U';
export declare const ADD_UNIT_SPEC = "addUnitSpec";
export declare const ADD_UNIT = "addUnit";
export declare const REMOVE_UNIT = "removeUnit";
export declare const TAKE_UNIT_ERR = "takeUnitErr";
export declare const ADD_MERGE = "addMerge";
export declare const ADD_PIN_TO_MERGE = "addPinToMerge";
export declare const REMOVE_PIN_FROM_MERGE = "removePinFromMerge";
export declare const REMOVE_MERGE = "removeMerge";
export declare const SET_MERGE_DATA = "setMergeData";
export declare const REMOVE_MERGE_DATA = "removeMergeData";
export declare const REMOVE_MERGES = "removeMerges";
export declare const EXPOSE_PIN = "exposePin";
export declare const EXPOSE_PIN_SET = "exposePinSet";
export declare const COVER_PIN_SET = "coverPinSet";
export declare const COVER_PIN = "coverPin";
export declare const UNPLUG_PIN = "unplugPin";
export declare const PLUG_PIN = "plugPin";
export declare const SET_PLUG_DATA = "setPlugData";
export declare const REMOVE_PLUG_DATA = "removePlugData";
export declare const SET_UNIT_PIN_DATA = "setUnitPinData";
export declare const SET_UNIT_PIN_SET_ID = "setUnitPinSetId";
export declare const REMOVE_UNIT_PIN_DATA = "removeUnitPinData";
export declare const SET_UNIT_PIN_CONSTANT = "setUnitPinConstant";
export declare const SET_UNIT_PIN_IGNORED = "setUnitPinIgnored";
export declare const EXPOSE_UNIT_PIN_SET = "exposeUnitPinSet";
export declare const COVER_UNIT_PIN_SET = "coverUnitPinSet";
export declare const SET_UNIT_ERR = "setUnitErr";
export declare const SET_UNIT_ID = "setUnitId";
export declare const SET_PIN_SET_ID = "setPinSetId";
export declare const SET_PIN_SET_FUNCTIONAL = "setPinSetFunctional";
export declare const SET_PIN_SET_DEFAULT_IGNORED = "setPinSetDefaultIgnored";
export declare const SET_PIN_SET_REF = "setPinSetRef";
export declare const SET_NAME = "setName";
export declare const SET_METADATA = "setMetadata";
export declare const SET_UNIT_METADATA = "setUnitMetadata";
export declare const SET_PIN_METADATA = "setPinMetadata";
export declare const SET_UNIT_PIN_METADATA = "setUnitPinMetadata";
export declare const BULK_EDIT = "bulkEdit";
export declare const EXPAND_UNIT = "expandUnit";
export declare const COLLAPSE_UNITS = "collapseUnits";
export declare const MOVE_SUBGRAPH_INTO = "moveSubgraphInto";
export declare const MOVE_SUBGRAPH_OUT_OF = "moveSubgraphOutOf";
export declare const SET_UNIT_SIZE = "setUnitSize";
export declare const SET_COMPONENT_SIZE = "setComponentSize";
export declare const SET_SUB_COMPONENT_SIZE = "setSubComponentSize";
export declare const wrapAddUnitAction: (data: GraphAddUnitData) => {
    type: string;
    data: GraphAddUnitData;
};
export declare const makeAddUnitAction: (unitId: string, bundle: UnitBundleSpec, merges?: GraphUnitMerges | null, plugs?: GraphUnitPlugs | null, parentId?: string | null | null, parentSlot?: string | null, parentIndex?: number | null, children?: string[] | null, childrenSlot?: Dict<string> | null, position?: Position | null, pinPosition?: IOOf<Dict<Position>> | null, layoutPosition?: Position | null) => {
    type: string;
    data: GraphAddUnitData;
};
export declare const wrapMoveSubgraphIntoData: (data: GraphMoveSubGraphIntoData) => {
    type: string;
    data: import("../../Class/Graph/interface").GraphMoveSubGraphData;
};
export declare const wrapMoveSubgraphOutOfData: (data: GraphMoveSubGraphOutOfData) => {
    type: string;
    data: import("../../Class/Graph/interface").GraphMoveSubGraphData;
};
export declare const makeMoveSubgraphIntoAction: (graphId: string, spec: GraphSpec, selection: GraphSelection, mapping: MoveMapping, moves: Moves) => {
    type: string;
    data: import("../../Class/Graph/interface").GraphMoveSubGraphData;
};
export declare const makeMoveSubgraphOutOfAction: (graphId: string, spec: GraphSpec, selection: GraphSelection, mapping: MoveMapping, moves: Moves) => {
    type: string;
    data: import("../../Class/Graph/interface").GraphMoveSubGraphData;
};
export declare const wrapMakeRemoveUnitAction: (data: GraphRemoveUnitData) => {
    type: string;
    data: GraphRemoveUnitData;
};
export declare const wrapMakeTakeUnitErrAction: (data: GraphTakeUnitErrData) => {
    type: string;
    data: GraphTakeUnitErrData;
};
export declare const makeRemoveUnitAction: (unitId: string, bundle: UnitBundleSpec, merges?: GraphMergesSpec, plugs?: GraphUnitPlugs, parentId?: string | null, parentSlot?: string | null, parentIndex?: number, children?: string[], childrenSlot?: Dict<string>, position?: Position, pinPosition?: IOOf<Dict<Position>>, layoutPosition?: Position) => {
    type: string;
    data: GraphRemoveUnitData;
};
export declare const makeTakeUnitErrAction: (unitId: string) => {
    type: string;
    data: GraphTakeUnitErrData;
};
export declare const wrapExposePinAction: (data: GraphExposePinData) => {
    type: string;
    data: GraphExposePinData;
};
export declare const makeExposePinAction: (type: IO, pinId: string, subPinId: string, subPinSpec: GraphSubPinSpec) => {
    type: string;
    data: GraphExposePinData;
};
export declare const makeSetPinSetIdAction: (type: IO, pinId: string, newPinId: string) => {
    type: string;
    data: GraphSetPinSetIdData;
};
export declare const wrapSetPinSetIdAction: (data: GraphSetPinSetIdData) => {
    type: string;
    data: GraphSetPinSetIdData;
};
export declare const makeSetPinSetFunctionalAction: (type: IO, pinId: string, functional: boolean) => {
    type: string;
    data: GraphSetPinSetFunctionalData;
};
export declare const makeSetUnitIdAction: (unitId: string, newUnitId: string, name: string, lastName: string, specId: string, lastSpecId: string) => {
    type: string;
    data: GraphSetUnitIdData;
};
export declare const wrapSetUnitIdAction: (data: GraphSetUnitIdData) => {
    type: string;
    data: GraphSetUnitIdData;
};
export declare const wrapSetPinSetFunctionalAction: (data: GraphSetPinSetFunctionalData) => {
    type: string;
    data: GraphSetPinSetFunctionalData;
};
export declare const makeSetPinSetDefaultIgnoredAction: (type: IO, pinId: string, defaultIgnored: boolean) => {
    type: string;
    data: GraphSetPinSetDefaultIgnoredData;
};
export declare const wrapSetPinSetDefaultIgnoredAction: (data: GraphSetPinSetDefaultIgnoredData) => {
    type: string;
    data: GraphSetPinSetDefaultIgnoredData;
};
export declare const wrapExposeUnitPinSet: (data: GraphExposeUnitPinSetData) => {
    type: string;
    data: GraphExposeUnitPinSetData;
};
export declare const makeExposeUnitPinSetAction: (unitId: string, type: IO, pinId: string, pinSpec: GraphPinSpec, position?: Position) => {
    type: string;
    data: GraphExposeUnitPinSetData;
};
export declare const wrapExposePinSetAction: (data: GraphExposePinSetData) => {
    type: string;
    data: GraphExposePinSetData;
};
export declare const wrapCoverUnitPinSet: (data: GraphCoverUnitPinSetData) => {
    type: string;
    data: GraphCoverUnitPinSetData;
};
export declare const makeCoverUnitPinSetAction: (unitId: string, type: IO, pinId: string, pinSpec: GraphPinSpec, position?: Position) => {
    type: string;
    data: GraphCoverUnitPinSetData;
};
export declare const makeExposePinSetAction: (type: IO, pinId: string, pinSpec: GraphPinSpec, data?: string, flags?: Flags) => {
    type: string;
    data: GraphExposePinSetData;
};
export declare const wrapCoverPinSetAction: (data: GraphCoverPinSetData) => {
    type: string;
    data: GraphCoverPinSetData;
};
export declare const makeCoverPinSetAction: (type: IO, pinId: string, pinSpec: GraphPinSpec) => {
    type: string;
    data: GraphCoverPinSetData;
};
export declare const wrapPlugPinAction: (data: GraphPlugPinData) => {
    type: string;
    data: GraphPlugPinData;
};
export declare const makePlugPinAction: (type: IO, pinId: string, subPinId: string, subPinSpec: GraphSubPinSpec) => {
    type: string;
    data: GraphPlugPinData;
};
export declare const wrapUnplugPinAction: (data: GraphUnplugPinData) => {
    type: string;
    data: GraphUnplugPinData;
};
export declare const makeUnplugPinAction: (type: IO, pinId: string, subPinId: string, subPinSpec: GraphSubPinSpec, take?: boolean) => {
    type: string;
    data: GraphUnplugPinData;
};
export declare const wrapCoverPinAction: (data: GraphCoverPinData) => {
    type: string;
    data: GraphCoverPinData;
};
export declare const makeCoverPinAction: (type: IO, pinId: string, subPinId: string, subPinSpec: GraphSubPinSpec, pinSpec?: GraphPinSpec) => {
    type: string;
    data: GraphCoverPinData;
};
export declare const makeCoverPinOrSetAction: (spec: GraphSpec, type: IO, pinId: string, subPinId: string) => {
    type: string;
    data: GraphCoverPinSetData;
} | {
    type: string;
    data: GraphCoverPinData;
};
export declare const makeSetPlugDataAction: (type: IO, pinId: string, subPinId: string, data: string, lastData: string) => {
    type: string;
    data: GraphSetPlugDataData;
};
export declare const wrapSetPlugDataAction: (data: GraphSetPlugDataData) => {
    type: string;
    data: GraphSetPlugDataData;
};
export declare const makeRemovePlugDataAction: (type: IO, pinId: string, subPinId: string, data: any) => {
    type: string;
    data: GraphSetPlugDataData;
};
export declare const wrapRemovePlugDataAction: (data: GraphRemovePlugDataData) => {
    type: string;
    data: GraphRemovePlugDataData;
};
export declare const wrapSetUnitPinDataAction: (data: GraphSetUnitPinDataData) => {
    type: string;
    data: GraphSetUnitPinDataData;
};
export declare const makeSetUnitPinSetIdAction: (unitId: string, type: IO, pinId: string, newPinId: string) => {
    type: string;
    data: GraphSetUnitPinSetIdData;
};
export declare const wrapSetUnitPinSetIdAction: (data: GraphSetUnitPinSetIdData) => {
    type: string;
    data: GraphSetUnitPinSetIdData;
};
export declare const makeSetUnitPinDataAction: (unitId: string, type: IO, pinId: string, data: any) => {
    type: string;
    data: GraphSetUnitPinDataData;
};
export declare const makeSetUnitPinConstantAction: (unitId: string, type: IO, pinId: string, constant: boolean) => {
    type: string;
    data: {
        unitId: string;
        type: IO;
        pinId: string;
        constant: boolean;
    };
};
export declare const makeSetUnitPinIgnoredAction: (unitId: string, type: IO, pinId: string, ignored: boolean) => {
    type: string;
    data: {
        unitId: string;
        type: IO;
        pinId: string;
        ignored: boolean;
    };
};
export declare const wrapRemoveUnitPinDataAction: (data: GraphRemoveUnitPinDataData) => {
    type: string;
    data: GraphRemoveUnitPinDataData;
};
export declare const makeRemoveUnitPinDataAction: (unitId: string, type: IO, pinId: string, data: string) => {
    type: string;
    data: GraphRemoveUnitPinDataData;
};
export declare const wrapSetUnitMetadataAction: (data: GraphSetUnitMetadataData) => {
    type: string;
    data: GraphSetUnitMetadataData;
};
export declare const makeSetUnitMetadataAction: (unitId: string, path: string[], data: any) => {
    type: string;
    data: GraphSetUnitMetadataData;
};
export declare const wrapSetUnitSizeAction: (data: GraphSetUnitSizeData) => {
    type: string;
    data: GraphSetUnitSizeData;
};
export declare const makeSetUnitSizeAction: (unitId: string, width: number, height: number, prevWidth: number, prevHeight: number) => {
    type: string;
    data: GraphSetUnitSizeData;
};
export declare const makeSetSubComponentSizeAction: (unitId: string, width: number, height: number, prevWidth: number, prevHeight: number) => {
    type: string;
    data: GraphSetSubComponentSizeData;
};
export declare const wrapSetSubComponentSizeAction: (data: GraphSetSubComponentSizeData) => {
    type: string;
    data: GraphSetSubComponentSizeData;
};
export declare const wrapSetComponentSizeAction: (data: GraphSetComponentSizeData) => {
    type: string;
    data: GraphSetComponentSizeData;
};
export declare const makeSetComponentSizeAction: (width: number, height: number, prevWidth: number, prevHeight: number) => {
    type: string;
    data: GraphSetComponentSizeData;
};
export declare const makeSetNameAction: (path: string[], name: string) => {
    type: string;
    data: {
        path: string[];
        name: string;
    };
};
export declare const wrapSetMetadataAction: (data: GraphSetMetadataData) => {
    type: string;
    data: GraphSetMetadataData;
};
export declare const makeSetMetadataAction: (path_: string[], value: any) => {
    type: string;
    data: GraphSetMetadataData;
};
export declare const wrapSetPinMetadataAction: (data: GraphSetPinMetadataData) => {
    type: string;
    data: GraphSetPinMetadataData;
};
export declare const makeSetPinMetadataAction: (type: IO, pinId: string, path_: string[], value: any) => {
    type: string;
    data: GraphSetPinMetadataData;
};
export declare const wrapSetUnitPinMetadataAction: (data: GraphSetUnitPinMetadataData) => {
    type: string;
    data: GraphSetUnitPinMetadataData;
};
export declare const makeSetUnitPinMetadataAction: (unitId: string, type: IO, pinId: string, path_: string[], value: any) => {
    type: string;
    data: GraphSetUnitPinMetadataData;
};
export declare const wrapAddMergeActionData: (data: GraphAddMergeData) => {
    type: string;
    data: GraphAddMergeData;
};
export declare const makeAddMergeAction: (mergeId: string, mergeSpec: GraphMergeSpec, position?: Position | undefined) => Action;
export declare const wrapRemoveMergeActionData: (data: GraphRemoveMergeData) => {
    type: string;
    data: GraphRemoveMergeData;
};
export declare const makeRemoveMergeAction: (mergeId: string, mergeSpec: GraphMergeSpec, position?: Position | undefined) => Action;
export declare const makeSetMergeDataAction: (mergeId: string, data: string) => {
    type: string;
    data: GraphSetMergeDataData;
};
export declare const wrapSetMergeDataAction: (data: GraphSetMergeDataData) => {
    type: string;
    data: GraphSetMergeDataData;
};
export declare const makeRemoveMergeDataAction: (mergeId: string, data: string) => {
    type: string;
    data: GraphRemoveMergeDataData;
};
export declare const wrapRemoveMergeDataAction: (data: GraphRemoveMergeDataData) => {
    type: string;
    data: GraphRemoveMergeDataData;
};
export declare const wrapAddPinToMergeData: (data: GraphAddPinToMergeData) => {
    type: string;
    data: GraphAddPinToMergeData;
};
export declare const makeAddPinToMergeAction: (mergeId: string, unitId: string, type: IO, pinId: string) => Action;
export declare const wrapRemovePinFromMergeData: (data: GraphRemovePinFromMergeData) => {
    type: string;
    data: GraphRemovePinFromMergeData;
};
export declare const makeRemovePinFromMergeAction: (mergeId: string, unitId: string, type: IO, pinId: string) => Action;
export declare const wrapBulkEditData: (data: GraphBulkEditData) => {
    type: string;
    data: GraphBulkEditData;
};
export declare const makeBulkEditAction: (actions: Action[]) => Action;
export declare const processAction: (self: any, action: Action, method: Partial<AllKeys<G & U, Function>>, fallback?: (data: any) => void) => void;
export declare const act: (specs: Specs, spec: GraphSpec, type: string, data: object) => void;
export declare const processActions: (self: any, actions: Action[], method: Partial<AllKeys<G, Function>>, fallback?: (data: any) => void) => void;
export declare const bulkEdit: (spec_: GraphSpec, actions: Action[]) => GraphSpec;
export declare const bulkEdit_: (specs: Specs, spec: GraphSpec, actions: Action[]) => void;
