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

export interface VoxelRangeFilterProperties extends JSONSupportMixinProperties, ClonableMixinProperties, Partial<Pick<VoxelRangeFilter, "enabled" | "range">> {}

/** VoxelRangeFilter defines the data range which will be rendered. */
export default abstract class VoxelRangeFilter extends VoxelRangeFilterSuperclass {
  /**
   * Whether or not the filter is enabled.
   *
   * @default false
   */
  accessor enabled: boolean;
  /** The data range to render, specified as [minimum, maximum]. */
  accessor range: [
      number,
      number
  ] | null;
}
declare const VoxelRangeFilterSuperclass: typeof JSONSupport & typeof ClonableMixin