/**
 * Performs various operations on an image service resource:
 *
 * Identify the content of an image service for the input location and mosaic rule.
 * Compute histograms based on the provided [ImageHistogramParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageHistogramParameters/).
 * Compute [statistics](https://developers.arcgis.com/javascript/latest/references/core/layers/raster/types/#RasterBandStatistics) and [histograms](https://developers.arcgis.com/javascript/latest/references/core/layers/raster/types/#RasterHistogram)
 * for the provided [ImageHistogramParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageHistogramParameters/).
 *
 * @since 4.19
 */
import type FindImagesParameters from "./support/FindImagesParameters.js";
import type FindImagesResult from "./support/FindImagesResult.js";
import type ImageAngleParameters from "./support/ImageAngleParameters.js";
import type ImageAngleResult from "./support/ImageAngleResult.js";
import type ImageAreaParameters from "./support/ImageAreaParameters.js";
import type ImageAreaResult from "./support/ImageAreaResult.js";
import type ImageBoundaryParameters from "./support/ImageBoundaryParameters.js";
import type ImageBoundaryResult from "./support/ImageBoundaryResult.js";
import type ImageDistanceParameters from "./support/ImageDistanceParameters.js";
import type ImageDistanceResult from "./support/ImageDistanceResult.js";
import type ImageGPSInfoParameters from "./support/ImageGPSInfoParameters.js";
import type ImageGPSInfoResult from "./support/ImageGPSInfoResult.js";
import type ImageHeightParameters from "./support/ImageHeightParameters.js";
import type ImageHeightResult from "./support/ImageHeightResult.js";
import type ImageHistogramParameters from "./support/ImageHistogramParameters.js";
import type ImageIdentifyParameters from "./support/ImageIdentifyParameters.js";
import type ImageIdentifyResult from "./support/ImageIdentifyResult.js";
import type ImagePixelLocationParameters from "./support/ImagePixelLocationParameters.js";
import type ImagePixelLocationResult from "./support/ImagePixelLocationResult.js";
import type ImagePointParameters from "./support/ImagePointParameters.js";
import type ImagePointResult from "./support/ImagePointResult.js";
import type ImageSampleParameters from "./support/ImageSampleParameters.js";
import type ImageSampleResult from "./support/ImageSampleResult.js";
import type ImageToMapMultirayParameters from "./support/ImageToMapMultirayParameters.js";
import type ImageToMapParameters from "./support/ImageToMapParameters.js";
import type ImageUrlParameters from "./support/ImageUrlParameters.js";
import type ImageUrlResult from "./support/ImageUrlResult.js";
import type MapToImageParameters from "./support/MapToImageParameters.js";
import type MeasureAreaFromImageResult from "./support/MeasureAreaFromImageResult.js";
import type MeasureFromImageParameters from "./support/MeasureFromImageParameters.js";
import type MeasureLengthFromImageResult from "./support/MeasureLengthFromImageResult.js";
import type { GeometryUnion } from "../geometry/types.js";
import type { RasterBandStatistics, RasterHistogram } from "../layers/raster/types.js";
import type { RequestOptions } from "../request/types.js";
import type { FindImagesParametersProperties } from "./support/FindImagesParameters.js";
import type { ImageAngleParametersProperties } from "./support/ImageAngleParameters.js";
import type { ImageAreaParametersProperties } from "./support/ImageAreaParameters.js";
import type { ImageBoundaryParametersProperties } from "./support/ImageBoundaryParameters.js";
import type { ImageDistanceParametersProperties } from "./support/ImageDistanceParameters.js";
import type { ImageGPSInfoParametersProperties } from "./support/ImageGPSInfoParameters.js";
import type { ImageHeightParametersProperties } from "./support/ImageHeightParameters.js";
import type { ImageHistogramParametersProperties } from "./support/ImageHistogramParameters.js";
import type { ImageIdentifyParametersProperties } from "./support/ImageIdentifyParameters.js";
import type { ImagePixelLocationParametersProperties } from "./support/ImagePixelLocationParameters.js";
import type { ImagePointParametersProperties } from "./support/ImagePointParameters.js";
import type { ImageSampleParametersProperties } from "./support/ImageSampleParameters.js";
import type { ImageToMapMultirayParametersProperties } from "./support/ImageToMapMultirayParameters.js";
import type { ImageToMapParametersProperties } from "./support/ImageToMapParameters.js";
import type { ImageUrlParametersProperties } from "./support/ImageUrlParameters.js";
import type { MapToImageParametersProperties } from "./support/MapToImageParameters.js";
import type { MeasureFromImageParametersProperties } from "./support/MeasureFromImageParameters.js";

/**
 * Result from [computeHistograms()](https://developers.arcgis.com/javascript/latest/references/core/rest/imageService/#computeHistograms) containing raster histograms.
 *
 * @see [computeHistograms()](https://developers.arcgis.com/javascript/latest/references/core/rest/imageService/#computeHistograms)
 */
export interface ImageServiceHistogramsResult {
  /** Result containing raster histograms. */
  histograms: RasterHistogram[];
}

/**
 * Result from [computeStatisticsHistograms()](https://developers.arcgis.com/javascript/latest/references/core/rest/imageService/#computeStatisticsHistograms) containing raster histograms.
 *
 * @see [computeStatisticsHistograms()](https://developers.arcgis.com/javascript/latest/references/core/rest/imageService/#computeStatisticsHistograms)
 */
export interface ImageServiceStatisticsHistogramsResult {
  /** Result containing raster histograms. */
  statistics: RasterBandStatistics[];
  /** Raster band statistics. */
  histograms: RasterHistogram[];
}

/**
 * Computes the rotation angle of a [ImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/) at a given location.
 * This operation is supported at 10.9.1 and later.
 *
 * @param url - URL to the ArcGIS Server REST resource that represents an image service.
 * @param parameters - Specifies parameters for computing angles.
 * @param requestOptions - Additional [options](https://developers.arcgis.com/javascript/latest/references/core/request/#request) to be used for the data request.
 * @returns When resolved, returns an instance of [ImageAngleResult](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageAngleResult/)
 * containing computed north and up angles.
 * @since 4.22
 * @see [ArcGIS REST API - Compute Angles](https://developers.arcgis.com/rest/services-reference/enterprise/compute-angles.htm)
 */
export function computeAngles(url: string, parameters: ImageAngleParameters | ImageAngleParametersProperties, requestOptions?: RequestOptions): Promise<ImageAngleResult>;

/**
 * Computes the corresponding pixel location in columns and rows for an [ImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/) based on input geometry.
 * Requires that the raster catalog item has a valid `icsToPixel` resource.
 *
 * @param url - URL to the ArcGIS Server REST resource that represents an image service.
 * @param parameters - Specifies parameters for computing image space pixel location.
 * @param requestOptions - Additional [options](https://developers.arcgis.com/javascript/latest/references/core/request/#request) to be used for the data request.
 * @returns When resolved, returns an instance of
 * [ImagePixelLocationResult](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImagePixelLocationResult/) containing x and y values for the column and row of each input geometry.
 * @since 4.22
 * @see [ArcGIS REST API - Compute Pixel Location](https://developers.arcgis.com/rest/services-reference/enterprise/compute-pixel-location.htm)
 */
export function computePixelSpaceLocations(url: string, parameters: ImagePixelLocationParameters | ImagePixelLocationParametersProperties, requestOptions?: RequestOptions): Promise<ImagePixelLocationResult>;

/**
 * Computes [statistics](https://developers.arcgis.com/javascript/latest/references/core/layers/raster/types/#RasterBandStatistics) and [histograms](https://developers.arcgis.com/javascript/latest/references/core/layers/raster/types/#RasterHistogram)
 * for the provided [ImageHistogramParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageHistogramParameters/).
 * If a [raster function](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageHistogramParameters/#rasterFunction) and a
 * [mosaic rule](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageHistogramParameters/#mosaicRule) are not specified, the current settings on the layer will be used.
 * This operation is supported by an image service published with a mosaic dataset or a raster dataset at ArcGIS Server 10.4 and later.
 * The result of this operation contains both statistics and histograms computed for the given extent.
 *
 * @param url - URL to the ArcGIS Server REST resource that represents an image service.
 * @param parameters - Specifies parameters for computing statistics and histograms.
 * @param requestOptions - Additional [options](https://developers.arcgis.com/javascript/latest/references/core/request/#request) to be used for the data request.
 * @returns Resolves to an object containing histogram and statistics results.
 * See the object specification table below for details.
 *
 * Property | Type | Description
 * ---------|------|-------------
 * histograms[] | [RasterHistogram](https://developers.arcgis.com/javascript/latest/references/core/layers/raster/types/#RasterHistogram) | Result containing raster histograms.
 * bandStatistics[] | [RasterBandStatistics](https://developers.arcgis.com/javascript/latest/references/core/layers/raster/types/#RasterBandStatistics) | Raster band statistics.
 */
export function computeStatisticsHistograms(url: string, parameters: ImageHistogramParameters | ImageHistogramParametersProperties, requestOptions?: RequestOptions): Promise<ImageServiceStatisticsHistogramsResult>;

/**
 * Computes histograms based on the provided [ImageHistogramParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageHistogramParameters/).
 * If a [raster function](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageHistogramParameters/#rasterFunction) and
 * a [mosaic rule](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageHistogramParameters/#mosaicRule) are not specified, the current settings on the layer will be used.
 * This operation is supported by an image service published with a mosaic dataset or a raster dataset at ArcGIS Server 10.4 and later.
 * The result of this operation contains histograms computed for the given extent.
 *
 * @param url - URL to the ArcGIS Server REST resource that represents an image service.
 * @param parameters - Specifies parameters for computing histograms.
 * @param requestOptions - Additional [options](https://developers.arcgis.com/javascript/latest/references/core/request/#request) to be used for the data request.
 */
export function computeHistograms(url: string, parameters: ImageHistogramParameters | ImageHistogramParametersProperties, requestOptions?: RequestOptions): Promise<ImageServiceHistogramsResult>;

/**
 * Returns sample point locations, pixel values and corresponding resolutions of the source data for a given geometry. When the input geometry
 * is a [Polyline](https://developers.arcgis.com/javascript/latest/references/core/geometry/Polyline/), [Extent](https://developers.arcgis.com/javascript/latest/references/core/geometry/Extent/), or [Polygon](https://developers.arcgis.com/javascript/latest/references/core/geometry/Polygon/),
 * the sampling is based on [ImageSampleParameters.sampleCount](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageSampleParameters/#sampleCount) or
 * [ImageSampleParameters.sampleDistance](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageSampleParameters/#sampleDistance) parameters. When the geometry is a
 * [Point](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/) or [Multipoint](https://developers.arcgis.com/javascript/latest/references/core/geometry/Multipoint/), the point or points are used directly.
 *
 * The number of sample locations in the response is based on the `sampleDistance` or `sampleCount` parameter and cannot exceed the limit imposed by the image
 * service. The sample points are located at the intersection of the provided geometry and the raster item's footprints. They are also filtered by
 * the [ImageSampleParameters.mosaicRule](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageSampleParameters/#mosaicRule) and [ImageSampleParameters.pixelSize](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageSampleParameters/#pixelSize) parameters.
 *
 * @param url - URL to the ArcGIS Server REST resource that represents an image service.
 * @param parameters - The parameters used in the getSamples operation.
 * @param requestOptions - Additional [options](https://developers.arcgis.com/javascript/latest/references/core/request/#request) to be used for the data request.
 * @returns When resolved, [ImageSampleResult](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageSampleResult/) is returned
 * containing an array of [ImageSamples](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageSample/).
 * @since 4.23
 * @example
 * // get all sample points along a polyline
 * // at the specified sample distance and pixel size
 * const param = {
 *   geometry: polyline
 *   returnFirstValueOnly: false,
 *   // resolution - unit of the view's spatial reference
 *   pixelSize: {
 *     x:12,
 *     y:12,
 *     spatialReference: view.spatialReference
 *   },
 *   interpolation: "nearest",
 *   // unit of the geometry's spatial reference is used
 *   sampleDistance: 30,
 *   outFields: ["*"]
 * };
 * imageService.getSamples(url, param).then((results) => {
 *   // use the getSamples results as needed.
 *   console.log(results);
 * })
 * .catch(function(error){
 *   console.log(error)
 * })
 */
export function getSamples(url: string, parameters: ImageSampleParameters | ImageSampleParametersProperties, requestOptions?: RequestOptions): Promise<ImageSampleResult>;

/**
 * Sends a request to the ArcGIS REST image service resource to identify content based on the
 * [ImageIdentifyParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageIdentifyParameters/)
 * specified in the `parameters` argument.
 *
 * @param url - URL to the ArcGIS Server REST resource that represents an image service.
 * @param parameters - Specifies the criteria used to identify the features.
 * @param requestOptions - Additional [options](https://developers.arcgis.com/javascript/latest/references/core/request/#request) to be used for the data request.
 * @returns When resolved, returns an instance of
 * [ImageIdentifyResult](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageIdentifyResult/).
 */
export function identify(url: string, parameters: ImageIdentifyParameters | ImageIdentifyParametersProperties, requestOptions?: RequestOptions): Promise<ImageIdentifyResult>;

/**
 * Calculates the height of an object between two points on an image service. The result of this operation includes the name of the raster dataset being used,
 * the sensor name, and measured values. See the [ImageHeightParameters.operationType](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageHeightParameters/#operationType) documentation for types of
 * height measurements.
 *
 * @param url - The url of the image service to perform the height measurement on.
 * @param parameters - Specifies the parameters for measuring the height of an object between two points on an image service.
 * @param requestOptions - Additional [options](https://developers.arcgis.com/javascript/latest/references/core/request/#request) to be used for the data request.
 * @returns When resolved, returns an instance of [ImageHeightResult](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageHeightResult/)
 * containing the name of the raster dataset being used, the sensor name, and measured values.
 * @since 4.26
 */
export function measureHeight(url: string, parameters: ImageHeightParameters | ImageHeightParametersProperties, requestOptions?: RequestOptions): Promise<ImageHeightResult>;

/**
 * Calculates the area and perimeter of a given geometry on an image service. The result of this operation includes the name of the raster dataset being used,
 * the sensor name, and measured values.
 *
 * @param url - The url of the image service to perform the area and perimeter measurement on.
 * @param parameters - Specifies parameters for measuring the area and perimeter of a given geometry on an image service.
 * @param requestOptions - Additional [options](https://developers.arcgis.com/javascript/latest/references/core/request/#request) to be used for the data request.
 * @returns When resolved, returns an instance of [ImageAreaResult](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageAreaResult/)
 * containing the name of the raster dataset being used, the sensor name, and measured values.
 * @since 4.26
 */
export function measureAreaAndPerimeter(url: string, parameters: ImageAreaParameters | ImageAreaParametersProperties, requestOptions?: RequestOptions): Promise<ImageAreaResult>;

/**
 * Returns the location for a given point or centroid of a given area on an image service.
 *
 * @param url - The service url.
 * @param parameters - Specifies parameters for determining a point location or a centroid
 * of a given area on the image service.
 * @param requestOptions - Additional [options](https://developers.arcgis.com/javascript/latest/references/core/request/#request) to be used for the data request.
 * @returns When resolved, returns an instance of [ImagePointResult](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImagePointResult/)
 * containing the name of the raster dataset being used, the sensor name, and measured values.
 * @since 4.26
 */
export function measurePointOrCentroid(url: string, parameters: ImagePointParameters | ImagePointParametersProperties, requestOptions?: RequestOptions): Promise<ImagePointResult>;

/**
 * Calculates the distance and angle between two points on an image service. The result of this operation includes the name of the raster dataset being used,
 * the sensor name, and measured values.
 *
 * @param url - The url of the image service to perform the distance and angle measurement on.
 * @param parameters - Specifies parameters for measuring a distance and an angle on an image between two points.
 * @param requestOptions - Additional [options](https://developers.arcgis.com/javascript/latest/references/core/request/#request) to be used for the data request.
 * @returns When resolved, returns an instance of [ImageDistanceResult](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageDistanceResult/)
 * containing the name of the raster dataset being used, the sensor name, and measured values.
 * @since 4.26
 */
export function measureDistanceAndAngle(url: string, parameters: ImageDistanceParameters | ImageDistanceParametersProperties, requestOptions?: RequestOptions): Promise<ImageDistanceResult>;

/**
 * Measures the length of a polyline in an image space on a selected raster when the following conditions are met:
 *
 * * Image service must be published from a mosaic dataset.
 * * Raster items in the mosaic dataset must have 3D transformation (e.g. mosaic dataset built with UAV raster type).
 *
 * @param url - The url of the image service to perform the measurement on.
 * @param parameters - Specifies parameters for measuring the length.
 * @param requestOptions - Additional [options](https://developers.arcgis.com/javascript/latest/references/core/request/#request) to be used for the data request.
 * @returns When resolved, returns an instance of [MeasureLengthFromImageResult](https://developers.arcgis.com/javascript/latest/references/core/rest/support/MeasureLengthFromImageResult/)
 * containing the name of the polyline's shape in map space and its length.
 * @since 4.29
 */
export function measureLengthFromImage(url: string, parameters: MeasureFromImageParameters | MeasureFromImageParametersProperties, requestOptions?: RequestOptions): Promise<MeasureLengthFromImageResult>;

/**
 * Measures the area and the perimeter of a polygon in an image space on a selected raster when the following conditions are met:
 *
 * * Image service must be published from a mosaic dataset.
 * * Raster items in the mosaic dataset must have 3D transformation (e.g. mosaic dataset built with UAV raster type).
 *
 * @param url - The url of the image service to perform the height measurement on.
 * @param parameters - Specifies the parameters for measuring the area.
 * @param requestOptions - Additional [options](https://developers.arcgis.com/javascript/latest/references/core/request/#request) to be used for the data request.
 * @returns When resolved, returns an instance of [MeasureAreaFromImageResult](https://developers.arcgis.com/javascript/latest/references/core/rest/support/MeasureAreaFromImageResult/)
 * containing the name of the polygon's shape in map space and its length, area, and center.
 * @since 4.29
 */
export function measureAreaFromImage(url: string, parameters: MeasureFromImageParameters | MeasureFromImageParametersProperties, requestOptions?: RequestOptions): Promise<MeasureAreaFromImageResult>;

/**
 * Returns the boundary of an image for the provided [ImageBoundaryParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageBoundaryParameters/).
 * This operation is supported with ArcGIS Enterprise version 10.6 or higher image services.
 *
 * @param url - The url of the image service to query the boundary for.
 * @param parameters - Specifies the imagery boundary parameters.
 * @param requestOptions - Additional [options](https://developers.arcgis.com/javascript/latest/references/core/request/#request) to be used for the data request
 * (will override requestOptions defined during construction).
 * @returns Resolves to an object containing boundary geometry of the image service.
 * @since 4.29
 */
export function queryBoundary(url: string, parameters: ImageBoundaryParameters | ImageBoundaryParametersProperties, requestOptions?: RequestOptions): Promise<ImageBoundaryResult>;

/**
 * Returns GPS information for the provided [ImageGPSInfoParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageGPSInfoParameters/).
 * It returns information about cameras, GPS locations when the image was taken,
 * and exterior orientation information of each image.
 *
 * This operation is supported with ArcGIS Enterprise version 11.2 or higher image services.
 *
 * @param url - The url of the image service to query GPS information from.
 * @param parameters - Specifies the parameters for query GPS info operation.
 * @param requestOptions - Additional [options](https://developers.arcgis.com/javascript/latest/references/core/request/#request) to be used for the data request
 * (will override requestOptions defined during construction).
 * @returns Resolves to an object containing information about images and cameras.
 * @since 4.29
 */
export function queryGPSInfo(url: string, parameters: ImageGPSInfoParameters | ImageGPSInfoParametersProperties, requestOptions?: RequestOptions): Promise<ImageGPSInfoResult>;

/**
 * Convert a geometry from an image space to a map space using the provided [ImageToMapParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageToMapParameters/).
 * This operation is supported with ArcGIS Enterprise version 11.2 or higher image services.
 *
 * @param url - The url of the image service to perform the image to map operation on.
 * @param parameters - Specifies the image to map parameters.
 * @param requestOptions - Additional [options](https://developers.arcgis.com/javascript/latest/references/core/request/#request) to be used for the data request
 * (will override requestOptions defined during construction).
 * @returns Resolves to a geometry object.
 * @since 4.29
 */
export function imageToMap(url: string, parameters: ImageToMapParameters | ImageToMapParametersProperties, requestOptions?: RequestOptions): Promise<GeometryUnion>;

/**
 * Creates a map space geometry from multiray image space geometries using the provided [ImageToMapMultirayParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageToMapMultirayParameters/).
 * For example, a house is shown in several raster items. Users can specify the house location on each image using the [ImageToMapMultirayParameters.geometries](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageToMapMultirayParameters/#geometries)
 * parameter. Then in the [ImageToMapMultirayParameters.rasterIds](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageToMapMultirayParameters/#rasterIds) parameter, specify the rasterIds of the images in the same order as the geometries.
 * The `imageToMapMultiray` operation will find and return the house location in the map space on all specified images.
 *
 * This operation is supported with ArcGIS Enterprise version 11.2 or higher image services.
 *
 * @param url - The url of the image service to perform the image to map multiray operation on.
 * @param parameters - Specifies the image to map multiray parameters.
 * @param requestOptions - Additional [options](https://developers.arcgis.com/javascript/latest/references/core/request/#request) to be used for the data request
 * (will override requestOptions defined during construction).
 * @returns Resolves to a geometry object where the coordinates in map coordinates.
 * @since 4.29
 */
export function imageToMapMultiray(url: string, parameters: ImageToMapMultirayParameters | ImageToMapMultirayParametersProperties, requestOptions?: RequestOptions): Promise<GeometryUnion>;

/**
 * Converts a given geometry from a map space to an image space using the provided [MapToImageParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/support/MapToImageParameters/).
 * This operation is supported with ArcGIS Enterprise version 11.2 or higher image services.
 *
 * @param url - The url of the image service to perform the map to image operation on.
 * @param parameters - Specifies the map to image parameters.
 * @param requestOptions - Additional [options](https://developers.arcgis.com/javascript/latest/references/core/request/#request) to be used for the data request.
 * @returns Resolves to a geometry object where the coordinates are in image space.
 * @since 4.29
 */
export function mapToImage(url: string, parameters: MapToImageParameters | MapToImageParametersProperties, requestOptions?: RequestOptions): Promise<GeometryUnion>;

/**
 * Retrieves an image's url using the provided [ImageUrlParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageUrlParameters/).
 * This operation is supported with ArcGIS Enterprise version 11.3 or higher image services.
 *
 * @param url - The url of the image service to perform the get image url operation on.
 * @param parameters - Specifies the image url parameters.
 * @param requestOptions - Additional [options](https://developers.arcgis.com/javascript/latest/references/core/request/#request) to be used for the data request.
 * @returns Resolves to a [ImageUrlResult](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageUrlResult/) containing the image's url.
 * @since 4.30
 */
export function getImageUrl(url: string, parameters: ImageUrlParameters | ImageUrlParametersProperties, requestOptions?: RequestOptions): Promise<ImageUrlResult>;

/**
 * Finds images based on the provided [FindImagesParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/support/FindImagesParameters/).
 * It locates all images that contain a [FindImagesParameters.toGeometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/FindImagesParameters/#toGeometry) and sorts them accordingly.
 * The [FindImagesParameters.fromGeometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/FindImagesParameters/#fromGeometry) can be a 3D SceneView's [camera position](https://developers.arcgis.com/javascript/latest/references/core/Camera/#position)
 * and the [FindImagesParameters.toGeometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/FindImagesParameters/#toGeometry) is a clicked location on the map.
 *
 * This operation is supported with ArcGIS Enterprise version 11.2 or higher image services..
 *
 * @param url - The url of the image service to perform the find images operation on.
 * @param parameters - Specifies the find images parameters.
 * @param requestOptions - Additional [options](https://developers.arcgis.com/javascript/latest/references/core/request/#request) to be used for the data request
 * (will override requestOptions defined during construction).
 * @returns Resolves to a [FindImagesResult](https://developers.arcgis.com/javascript/latest/references/core/rest/support/FindImagesResult/) containing images that met the search requirements.
 * @since 4.29
 */
export function findImages(url: string, parameters: FindImagesParameters | FindImagesParametersProperties, requestOptions?: RequestOptions): Promise<FindImagesResult>;