import { DataCaptureOverlay, BrushJSON, DataCaptureMode, Brush } from '@scandit/web-datacapture-core'; import { Serializable } from '@scandit/web-datacapture-core/build/js/private/Serializable'; type SmartScanSelectionOverlayType = "smartScanSelection" | "smartScanSelectionForSparkScan"; interface SmartScanSelectionOverlayJSON { type: SmartScanSelectionOverlayType; brush?: BrushJSON; errorBrush?: BrushJSON; } /** * SmartScanSelection overlay that adapts to different capture modes. * * This class supports multiple overlay types based on the capture mode, in order to work around a C++ issue. * Both BarcodeCapture and SparkScan support the SmartScanSelection overlay. * However, C++ currently uses BarcodeCaptureDeserializer to deserialize SparkScan. * When the deserializer encounters a SmartScanSelection overlay, it assumes the context has a BarcodeCapture mode attached. * If it finds SparkScan instead, deserialization fails. * * To work around this, we use mode-specific type identifiers that tell the deserializer which mode to expect. */ declare class SmartScanSelectionOverlay implements DataCaptureOverlay, Serializable { private readonly type; private brush?; private errorBrush?; private constructor(); static forMode(mode: DataCaptureMode): SmartScanSelectionOverlay; setBrush(brush: Brush): void; setErrorBrush(brush: Brush): void; toJSONObject(): SmartScanSelectionOverlayJSON; } export { SmartScanSelectionOverlay, type SmartScanSelectionOverlayJSON, type SmartScanSelectionOverlayType };