import type Extent from "../../geometry/Extent.js";
import type { JSONSupport } from "../../core/JSONSupport.js";
import type { ExtentProperties } from "../../geometry/Extent.js";

export interface KMLMapImageProperties extends Partial<Pick<KMLMapImage, "href" | "id" | "rotation">> {
  /**
   * The [Extent](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Extent.html) of the map image.
   *
   * @since 5.0
   */
  extent?: ExtentProperties;
}

/**
 * **MapImage** represents an image overlay draped onto the terrain.
 *
 * @since 5.0
 */
export default class KMLMapImage extends JSONSupport {
  constructor(properties?: KMLMapImageProperties);
  /**
   * The [Extent](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Extent.html) of the map image.
   *
   * @since 5.0
   */
  get extent(): Extent;
  set extent(value: ExtentProperties);
  /**
   * URL to the map image.
   *
   * @default ""
   * @since 5.0
   */
  accessor href: string;
  /**
   * Map image id.
   *
   * @default 0
   * @since 5.0
   */
  accessor id: number;
  /**
   * Rotation of the map image about its center, in degrees. Values can be ±180. The default is 0 (north). Rotations are specified in a counterclockwise direction.
   *
   * @default 0
   * @since 5.0
   */
  accessor rotation: number;
}