import { DataCaptureOverlay, DataCaptureView } from '@scandit/web-datacapture-core';
import { Serializable } from '@scandit/web-datacapture-core/build/js/private/Serializable.js';
import { nativeHandle } from '@scandit/web-datacapture-core/build/js/private/nativeHandle.js';
import { N as NativeProxyHandle } from '../../NativeProxy-BpXwaSl-.js';
import { L as LabelCapture } from '../../LabelCapture-DrHOFOh1.js';
import { LabelCaptureValidationFlowSettings } from '../LabelCaptureValidationFlowSettings.js';
import { LabelField } from '../LabelField.js';
import '@scandit/web-datacapture-barcode';
import '@scandit/web-datacapture-core/build/js/worker/dataCaptureWorkerRelated';
import '../../djinni-types/sdcBarcodeInternalSdkData.js';
import '../../djinni-types/sdcBarcodeData.js';
import '../../djinni-types/sdcCoreCommonGeometry.js';
import '../../djinni-types/sdcCoreCommonBuffer.js';
import '../../sdcLabelInternalModuleCapture-CxPSiq2o.js';
import '../../djinni-types/sdcSymbologySettings.js';
import '../../djinni-types/sdcCoreInternalSdkArea.js';
import '../../djinni-types/sdcCoreInternalSdkCommonGeometry.js';
import '../../djinni-types/sdcCoreCommonGraphic.js';
import '../../djinni-types/sdcCoreInternalSdkCommonAsync.js';
import '../../djinni-types/sdcCoreInternalSdkOcr.js';
import '../../djinni-types/sdcCoreCommon.js';
import '../../djinni-types/sdcLabelData.js';
import '../../djinni-types/sdcLabelInternalModuleData.js';
import '../../djinni-types/sdcCoreInternalSdkUiViewfinder.js';
import '../../djinni-types/sdcCoreInternalSdkCommonGraphics.js';
import '../../djinni-types/sdcLabelInternalModuleUiOverlay.js';
import '../../djinni-types/sdcCoreInternalSdkCapture.js';
import '../../djinni-types/sdcCoreInternalSdkUiStyle.js';
import '../AdaptiveRecognitionMode.js';
import '../CapturedLabel.js';
import '../LabelFieldState.js';
import '../LabelFieldType.js';
import '../LabelFieldValueType.js';
import '../LabelDateResult.js';
import '../LabelCaptureSession.js';
import '../LabelDateFormat.js';
import '../LabelDateComponentFormat.js';
import '../LabelFieldLocationType.js';
import '../ReceiptScanningLineItem.js';
import '../ValidationFlowField.js';
import '../LabelCaptureFeedback.js';
import '@scandit/web-datacapture-core/build/js/private/Serializable';
import '../LabelCaptureSettings.js';
import '../LabelDefinition.js';
import '../ImeiOneBarcode.js';
import '../BarcodeField.js';
import '../LabelFieldDefinition.js';
import '../ImeiTwoBarcode.js';
import '../PackingDateText.js';
import '../TextField.js';
import '../PartNumberBarcode.js';
import '../SerialNumberBarcode.js';
import '../TotalPriceText.js';
import '../UnitPriceText.js';
import '../WeightText.js';
import '../CustomBarcode.js';
import '../LabelFieldLocation.js';
import '../CustomText.js';
import '../DateText.js';
import '../ExpiryDateText.js';

interface LabelCaptureValidationFlowOverlayJSON {
    type: "ValidationFlowOverlay";
    nativeHandle: NativeProxyHandle;
}
interface LabelCaptureValidationFlowListener {
    onValidationFlowLabelCaptured(fields: LabelField[]): void;
    onManualInput(field: LabelField, oldValue: string | undefined, newValue: string): void;
}
declare class LabelCaptureValidationFlowOverlay implements DataCaptureOverlay, Serializable<LabelCaptureValidationFlowOverlayJSON> {
    [nativeHandle]: NativeProxyHandle;
    listener: LabelCaptureValidationFlowListener;
    private labelCapture;
    private stateManager;
    private presenter;
    private onContextUpdatedListenerHandler;
    private feedback_;
    private originalLabelCaptureFeedback;
    private beforeMountScanArea;
    private settings;
    private dataCaptureView;
    static withLabelCaptureForView(labelCapture: LabelCapture, dataCaptureView: DataCaptureView): Promise<LabelCaptureValidationFlowOverlay>;
    applySettings(settings: LabelCaptureValidationFlowSettings): Promise<void>;
    private constructor();
    toJSONObject(): LabelCaptureValidationFlowOverlayJSON;
    private onAddOverlay;
    private onRemoveOverlay;
    /**
     * This listener is used to remove the event listeners when the overlay is removed
     * from the data capture view
     */
    private onContextUpdatedListener;
}

export { type LabelCaptureValidationFlowListener, LabelCaptureValidationFlowOverlay, type LabelCaptureValidationFlowOverlayJSON };
