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

export interface ColorRampProperties {}

/**
 * A ColorRamp object is used to specify a range of colors that are applied to a group of symbols or pixels.
 *
 * There are two types of color ramps available:
 *
 * ### Algorithmic color ramp
 *
 * A [AlgorithmicColorRamp](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-AlgorithmicColorRamp.html) is defined by two colors and the algorithm used to traverse the intervening color space between them.
 *
 * ### Multipart color ramp
 *
 * A [MultipartColorRamp](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-MultipartColorRamp.html) is defined by a list of constituent color ramps.
 *
 * @since 4.20
 */
export default abstract class ColorRamp extends JSONSupport {
  /** A string value representing the color ramp type. */
  get type(): ColorRampType | null | undefined;
}

/** The type of color ramp. */
export type ColorRampType = "algorithmic" | "multipart";