    import { createRender } from './index'
    import { Evented } from '../../base'

    /**
     * 专题图渲染基类
     * @class BaseRenderer
     * @moduleEX RendererModule
     * @param {Object} options 初始化参数
     * @see [<h4>目前支持的几种渲染器</h4>]{@tutorial 渲染器}
     */
    class BaseRenderer extends Evented {
      constructor() {
        super()
        /**
         * @member {String}  ClassBreakRenderer.prototype.type
         */
        this.type = ''
      }

      /**
       * @function BaseRenderer.prototype.toJSON
       * @description 将JS对象转换为JSON格式
       * @returns {Object} 渲染规则的实例化JSON
       */
      toJSON() {
        return {
          type: this.type
        }
      }

      /**
       * 克隆renderer对象
       * @return {BaseRenderer} 克隆后的renderer对象
       */
      clone() {
        return new BaseRenderer(this.toJSON())
      }
    }

    /**
     * @function BaseRenderer.prototype.fromJSON
     * @description 将JSON格式的渲染规则转换为JS对象
     * @param {Object} json 渲染规则的实例化JSON
     */
    BaseRenderer.fromJSON = function (json) {
      return createRender(json)
    }

    export default BaseRenderer