import type { JSONSupport, JSONSupportMixinProperties } from "../../core/JSONSupport.js";
import type { CameraInfoMixin, CameraInfoMixinProperties } from "./CameraInfoMixin.js";

export interface CameraInfoProperties extends JSONSupportMixinProperties, CameraInfoMixinProperties, Partial<Pick<CameraInfo, "id">> {}

/**
 * Camera information returned as a result of running [ImageryLayer#queryGPSInfo()](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-ImageryLayer.html#queryGPSInfo)
 * or [queryGPSInfo()](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-imageService.html#queryGPSInfo) methods.
 *
 * @since 4.29
 * @see [ImageGPSInfoResult](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-ImageGPSInfoResult.html)
 * @see [ImageGPSInfoParameters](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-ImageGPSInfoParameters.html)
 * @see [ImageryLayer#queryGPSInfo()](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-ImageryLayer.html#queryGPSInfo)
 * @see [queryGPSInfo()](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-imageService.html#queryGPSInfo)
 */
export default abstract class CameraInfo extends CameraInfoSuperclass {
  /** Camera id. */
  accessor id: string;
}
declare const CameraInfoSuperclass: typeof JSONSupport & typeof CameraInfoMixin