// 贝塞尔控制器
declare namespace bezierCurveController {
  type polylinesGroup = any; // 连接控制点的多边形
  type circle2sGroup = any; // 贝塞尔控制点1 绿色
  type circle3sGroup = any; // 贝塞尔控制点2 蓝色

  /**
   * @function createBezierCurve
   * @description 创建贝塞尔元素 控制点+线
   */
  interface createBezierCurve {
    (): void;
  }

  /**
   * @function dragBezierControlPoints
   * @description 显示贝塞尔线条的辅助控制点
   * @param {Object} d link对象
   */
  interface dragBezierControlPoints {
    (d: any): void;
  }

  /**
   * @function hiddenControlPoints
   * @description 隐藏贝塞尔线条的辅助控制点
   * @param {Object} d link对象
   */
  interface hiddenControlPoints {
    (d: any): void;
  }

  /**
   * @function onClickBezierControl
   * @description 点击贝塞尔控制点
   * @param {Object} eventHandler 事件对象
   */
  interface onClickBezierControl {
    (obj: { item: any; index: number; array: any[]; event: any }): void;
  }

  /**
   * @function tickedBezierControl
   * @description tick更新
   */
  interface tickedBezierControl {
    (): void;
  }

  /**
   * @function updateBezierPath
   * @description 绘制
   */
  interface updateBezierPath {
    (): void;
  }
}

export default bezierCurveController;
