import type { WorkerFunctions as BaseWorkerFunctions, ProcessFrameParameters, UpdateContextParameters, Vector } from "@scandit/web-datacapture-core/build/js/worker/index";
import { DataCaptureEngine as CoreDataCaptureEngine } from "@scandit/web-datacapture-core/build/js/worker/index.js";
import type { DataCaptureCallbackMessage, EngineWorkerResponse, Module } from "./dataCaptureWorkerRelated";
import type { IdCaptureSettingsJSON } from "../IdCaptureSettings";
import type { CapturedIdJSON } from "../SerializedTypes";
import type { SafariOOMEventData } from "../safariOOMDetection/types";
import { IdCaptureMode } from "./IdCaptureMode";
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> {
    workerFunctions: WorkerFunctions;
    protected idCaptureMode: IdCaptureMode | null;
    protected lastIdCaptureModeSerializedSettings: string;
    getModeDeserializers(): Vector;
    protected receiveNewCaptureMode(newMode: IdCaptureMode): void;
    processFrame(parameters: ProcessFrameParameters): EngineWorkerResponse<"processFrame">;
    updateContext(contextUpdateParameters: UpdateContextParameters): EngineWorkerResponse<"updateContext">;
    idCaptureSetLastResult(result: string): void;
    idCaptureSetLastError(error: string): void;
    idCaptureSetLastLocalizedId(localizedId: string): void;
    idCaptureSetLastDetectionIssue(issue: string): void;
    idCaptureReset(): void;
    idCaptureSetExternalTransactionId(transactionId: string | null): void;
    idCaptureGetExternalTransactionId(): EngineWorkerResponse<"idCaptureGetExternalTransactionId">;
    idCaptureApplySettings(settings: IdCaptureSettingsJSON): void;
    idCaptureGetCentaurusSettings(): EngineWorkerResponse<"idCaptureGetCentaurusSettings">;
    idCaptureParse(code: string): EngineWorkerResponse<"idCaptureParse">;
    idCaptureBarcodeVerifyAamvaCapture(capturedId: CapturedIdJSON, endpoint: string | null): Promise<EngineWorkerResponse<"idCaptureBarcodeVerifyAamvaCapture">>;
    idCaptureDataConsistencyVerifyCapture(capturedId: CapturedIdJSON): EngineWorkerResponse<"idCaptureDataConsistencyVerifyCapture">;
    idCaptureDrivingLicenseDetailsCreateWithCentaurusData(vehicleClass: string, restrictions: string, endorsements: string): EngineWorkerResponse<"idCaptureDrivingLicenseDetailsCreateWithCentaurusData">;
    getIdOpenSourceSoftwareLicenseInfo(): EngineWorkerResponse<"getIdOpenSourceSoftwareLicenseInfo">;
    idCaptureReportSafariAbruptReload(environmentData: SafariOOMEventData): EngineWorkerResponse<"idCaptureReportSafariAbruptReload">;
    idCaptureDispose(): void;
    protected getWasmSideModuleFileName(): string;
    protected getWasmCoreFileName(simdSupport: boolean, webassemblyMultithreadingSupport: boolean): string;
    protected getWasmCoreExpectedHash(simdSupport: boolean, webassemblyMultithreadingSupport: boolean): string;
    protected getWasmMetadata(): Record<string, {
        bytes: number;
    }>;
}
