import { DataCaptureView, DataCaptureContext, Feedback, Point } from '@scandit/web-datacapture-core';
import { SparkScanViewSessionStopReason } from '../SparkScanAnalyticsManager.js';
import { S as SparkScanView, a as SparkScanViewUiListener } from '../../SparkScanView-Cwz62wQh.js';
import { SparkScanListener, SparkScanDelegate, SparkScan } from '../SparkScan.js';
import { SparkScanSession } from '../SparkScanSession.js';
import { SparkScanViewSettings } from './SparkScanViewSettings.js';
import '../SparkScanScanningMode.js';
import '@scandit/web-datacapture-core/build/js/private/Serializable';
import '../SparkScanPreviewBehavior.js';
import '../SparkScanScanningBehavior.js';
import '@scandit/web-datacapture-core/build/js/private/utils/index.js';
import '../SparkScanFeedbackDelegate.js';
import '../../Barcode.js';
import '../../EncodingRange.js';
import '../../StructuredAppendData.js';
import '../SparkScanBarcodeFeedback.js';
import './constants/tags.js';
import './SparkScanViewState.js';
import '../SparkScanSettings.js';
import '../../ScanIntention.js';
import '../../SymbologySettings.js';
import './SparkScanMiniPreviewSize.js';
import './SparkScanToastSettings.js';

declare class SparkScanViewPresenter implements SparkScanListener, SparkScanDelegate {
    private _context;
    private _sparkScan;
    protected _preparationPromise: Promise<void> | null;
    protected _stopScanningPromise: Promise<void> | null;
    protected _dataCaptureView: DataCaptureView | null;
    sparkScanViewSettings: SparkScanViewSettings;
    private get camera();
    private sparkScanOverlay?;
    private smartScanSelectionOverlay?;
    private sparkScanView;
    private feedbackManager;
    private preferenceManager;
    private stateManager;
    private triggerButtonCollapseTimeout;
    private inactiveStateTimeout;
    private resumeCapturingTimeout?;
    private scanningBehaviorCache?;
    private defaultSuccessBrush;
    private defaultErrorBrush;
    private listener?;
    private analyticsManager;
    private stateTimeouts;
    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>;
    onTriggerButtonLongPressEnd(): Promise<void>;
    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>;
    restartTimeouts(): void;
    stopTimeouts(): 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;
    private brushForFeedback;
    private switchToIdleState;
    private setBrushToOverlays;
    private switchToActiveState;
    private switchToInactiveState;
    private switchToErrorState;
    private enableTargetModeLocationSelection;
    private enableTargetMode;
    private applyPreferences;
    private setState;
    private startTimeoutForCurrentState;
    private updateSizeControlVisibility;
}

export { SparkScanViewPresenter };
