import { PrintObject } from "./PrintObject";
import { Boolean } from "../dataType/Boolean";
import { Image } from "../models/Image";
import { String } from "../dataType/String";
import { ImageCollection } from "./ImageCollection";
import { File } from "./File";

/**
 *  gve
 * @class gve.AI
 * @since gve
 * @alias gve.AI
 */

export class AI extends PrintObject {
  constructor() {
    super();
    if (!(this instanceof AI)) {
      return new AI();
    }
  }

  // /**
  //  * 智算引擎环境校验
  //  * @returns Boolean
  //  * @tutorial gve.AI
  //  */
  // private static checkAI() {
  //   return new Boolean();
  // }

  /**
   * 检查智算环境是否可用
   * @returns Boolean
   * @tutorial gve.AI
   * @alias gve.AI.verifyAiEnv
   */
  static verifyAiEnv() {
    return new Boolean();
  }

  // /**
  //  * 获取建筑物的geojson文件路径
  //  * @param {Image} fromGridRes image实例
  //  * @returns string
  //  * @tutorial gve.AI
  //  */
  // static buildingExtraction(fromGridRes: Image, asyncFlag?: boolean, batch?: number) {
  //   return new String();
  // }

  // /**
  //  * 获取水体的geojson文件路径
  //  * @param {Image|ImageCollection} fromGridRes image实例
  //  * @returns string
  //  * @tutorial gve.AI
  //  */
  // static waterExtraction(fromGridRes: Image | ImageCollection) {
  //   return new String();
  // }

  // /**
  //  * tif格式剔除敏感物
  //  * @param {Image} image Image实例
  //  * @param {number[]} points 敏感物坐标
  //  * @returns object
  //  * @tutorial gve.AI
  //  */
  // static RingMo_ImageRemoveSensitive(image: Image, points: number[]) {
  //   return new PrintObject();
  // }

  // /**
  //  * File剔除敏感物
  //  * @param {File} file File实例
  //  * @param {number[]} points 敏感物坐标
  //  * @returns object
  //  * @tutorial gve.AI
  //  */
  // static RingMo_FileRemoveSensitive(file: File, points: number[]) {
  //   return new PrintObject();
  // }

  // /**
  //  * 获取目标检测的geojson文件路径
  //  * @param {Image} image image实例
  //  * @param {string} type 目标可选值 'large-vehicle'l,'plane','ship','storage-tank'
  //  * @returns string
  //  * @tutorial gve.AI
  //  */
  // static Object_Detection(image: Image, type: string) {
  //   return new String();
  // }

  // /**
  //  * 自动剔除敏感物
  //  * @param {Image} image image实例
  //  * @returns object
  //  * @tutorial gve.AI
  //  */
  // static RingMo_Infer_ImageRemoveSensitive(image: Image) {
  //   return new PrintObject();
  // }

  // /**
  //  * 获取建筑物变化的geojson文件路径
  //  * @param {Image} image1 image实例
  //  * @param {Image} image2 image实例
  //  * @returns string
  //  * @tutorial gve.AI
  //  */
  // static BuildingChange(image1: Image, image2: Image) {
  //   return new String();
  // }

  // /**
  //  * 获取建筑画风格影像
  //  * @param {Image} image image实例
  //  * @returns string
  //  * @tutorial gve.AI
  //  */
  // static PapercutGeneration(image: Image) {
  //   return new String();
  // }

  // /**
  //  * 提取采样区域的港口, 返回geojson文件路径
  //  * @param {Image} image image实例
  //  * @returns string
  //  * @tutorial gve.AI
  //  */
  // static Object_Detection_Harbor(image: Image) {
  //   return new String();
  // }

  // /**
  //  * 提取采样区域的桥梁, 返回geojson文件路径
  //  * @param {Image} image image实例
  //  * @returns string
  //  * @tutorial gve.AI
  //  */
  // static Object_Detection_Bridge(image: Image) {
  //   return new String();
  // }

}