import type RasterFunction from "../../../layers/support/RasterFunction.js";
import type { AbortOptions } from "../../../core/promiseUtils.js";
import type { RasterLayer } from "../support/adapters/types.js";

export interface RasterRendererParameters extends AbortOptions {
  /**
   * The
   *   input layer for which the renderer is generated. The
   *   [source type](https://pro.arcgis.com/en/pro-app/latest/help/data/imagery/raster-dataset-properties.htm)
   *   of the raster must be `Vector-UV` or `Vector-MagDir`.
   */
  layer: RasterLayer;
  /**
   * Specifies the function for how the requested image
   *   should be processed. When `rasterFunction` is applied, the server returns updated service information that reflects custom
   *   processing as defined by the raster function. If not provided, the output renderer is created using the layer's `rasterFunction`.
   */
  rasterFunction?: RasterFunction | null;
  /** Deprecated since 4.27. Use `rasterFunction` instead. */
  renderingRule?: RasterFunction;
  /**
   * Only applicable to multidimensional datasets where a raster layer can contain more than one variable
   *   (such as temperature, humidity, wind speed) with different statistics. Indicate the variable name here.
   */
  variableName?: string;
}