import { t as SelectionMode } from "./SelectionMode-AuD4eRzF.js";
import { t as SparkScanSession } from "./SparkScanSession-C5xa7P_3.js";
import { n as SparkScanDelegate, r as SparkScanListener, t as SparkScan } from "./SparkScan-ZI65oTyn.js";
import { n as SparkScanViewUiListener, t as SparkScanView } from "./SparkScanView-BYn_4_zd.js";
import { t as SparkScanViewSettings } from "./SparkScanViewSettings-d9lkb1df.js";
import { n as SparkScanTimeoutManagerDelegate } from "./SparkScanTimeoutManager-BAsbUodW.js";
import { n as SparkScanViewSessionStopReason } from "./SparkScanAnalyticsManager-DguhUbs9.js";
import { DataCaptureContext, DataCaptureView, Feedback, Point } from "@scandit/web-datacapture-core";

//#region src/main/spark/ui/SparkScanViewPresenter.d.ts
declare class SparkScanViewPresenter implements SparkScanListener, SparkScanDelegate, SparkScanTimeoutManagerDelegate {
  private _context;
  private _sparkScan;
  protected _preparationPromise: Promise<void> | null;
  protected _stopScanningPromise: Promise<void> | null;
  protected _dataCaptureView: DataCaptureView | null;
  sparkScanViewSettings: SparkScanViewSettings;
  private cameraManager;
  private get camera();
  private overlayManager;
  private sparkScanView;
  private feedbackManager;
  private preferenceManager;
  private stateManager;
  private scanningBehaviorCache?;
  private defaultSuccessBrush;
  private defaultErrorBrush;
  private listener?;
  private analyticsManager;
  private constructor();
  set context(context: DataCaptureContext | null);
  get context(): DataCaptureContext | null;
  set sparkScan(sparkScan: SparkScan | null);
  get sparkScan(): SparkScan | null;
  private get sparkScan$();
  private get context$();
  /**
   * this is called by the SparkScanViewPresenter constructor
   * and each time the SparkScanViewSettings setter is called
   */
  setSparkScanViewSettings(sparkScanViewSettings: SparkScanViewSettings): void;
  get portraitOrientationTriggerButtonTranslateX(): number;
  get portraitOrientationTriggerButtonTranslateY(): number;
  get landscapeOrientationTriggerButtonTranslateX(): number;
  get landscapeOrientationTriggerButtonTranslateY(): number;
  get portraitOrientationMiniPreviewTranslateX(): number;
  get portraitOrientationMiniPreviewTranslateY(): number;
  get landscapeOrientationMiniPreviewTranslateX(): number;
  get landscapeOrientationMiniPreviewTranslateY(): number;
  private get defaultTriggerButtonTranslateX();
  private get defaultTriggerButtonTranslateY();
  private get defaultMiniPreviewTranslateX();
  private get parentViewSizes();
  private get defaultMiniPreviewTranslateY();
  static forView(view: SparkScanView, sparkScanViewSettings: SparkScanViewSettings): SparkScanViewPresenter;
  prepareScanning(host: HTMLElement): Promise<void>;
  private _internalPrepareScanning;
  stopScanning(options: {
    sessionStopReason: SparkScanViewSessionStopReason;
  }): Promise<void>;
  private _internalStopScanning;
  startScanning(): Promise<void>;
  pauseScanning(): Promise<void>;
  onTriggerButtonPointerDown(): Promise<void>;
  onTriggerButtonTap(): Promise<void>;
  onTriggerButtonLongPressStart(): Promise<void>;
  private isSelectionModeOn;
  onTriggerButtonLongPressEnd(): Promise<void>;
  private cancelInProgressLongPress;
  onClickOutside(): Promise<void>;
  onVisibilityChange(): Promise<void>;
  onTargetModeButtonTap(targetModeEnabled: boolean, feedback?: Feedback, showToast?: boolean): Promise<void>;
  onScanningBehaviorButtonTap(continuousModeEnabled: boolean, feedback?: Feedback, showToast?: boolean): Promise<void>;
  onBarcodeFindButtonTap(): Promise<void>;
  onLabelCaptureButtonTap(): Promise<void>;
  onCameraSwitchButtonTap(): Promise<void>;
  onTorchButtonTap(torchEnabled: boolean, feedback?: Feedback, showToast?: boolean): Promise<void>;
  onMiniPreviewCloseButtonTap(): Promise<void>;
  onMiniPreviewResizeButtonTap(): void;
  onMiniPreviewZoomButtonTap(zoomFactor: number): Promise<void>;
  onMiniPreviewDrag(translate: Point, orientation: OrientationType): Promise<void>;
  onMiniPreviewPointerMove(): void;
  onMiniPreviewPointerUp(): Promise<void>;
  onMiniPreviewDragEnd(): Promise<void>;
  onMiniPreviewVisibilityChange(visible: boolean): Promise<void>;
  onTriggerButtonDrag(translate: Point, orientation: OrientationType): void;
  onOrientationChange(): Promise<void>;
  didScan(_sparkScan: SparkScan, session: SparkScanSession): Promise<void>;
  setListener(listener: SparkScanViewUiListener | null): void;
  onSwitchedToSmartScanSelection(): Promise<void>;
  onSwitchedAwayFromSmartScanSelection(): Promise<void>;
  private get tapBarcodeFeedback();
  private get silentBarcodeFeedback();
  private get silentErrorBarcodeFeedback();
  /**
   * selectionMode is the single source of truth for the initial target-mode (aimer) state
   * (SDC-31980): reflect it onto the legacy {@link SparkScanScanningMode} that drives the
   * target-mode button's selected state and the engine. Auto leaves the SDK in control (the
   * button is hidden), so the explicit target/non-target choice is left untouched in that case.
   */
  applySelectionModeToScanningMode(selectionMode: SelectionMode | null): void;
  private enableTargetModeLocationSelection;
  private applyPreferences;
  private setState;
  private updateSizeControlVisibility;
}
//#endregion
export { SparkScanViewPresenter as t };