import { t as SparkScan } from "./SparkScan-ZI65oTyn.js";
import { t as SparkScanScanningMode } from "./SparkScanScanningMode-uQ4skb_0.js";
import { t as SparkScanViewState } from "./SparkScanViewState-QCAjXmlR.js";
import { t as SparkScanFeedbackDelegate } from "./SparkScanFeedbackDelegate-DQm6ix7E.js";
import { t as SparkScanViewSettings } from "./SparkScanViewSettings-d9lkb1df.js";
import { r as sparkScanViewTag } from "./tags-DWZEPE_e.js";
import { Color, DataCaptureContext } from "@scandit/web-datacapture-core";
import { ScanditHTMLElement as ScanditHTMLElement$1 } from "@scandit/web-datacapture-core/build/js/private/utils/index.js";

//#region src/main/spark/ui/SparkScanViewUiListener.d.ts
interface SparkScanViewUiListener {
  didChangeScanningMode?(scanningMode: SparkScanScanningMode): void;
  didChangeViewState?(state: SparkScanViewState): void;
  didTapBarcodeFindButton?(view: SparkScanView): void;
  didTapLabelCaptureButton?(view: SparkScanView): void;
}
//#endregion
//#region src/main/spark/ui/SparkScanView.d.ts
declare class SparkScanView extends ScanditHTMLElement$1 {
  private _targetModeButtonVisible;
  private _scanningBehaviorButtonVisible;
  private _torchControlVisible;
  private _zoomSwitchControlVisible;
  private _previewSizeControlVisible;
  private _barcodeFindButtonVisible;
  private _labelCaptureButtonVisible;
  private _cameraSwitchButtonVisible;
  private _previewCloseControlVisible;
  private _triggerButtonVisible;
  private _isTorchAvailable;
  private _isZoomAvailable;
  private _isConnected;
  private _sizingMode;
  /**
   * @deprecated Use `selectionModeButtonVisible` instead. Will be removed in 9.0.
   */
  get targetModeButtonVisible(): boolean;
  /**
   * @deprecated Use `selectionModeButtonVisible` instead. Will be removed in 9.0.
   */
  set targetModeButtonVisible(value: boolean);
  /**
   * Whether the toolbar button that toggles `SparkScanSettings.selectionMode` between
   * `SelectionMode.On` and `SelectionMode.Off` is visible.
   *
   * Renamed replacement for the deprecated `targetModeButtonVisible`. Both properties share
   * the same underlying state; when both keys are present in a deserialised JSON snapshot,
   * `selectionModeButtonVisible` wins (read last).
   */
  get selectionModeButtonVisible(): boolean;
  set selectionModeButtonVisible(value: boolean);
  get scanningBehaviorButtonVisible(): boolean;
  set scanningBehaviorButtonVisible(value: boolean);
  get torchControlVisible(): boolean;
  set torchControlVisible(value: boolean);
  get zoomSwitchControlVisible(): boolean;
  set zoomSwitchControlVisible(value: boolean);
  get previewSizeControlVisible(): boolean;
  set previewSizeControlVisible(value: boolean);
  get barcodeFindButtonVisible(): boolean;
  set barcodeFindButtonVisible(value: boolean);
  get labelCaptureButtonVisible(): boolean;
  set labelCaptureButtonVisible(value: boolean);
  get cameraSwitchButtonVisible(): boolean;
  set cameraSwitchButtonVisible(value: boolean);
  get previewCloseControlVisible(): boolean;
  set previewCloseControlVisible(value: boolean);
  get triggerButtonVisible(): boolean;
  set triggerButtonVisible(value: boolean);
  triggerButtonCollapsedColor?: Color;
  triggerButtonExpandedColor?: Color;
  triggerButtonAnimationColor?: Color;
  triggerButtonTintColor?: Color;
  toolbarBackgroundColor?: Color;
  toolbarIconActiveTintColor?: Color;
  toolbarIconInactiveTintColor?: Color;
  feedbackDelegate: SparkScanFeedbackDelegate;
  get dataCaptureContext(): DataCaptureContext | null;
  set dataCaptureContext(context: DataCaptureContext | null);
  get sparkScan(): SparkScan | null;
  set sparkScan(sparkScan: SparkScan | null);
  private onSparkScanSettingsApplied;
  private applySelectionModeToToolbar;
  private resizeObserver;
  private onResizeHandler;
  private settings;
  private presenter;
  private miniPreview;
  private triggerButton;
  private visualFeedback;
  private miniPreviewTimeout;
  private orientationObserver;
  private miniPreviewPointerUpListener;
  private miniPreviewPointerMoveListener;
  private miniPreviewButtonTapListener;
  private miniPreviewDragListener;
  private miniPreviewDragEndListener;
  private miniPreviewVisibilityChangeListener;
  private triggerButtonPointerDownListener;
  private triggerButtonTapListener;
  private triggerButtonLongPressStartListener;
  private triggerButtonLongPressEndListener;
  private triggerButtonDragListener;
  private toolbarButtonTapListener;
  private clickOutsideListener;
  private visibilityChangeListener;
  private orientationChangeListener;
  private holdingToScan;
  private get _targetModeEnabledMessage();
  private get _targetModeDisabledMessage();
  private get _continuousModeEnabledMessage();
  private get _continuousModeDisabledMessage();
  private get _scanPausedMessage();
  private get _torchEnabledMessage();
  private get _torchDisabledMessage();
  private get _zoomedInMessage();
  private get _zoomedOutMessage();
  set sparkScanViewSettings(sparkScanViewSettings: SparkScanViewSettings | null);
  get sparkScanViewSettings(): SparkScanViewSettings | null;
  static forElement(element: Element, context: DataCaptureContext, sparkScan: SparkScan, sparkScanViewSettings?: SparkScanViewSettings): SparkScanView;
  static register(): void;
  private static create;
  private static createStyleElement;
  prepareScanning(): Promise<void>;
  startScanning(): Promise<void>;
  pauseScanning(): Promise<void>;
  stopScanning(): Promise<void>;
  showToast(message: string): void;
  setListener(listener: SparkScanViewUiListener | null): void;
  setTriggerButtonImage(image?: HTMLImageElement | SVGElement): void;
  private setWidthAndHeightCssStyleProperties;
  private onResize;
  /**
   * Checks if the parent element is too small to contain the expanded MiniPreview
   * and updates the sizing mode accordingly. In unconstrained mode, elements
   * use position:fixed and are positioned relative to the viewport instead of the parent.
   */
  private updateSizingMode;
  /**
   * Auto-prepare scanning when properties are set and element is connected
   */
  private _maybeAutoPrepareScanning;
  private connectedCallback;
  private disconnectedCallback;
  private onMiniPreviewPointerUp;
  private onMiniPreviewPointerMove;
  private onMiniPreviewButtonTap;
  private onMiniPreviewDrag;
  private onMiniPreviewDragEnd;
  private onMiniPreviewVisibilityChange;
  private onTriggerButtonPointerDown;
  private onTriggerButtonTap;
  private onTriggerButtonLongPressStart;
  private onTriggerButtonLongPressEnd;
  private onTriggerButtonDrag;
  private onToolbarButtonTap;
  private onClickOutside;
  private onVisibilityChange;
  private onTargetModeButtonTap;
  private onScanningBehaviorButtonTap;
  private onBarcodeFindButtonTap;
  private onLabelCaptureButtonTap;
  private onCameraSwitchButtonTap;
  private onTorchButtonTap;
  private onMiniPreviewTimeoutFinished;
  private onOrientationChange;
  private getDefaultCssVariableValue;
  private setTriggerButtonPressedColor;
  private readonly miniPreviewListeners;
  private readonly triggerButtonListeners;
  private addMiniPreviewListeners;
  private removeMiniPreviewListeners;
  private addTriggerButtonListeners;
  private removeTriggerButtonListeners;
  private repositionTriggerButtonIfOutOfBounds;
}
declare global {
  interface HTMLElementTagNameMap {
    [sparkScanViewTag]: SparkScanView;
  }
}
//#endregion
export { SparkScanViewUiListener as n, SparkScanView as t };