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

/** @since 5.0 */
export interface VoxelUniqueValueProperties extends Partial<Pick<VoxelUniqueValue, "enabled" | "label" | "value">> {
  /**
   * The color to render this value with.
   *
   * @since 5.0
   */
  color?: ColorLike;
}

/**
 * VoxelUniqueValue describes a particular voxel discrete value how to render it.
 *
 * @since 5.0
 * @see [Sample - VoxelLayer with discrete variable](https://developers.arcgis.com/javascript/latest/sample-code/layers-voxel-discrete-variable/)
 */
export default class VoxelUniqueValue extends VoxelUniqueValueSuperclass {
  constructor(properties?: VoxelUniqueValueProperties);
  /**
   * The color to render this value with.
   *
   * @since 5.0
   */
  get color(): Color;
  set color(value: ColorLike);
  /**
   * Whether or not to render data with this value.
   *
   * @default true
   * @since 5.0
   */
  accessor enabled: boolean;
  /**
   * The label string for this value.
   *
   * @default ""
   * @since 5.0
   */
  accessor label: string;
  /**
   * The data value.
   *
   * @default 0
   * @since 5.0
   */
  accessor value: number;
}
declare const VoxelUniqueValueSuperclass: typeof JSONSupport & typeof ClonableMixin