import { t as TrackedBarcode } from "./TrackedBarcode-CdGDhF7j.js";
import { t as BarcodeBatch } from "./BarcodeBatch-CNcFT3L0.js";
import { r as TrackedBarcodeView } from "./TrackedBarcodeView-Do4QxIB8.js";
import { Anchor, DataCaptureOverlay, DataCaptureView, PointWithUnit } from "@scandit/web-datacapture-core";
import { Serializable } from "@scandit/web-datacapture-core/build/js/private/Serializable";

//#region src/main/BarcodeBatchAdvancedOverlay.d.ts
interface BarcodeBatchAdvancedOverlayListener {
  viewForTrackedBarcode?(overlay: BarcodeBatchAdvancedOverlay, trackedBarcode: TrackedBarcode): Promise<TrackedBarcodeView | null>;
  anchorForTrackedBarcode?(overlay: BarcodeBatchAdvancedOverlay, trackedBarcode: TrackedBarcode): Anchor;
  offsetForTrackedBarcode?(overlay: BarcodeBatchAdvancedOverlay, trackedBarcode: TrackedBarcode): PointWithUnit;
  didTapViewForTrackedBarcode?(overlay: BarcodeBatchAdvancedOverlay, trackedBarcode: TrackedBarcode): void;
}
interface BarcodeBatchAdvancedOverlayJSON {
  type: "barcodeTrackingAdvanced";
  shouldShowScanAreaGuides: boolean;
}
declare class BarcodeBatchAdvancedOverlay implements DataCaptureOverlay, Serializable<BarcodeBatchAdvancedOverlayJSON> {
  listener: BarcodeBatchAdvancedOverlayListener | null;
  private readonly type;
  private barcodeBatch;
  private _shouldShowScanAreaGuides;
  private _viewForBarcode;
  private _anchorForBarcode;
  private _offsetForBarcode;
  private _viewForBarcodeFromListener;
  private _anchorForBarcodeFromListener;
  private _offsetForBarcodeFromListener;
  private _anchorPositions;
  private _barcodeForId;
  private privateListener;
  private view;
  private lastSession;
  get shouldShowScanAreaGuides(): boolean;
  set shouldShowScanAreaGuides(shouldShow: boolean);
  static withBarcodeBatchForView(barcodeBatch: BarcodeBatch, view: DataCaptureView | null): Promise<BarcodeBatchAdvancedOverlay>;
  setViewForTrackedBarcode(view: Promise<TrackedBarcodeView | null> | null, trackedBarcode: TrackedBarcode): Promise<void>;
  setAnchorForTrackedBarcode(anchor: Anchor, trackedBarcode: TrackedBarcode): void;
  setOffsetForTrackedBarcode(offset: PointWithUnit, trackedBarcode: TrackedBarcode): void;
  clearTrackedBarcodeViews(): void;
  toJSONObject(): BarcodeBatchAdvancedOverlayJSON;
  private getTrackedBarcodeForIdentifier;
  private setViewForTrackedBarcodeFromListener;
  private processRemovedBarcodes;
  private processAddedBarcodes;
  private processUpdatedTrackedBarcodes;
  /**
   * Used in PrivateBarcodeBatchAdvancedOverlayListener.
   * Triggers a render into the view
   * @param session {BarcodeBatchSession}
   * @private
   * @hidden
   */
  private update;
}
//#endregion
export { BarcodeBatchAdvancedOverlay, BarcodeBatchAdvancedOverlayJSON, BarcodeBatchAdvancedOverlayListener };