import { PrintObject } from "./PrintObject";
import { String } from "../dataType/String";
import { FeatureCollection } from "./FeatureCollection";
import { List } from "../dataType/List";

/**
 * @class gve.Clusterer
 * @since gve
 */
export class Clusterer extends PrintObject {
  /**
   * Clusterer
   * @hideconstructor
   * @return gve.Clusterer
   * @tutorial gve
   */
  constructor() {
    super();
    if (!(this instanceof Clusterer)) {
      return new Clusterer();
    }
  }

  /**
   * 初始化k-means聚类器,返回KMeans聚类对象
   * @param {Object} param 聚类参数
   * @returns Clusterer
   * @tutorial gve.Clusterer
   */
  static KMeans(param: Object) {
    return new Clusterer();
  }


  /**
   * 训练k-means聚类器
   * @param {FeatureCollection} features FeatureCollection实例
   * @param {any[]|List<any>} inputProperties 需要的属性列表
   * @returns Clusterer
   */
  train(features: FeatureCollection, inputProperties: any[] | List<any>) {
    return new Clusterer();
  }
}