import type { ResourceHandle } from "../../core/Handles.js";
import type { PixelHighlightTarget } from "../types.js";
import type { LayerViewHighlightOptions } from "./types.js";

/** @since 5.0 */
export interface ImageryTileLayerViewMixinProperties {}

/** @since 5.0 */
export abstract class ImageryTileLayerViewMixin {
  constructor(...args: any[]);
  /**
   * Returns the map scale that corresponds to the source level of raster data.
   *
   * @returns Returns a promise that resolves to a number representing the map scale that corresponds to the source level of raster data.
   * @since 4.32
   */
  getSourceScale(): Promise<number>;
  /**
   * Highlights the given pixels in an ImageryTileLayerView.
   *
   * @param target - The pixels to highlight.
   * @param options - An object with the following properties.
   * @returns Returns a highlight handler with a `remove()` method that
   * can be called to remove the highlight.
   * @since 5.0
   * @see [View#highlights](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#highlights)
   * @example
   * // Highlight extreme temperature values
   *
   *
   * view.whenLayerView(layer).then((layerView) => {
   *   let handle = layerView.highlight({pixelRanges: [[-50,-40],[40,50]], bandId: 0})
   * });
   */
  highlight(target: PixelHighlightTarget, options?: LayerViewHighlightOptions): ResourceHandle;
}