import type { CaptureModeDeserializerInstance, JSONParseable, ModuleHandler, Vector, WasmFrameData, WorkerFunctions as BaseWorkerFunctions } from "scandit-web-datacapture-core/build/js/worker";
import { DataCaptureEngine as CoreDataCaptureEngine } from "scandit-web-datacapture-core/build/js/worker";
import type { Symbology } from "../Barcode";
import type { EngineWorkerResponse } from "./dataCapture.worker";
import type { DataCaptureCallbackMessage, Module } from "./dataCaptureWorker+related";
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 barcodeCaptureMode: BarcodeCaptureMode;
    protected workerFunctions: WorkerFunctions;
    constructor(moduleHandler: ModuleHandler<Module>, workerFunctions: WorkerFunctions);
    createBlurryTable(symbology: Symbology): EngineWorkerResponse<"createBlurryTable">;
    getModeDeserializers(): Vector;
    getWasmSideModuleFileName(): string;
    getWasmCoreFileName(): string;
    protected getWasmCoreExpectedHash(): string;
}
declare class BarcodeCaptureMode {
    barcodeDeserializer: CaptureModeDeserializerInstance;
    private listenerSet;
    private readonly coreEngine;
    private readonly Module;
    private readonly workerFunctions;
    constructor(coreEngine: DataCaptureEngine, Module: Module, workerFunctions: WorkerFunctions);
    setup(): void;
    protected didScan(session: JSONParseable, frameData: WasmFrameData): void;
    didUpdateSession(session: JSONParseable): void;
    successFeedback(): void;
    getDeserializer(): CaptureModeDeserializerInstance;
}
export {};
