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

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

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