import { t as SparkScanPreviewBehavior } from "./SparkScanPreviewBehavior-DUe7DkaL.js";
import { t as SparkScanScanningBehavior } from "./SparkScanScanningBehavior-DQLdEXPW.js";
import { Serializable } from "@scandit/web-datacapture-core/build/js/private/Serializable";

//#region src/main/spark/SparkScanScanningMode.d.ts
interface SparkScanScanningModeJSON {
  type: "default" | "target";
  scanningBehavior: SparkScanScanningBehavior;
  previewBehavior: SparkScanPreviewBehavior;
}
interface SparkScanScanningModeAnalyticsJSON {
  type: "default" | "target";
  settings: {
    scanning_behavior: SparkScanScanningBehavior;
    preview_behavior: SparkScanPreviewBehavior;
  };
}
declare abstract class SparkScanScanningMode implements Serializable<SparkScanScanningModeJSON> {
  readonly scanningBehavior: SparkScanScanningBehavior;
  readonly previewBehavior: SparkScanPreviewBehavior;
  protected readonly type: SparkScanScanningModeJSON["type"];
  constructor(scanningBehavior: SparkScanScanningBehavior, previewBehavior: SparkScanPreviewBehavior);
  toJSONObject(): SparkScanScanningModeJSON;
  protected toAnalyticsJSONObject(): SparkScanScanningModeAnalyticsJSON;
  protected abstract copyWith(scanningBehavior?: SparkScanScanningBehavior, previewBehavior?: SparkScanPreviewBehavior): SparkScanScanningMode;
  protected abstract changeMode(): SparkScanScanningMode;
}
/**
 * @deprecated Use SparkScanSettings.selectionMode = SelectionMode.Off instead. Will be removed in 9.0.
 */
declare class SparkScanScanningModeDefault extends SparkScanScanningMode {
  protected copyWith(scanningBehavior?: SparkScanScanningBehavior, previewBehavior?: SparkScanPreviewBehavior): SparkScanScanningMode;
  protected changeMode(): SparkScanScanningMode;
}
/**
 * @deprecated Use SparkScanSettings.selectionMode = SelectionMode.On instead. Will be removed in 9.0.
 */
declare class SparkScanScanningModeTarget extends SparkScanScanningMode {
  protected copyWith(scanningBehavior?: SparkScanScanningBehavior, previewBehavior?: SparkScanPreviewBehavior): SparkScanScanningMode;
  protected changeMode(): SparkScanScanningMode;
}
//#endregion
export { SparkScanScanningModeTarget as a, SparkScanScanningModeJSON as i, SparkScanScanningModeAnalyticsJSON as n, SparkScanScanningModeDefault as r, SparkScanScanningMode as t };