import type EsriColor from "../../Color.js";
import type { ClonableMixin, ClonableMixinProperties } from "../../core/Clonable.js";
import type { JSONSupport, JSONSupportMixinProperties } from "../../core/JSONSupport.js";
import type { ColorLike } from "../../Color.js";

export interface VoxelColorStopProperties extends JSONSupportMixinProperties, ClonableMixinProperties, Partial<Pick<VoxelColorStop, "position">> {
  /** The color to render data at this position with. */
  color?: ColorLike;
}

/** VoxelColorStop defines a color and a normalized position. */
export default abstract class VoxelColorStop extends VoxelColorStopSuperclass {
  /** The color to render data at this position with. */
  get color(): EsriColor;
  set color(value: ColorLike);
  /**
   * The normalized (i.e. 0 to 1) position.
   *
   * @default 0
   */
  accessor position: number;
}
declare const VoxelColorStopSuperclass: typeof JSONSupport & typeof ClonableMixin