import { n as BarcodeArSettingsJSON } from "./BarcodeArSettings-B9BVP7j6.js";
import { r as BarcodeFindItemJSON } from "./BarcodeFindItem-DY4hEDJC.js";
import { n as BarcodeFindSettingsJSON } from "./BarcodeFindSettings-MEVLcw5G.js";
import { n as BarcodeFindBasicOverlayJSON } from "./BarcodeFindBasicOverlay-d6CI-m5J.js";
import { t as Property } from "./PropertyBehaviorSubject-ChzH7iRU.js";
import { BarcodeCaptureModule, DataCaptureCallbackMessage as DataCaptureCallbackMessage$1, Module as Module$1 } from "./worker/dataCaptureWorkerRelated.js";
import { DataCaptureEngine } from "@scandit/web-datacapture-core/build/js/worker/index.js";
import { ModuleHandler, Vector, WorkerFunctions } from "@scandit/web-datacapture-core/build/js/worker/index";
import { CaptureModeDeserializerInstance as CaptureModeDeserializerInstance$1, JSONParseable as JSONParseable$1, WasmFrameData as WasmFrameData$1 } from "@scandit/web-datacapture-core/build/js/worker/dataCaptureWorkerRelated";

//#region src/main/worker/BarcodeBatchMode.d.ts
declare class BarcodeBatchMode {
  barcodeBatchDeserializer: CaptureModeDeserializerInstance$1;
  private readonly Module;
  private readonly coreEngine;
  private readonly workerFunctions;
  private trackingListenerSet;
  constructor(coreEngine: DataCaptureEngine$1, Module: Module$1, workerFunctions: WorkerFunctions$1);
  barcodeBatchDidUpdateSession(session: JSONParseable$1): void;
  getBatchDeserializer(): CaptureModeDeserializerInstance$1;
  setup(): void;
  protected onTrackedBarcodeTapped(trackedBarcode: JSONParseable$1): void;
}
//#endregion
//#region src/main/worker/BarcodeCaptureMode.d.ts
declare class BarcodeCaptureMode {
  barcodeCaptureDeserializer: CaptureModeDeserializerInstance$1;
  barcodeBatchDeserializer: CaptureModeDeserializerInstance$1;
  private readonly Module;
  private readonly coreEngine;
  private readonly workerFunctions;
  private captureListenerSet;
  constructor(coreEngine: DataCaptureEngine$1, Module: Module$1, workerFunctions: WorkerFunctions$1);
  barcodeCaptureDidUpdateSession(session: JSONParseable$1): void;
  barcodeBatchDidUpdateSession(session: JSONParseable$1): void;
  getCaptureDeserializer(): CaptureModeDeserializerInstance$1;
  getTrackingDeserializer(): CaptureModeDeserializerInstance$1;
  setup(): void;
  successFeedback(): void;
  protected barcodeCaptureDidScan(session: JSONParseable$1, frameData: WasmFrameData$1): void;
}
//#endregion
//#region src/main/worker/BarcodeFindMode.d.ts
declare class BarcodeFindMode {
  private readonly Module;
  private readonly coreEngine;
  private readonly workerFunctions;
  private barcodeFind;
  private basicOverlay;
  private transparentGuidanceHintStyle;
  private customerTransformation;
  constructor(coreEngine: DataCaptureEngine$1, Module: Module$1, workerFunctions: WorkerFunctions$1);
  forSettings(settings: BarcodeFindSettingsJSON): Promise<void>;
  barcodeFindFeedback(): void;
  start(): void;
  stop(): void;
  pause(): void;
  setEnabled(enabled: boolean): void;
  setItemList(list: BarcodeFindItemJSON[]): void;
  removeMode(): Promise<void>;
  addBasicOverlay(): void;
  removeBasicOverlay(): void;
  applySettings(findSettings: BarcodeFindSettingsJSON): Promise<void>;
  updateBasicOverlay(json: BarcodeFindBasicOverlayJSON): void;
  setTransformerFunction(transformation?: ((data: string) => string) | null): void;
  private successFeedback;
  private listUpdatedFeedback;
  private setToast;
  private setGuidance;
  private createWebFindGuidanceHandler;
}
//#endregion
//#region src/main/worker/SparkScanMode.d.ts
declare class SparkScanMode {
  sparkScanDeserializer: CaptureModeDeserializerInstance$1;
  private readonly Module;
  private readonly coreEngine;
  private readonly workerFunctions;
  private captureListenerSet;
  private sparkScanOverlay?;
  private propertyPushSource;
  private sparkScan?;
  constructor(coreEngine: DataCaptureEngine$1, Module: Module$1, workerFunctions: WorkerFunctions$1);
  sparkScanDidUpdateSession(session: JSONParseable$1): void;
  getSparkScanDeserializer(): CaptureModeDeserializerInstance$1;
  setup(): void;
  emitErrorFeedback(shouldRemoveBrush: boolean): void;
  overlayReadyForDraw(): void;
  discardEnqueuedData(): void;
  analyticsManagerPropertyChanged(property: Property): void;
  successFeedback(): void;
  selectItemWithSmartScanSelection(): void;
  removeMode(): Promise<void>;
  protected sparkScanDidScan(session: JSONParseable$1, frameData: WasmFrameData$1): void;
}
//#endregion
//#region src/main/worker/dataCaptureEngine.d.ts
interface WorkerFunctions$1 extends WorkerFunctions {
  postMessage: (message: DataCaptureCallbackMessage$1, transfer?: Transferable[]) => void;
  getOffscreenCanvas: () => OffscreenCanvas | undefined;
}
interface BarcodeCommand {
  command: string;
}
/**
 * DataCaptureEngine is an abstraction of the engine, it is created by the engine worker
 * and should be used as a singleton. It calls the underlying engine methods directly.
 */
declare class DataCaptureEngine$1 extends DataCaptureEngine<BarcodeCaptureModule> {
  barcodeFindMode: BarcodeFindMode;
  sparkScanMode: SparkScanMode;
  barcodeArMode: BarcodeArMode;
  protected barcodeCaptureMode: BarcodeCaptureMode;
  protected barcodeBatchMode: BarcodeBatchMode;
  protected workerFunctions: WorkerFunctions$1;
  constructor(moduleHandler: ModuleHandler<BarcodeCaptureModule>, workerFunctions: WorkerFunctions$1);
  getModeDeserializers(): Vector;
  protected getWasmSideModuleFileName(): string;
  protected getWasmCoreFileName(simdSupport: boolean, multithreadSupport: boolean): string;
  protected getWasmCoreExpectedHash(simdSupport: boolean, multithreadSupport: boolean): string;
  protected getWasmMetadata(): Record<string, {
    bytes: number;
  }>;
}
//#endregion
//#region src/main/worker/BarcodeArMode.d.ts
declare class BarcodeArMode {
  private readonly Module;
  private readonly coreEngine;
  private readonly workerFunctions;
  private barcodeAr;
  constructor(coreEngine: DataCaptureEngine$1, Module: Module$1, workerFunctions: WorkerFunctions$1);
  forSettings(settings: BarcodeArSettingsJSON): Promise<void>;
  start(): void;
  pause(): void;
  stop(): void;
  setEnabled(enabled: boolean): void;
  removeMode(): Promise<void>;
  applySettings(checkSettingsJSON: BarcodeArSettingsJSON): void;
}
//#endregion
export { SparkScanMode as a, BarcodeBatchMode as c, WorkerFunctions$1 as i, BarcodeCommand as n, BarcodeFindMode as o, DataCaptureEngine$1 as r, BarcodeCaptureMode as s, BarcodeArMode as t };