import type { RasterPixelType } from "../../types.js";
import type { BaseRasterFunctionParameters, RasterArgument, RasterPrimaryArgument, BaseNRasterFunctionParameters } from "../types.js";

/**
 * SetNull parameters
 *
 * @since 4.28
 */
export interface SetNullParameters extends BaseRasterFunctionParameters {
  /** The false raster. */
  falseRaster: RasterArgument;
  /** The output pixel type, default is unknown. */
  outputPixelType?: RasterPixelType;
  /** The input raster. */
  raster: RasterPrimaryArgument;
}

/**
 * Conditional parameters
 *
 * @since 4.28
 */
export interface ConditionalParameters extends BaseRasterFunctionParameters {
  /** The false raster. */
  falseRaster: RasterArgument;
  /** The output pixel type, default is unknown. */
  outputPixelType?: RasterPixelType;
  /** The input raster. */
  raster: RasterPrimaryArgument;
  /** The true raster. */
  trueRaster: RasterArgument;
}

export type StatType = "majority" | "max" | "mean" | "median" | "min" | "minority" | "range" | "stddev" | "sum" | "variety";

export interface CalculatorParameters extends BaseNRasterFunctionParameters {
  /** The expression. */
  expression: string;
  /** The input names. */
  inputNames: string[];
}