'use strict';

var Component = require('../model/Component.js');
var Component$1 = require('../view/Component.js');
var Series = require('../model/Series.js');
var Chart = require('../view/Chart.js');
var SeriesData = require('../data/SeriesData.js');
var zrender = require('../../../../../zrender@6.0.0/node_modules/zrender/lib/zrender.js');
var matrix = require('../../../../../zrender@6.0.0/node_modules/zrender/lib/core/matrix.js');
var vector = require('../../../../../zrender@6.0.0/node_modules/zrender/lib/core/vector.js');
var util = require('../../../../../zrender@6.0.0/node_modules/zrender/lib/core/util.js');
var color = require('../../../../../zrender@6.0.0/node_modules/zrender/lib/tool/color.js');
var throttle = require('../util/throttle.js');
var helper = require('./api/helper.js');
var extension = require('../extension.js');
var platform = require('../../../../../zrender@6.0.0/node_modules/zrender/lib/core/platform.js');
var parseGeoJson = require('../coord/geo/parseGeoJson.js');
var number = require('./api/number.js');
var time = require('./api/time.js');
var graphic = require('./api/graphic.js');
var format = require('./api/format.js');
var util$1 = require('./api/util.js');
var env = require('../../../../../zrender@6.0.0/node_modules/zrender/lib/core/env.js');
var Model = require('../model/Model.js');
var Axis = require('../coord/Axis.js');
var graphic$1 = require('../../../../../zrender@6.0.0/node_modules/zrender/lib/canvas/graphic.js');

// --------------------- Deprecated Extension Methods ---------------------
// Should use `ComponentModel.extend` or `class XXXX extend ComponentModel` to create class.
// Then use `registerComponentModel` in `install` parameter when `use` this extension. For example:
// class Bar3DModel extends ComponentModel {}
// export function install(registers) { registers.registerComponentModel(Bar3DModel); }
// echarts.use(install);
function extendComponentModel(proto) {
  var Model = Component.default.extend(proto);
  Component.default.registerClass(Model);
  return Model;
}
function extendComponentView(proto) {
  var View = Component$1.default.extend(proto);
  Component$1.default.registerClass(View);
  return View;
}
function extendSeriesModel(proto) {
  var Model = Series.default.extend(proto);
  Series.default.registerClass(Model);
  return Model;
}
function extendChartView(proto) {
  var View = Chart.default.extend(proto);
  Chart.default.registerClass(View);
  return View;
}

exports.ComponentModel = Component.default;
exports.ComponentView = Component$1.default;
exports.SeriesModel = Series.default;
exports.ChartView = Chart.default;
exports.List = SeriesData.default;
exports.zrender = zrender;
exports.matrix = matrix;
exports.vector = vector;
exports.zrUtil = util;
exports.color = color;
exports.throttle = throttle.throttle;
exports.helper = helper;
exports.use = extension.use;
exports.setPlatformAPI = platform.setPlatformAPI;
exports.parseGeoJSON = parseGeoJson.default;
exports.parseGeoJson = parseGeoJson.default;
exports.number = number;
exports.time = time;
exports.graphic = graphic;
exports.format = format;
exports.util = util$1;
exports.env = env.default;
exports.Model = Model.default;
exports.Axis = Axis.default;
exports.innerDrawElementOnCanvas = graphic$1.brushSingle;
exports.extendChartView = extendChartView;
exports.extendComponentModel = extendComponentModel;
exports.extendComponentView = extendComponentView;
exports.extendSeriesModel = extendSeriesModel;
