import type {SimplifiedBarcodeReaderSettings} from "../dbr";
import type {SimplifiedLabelRecognizerSettings} from "../dlr";

/**
 * Specifies the method employed to enhance images in grayscale.
 * @see {@link SimplifiedBarcodeReaderSettings.grayscaleEnhancementModes}
 * @see {@link SimplifiedLabelRecognizerSettings.grayscaleEnhancementModes}
 */
export enum EnumGrayscaleEnhancementMode {
    GEM_END = -1,
  /**
   * Disables any grayscale image preprocessing. Selecting this mode skips the preprocessing step,
   * passing the image through to subsequent operations without modification.
   */
  GEM_SKIP = 0x0,

  /**
   * Automatic selection of grayscale enhancement mode. Currently, not supported.
   * Future implementations may automatically choose the most suitable enhancement based on image analysis.
   */
  GEM_AUTO = 0x1,

  /**
   * Uses the original, unprocessed image for subsequent operations. This mode is selected when no specific
   * grayscale enhancement is required, maintaining the image in its natural state.
   */
  GEM_GENERAL = 0x2,

  /**
   * Applies a grayscale equalization algorithm to the image, enhancing contrast and detail in gray level.
   * Suitable for images with poor contrast.
   */
  GEM_GRAY_EQUALIZE = 0x4,

  /**
   * Implements a grayscale smoothing algorithm to reduce noise and smooth the image.
   * This can be beneficial for images with high levels of grain or noise.
   */
  GEM_GRAY_SMOOTH = 0x8,

  /**
   * Enhances the image by applying both sharpening and smoothing algorithms. This mode aims to increase
   * clarity and detail while reducing noise, offering a balanced approach to image preprocessing.
   */
  GEM_SHARPEN_SMOOTH = 0x10
}
