import { DataCaptureEngine as CoreDataCaptureEngine } from "scandit-web-datacapture-core/build/js/worker";
import type { UpdateContextParameters, CaptureModeDeserializerInstance, ModuleHandler, Vector, WorkerFunctions as BaseWorkerFunctions, ProcessFrameParameters, WasmFrameData } from "scandit-web-datacapture-core/build/js/worker";
import type { EngineWorkerResponse } from "./dataCapture.worker";
import type { DataCaptureCallbackMessage, IdCaptureSessionHolder, Module } from "./dataCaptureWorker+related";
import type { AamvaVizBarcodeComparisonResultJSON, CapturedIdJSON } from "../SerializedTypes";
export interface WorkerFunctions extends BaseWorkerFunctions {
    postMessage: (message: DataCaptureCallbackMessage, transfer?: Transferable[]) => void;
}
/**
 * DataCaptureEngine is an abstraction of the engine, it is created by the engine worker
 * and should be used as a singleton. It calls the underlying engine methods directly.
 */
export declare class DataCaptureEngine extends CoreDataCaptureEngine<Module> {
    protected idCaptureMode: IdCaptureMode;
    protected workerFunctions: WorkerFunctions;
    protected lastIdCaptureModeSerializedSettings: string;
    constructor(moduleHandler: ModuleHandler<Module>, workerFunctions: WorkerFunctions);
    processFrame(parameters: ProcessFrameParameters): EngineWorkerResponse<"processFrame">;
    updateContext(contextUpdateParameters: UpdateContextParameters): EngineWorkerResponse<"updateContext">;
    idCaptureSetLastResult(result: string): void;
    idCaptureSetLastError(error: string): void;
    idCaptureSetLastLocalizedId(localizedId: string): void;
    idCaptureReset(): Promise<void>;
    idCaptureFrameProcessed(): void;
    idCaptureVerifyAamvaCapture(capturedId: CapturedIdJSON): EngineWorkerResponse<"idCaptureVerifyAamvaCapture">;
    getModeDeserializers(): Vector;
    getWasmSideModuleFileName(): string;
    getWasmCoreFileName(): string;
    protected getWasmCoreExpectedHash(): string;
}
declare type IdCaptureModeState = "created" | "disposed" | "initial" | "started";
declare class IdCaptureMode {
    private idCaptureDeserializer;
    private SDCIdCaptureMode;
    private listenerSet;
    private lastResult;
    private lastError;
    private lastLocalizedId;
    private resetRequestDeferred?;
    private processFrameDeferred?;
    private forceResetTimer;
    private readonly coreEngine;
    private readonly Module;
    private readonly workerFunctions;
    private _state;
    constructor(coreEngine: DataCaptureEngine, Module: Module, workerFunctions: WorkerFunctions);
    get state(): IdCaptureModeState;
    private set state(value);
    isReadyToProcessFrame(): boolean;
    setLastResult(result: string): void;
    setLastError(error: string): void;
    setLastLocalizedId(localizedId: string): void;
    reset(): Promise<void>;
    resolveLastFrameProcessDeferred(): void;
    isCentaurusProcessingFrame(): boolean;
    idCaptureVerifyAamvaCapture(capturedId: CapturedIdJSON): AamvaVizBarcodeComparisonResultJSON | null;
    start(): void;
    onResetFromSDC(): void;
    onIdCapturedCallback(session: IdCaptureSessionHolder, frameData: WasmFrameData): void;
    onIdLocalizedCallback(session: IdCaptureSessionHolder, frameData: WasmFrameData): void;
    onIdRejectedCallback(session: IdCaptureSessionHolder, frameData: WasmFrameData): void;
    getDeserializer(): CaptureModeDeserializerInstance;
    dispose(): void;
    restart(): void;
}
export {};
