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

export interface VoxelOpacityStopProperties extends JSONSupportMixinProperties, ClonableMixinProperties, Partial<Pick<VoxelOpacityStop, "opacity" | "position">> {}

/** VoxelOpacityStop defines an opacity value and a normalized position. */
export default abstract class VoxelOpacityStop extends VoxelOpacityStopSuperclass {
  /**
   * The opacity value (0 = transparent, 1 = opaque) to apply to data at this position.
   *
   * @default 1
   */
  accessor opacity: number;
  /**
   * The normalized (i.e. 0 to 1) position.
   *
   * @default 0
   */
  accessor position: number;
}
declare const VoxelOpacityStopSuperclass: typeof JSONSupport & typeof ClonableMixin