import { __spreadArray } from "tslib";
import { registerBehavior, registerCombo, registerEdge, registerNode, Arrow, Marker, Shape } from '@antv/f6-core';
import * as Algorithm from '@antv/algorithm';
import Graph, { registerGraph as oRegisterGraph } from './graph/graph';
import { Layout, registerLayout } from './layout';
import Global from './global';
import Util from './util';
import './element';
import './behavior';
var F6 = {
  version: Global.version,
  Graph: Graph,
  Util: Util,
  Layout: Layout,
  registerLayout: registerLayout,
  Global: Global,
  registerBehavior: registerBehavior,
  registerCombo: registerCombo,
  registerEdge: registerEdge,
  registerNode: registerNode,
  Algorithm: Algorithm,
  Arrow: Arrow,
  Marker: Marker,
  Shape: Shape
};

function registerExtenderWrapper(registerExtender) {
  return function () {
    var args = [];

    for (var _i = 0; _i < arguments.length; _i++) {
      args[_i] = arguments[_i];
    }

    return registerExtender.apply(null, __spreadArray(__spreadArray([], args), [F6]));
  };
}

var registerGraph = registerExtenderWrapper(oRegisterGraph);
F6.registerGraph = registerGraph;
export * from '@antv/f6-core';
export * from './types';
export * from './interface/graph';
export { Graph, Util, Layout, registerLayout, registerGraph, Global, Algorithm, Arrow, Marker, Shape };
export default F6;