/// <reference types="emscripten" />
import { U as DataCaptureEngine, W as Module, _ as AnyDataCaptureActionMessage, $ as AugmentedWorker, a0 as ModuleHandler, Z as DataCaptureCallbackMessage, a1 as DataCaptureActionMessageKey, a2 as EngineWorkerResponse } from '../Camera-Cz-HPV-7.js';
import '../private/Serializable.js';
import '../private/FrameReaders/WatermarkStack.js';
import '../tsHelper.js';
import '../Common.js';
import '../DataCaptureContextSettings.js';
import '../DataCaptureViewPlusRelated.js';
import '../ViewControls.js';
import '../private/CustomLocationsView.js';
import '../private/View.js';
import '../private/AnchorPositions.js';
import '../private/HtmlElementState.js';
import '../logger.js';
import '../LoadingStatus.js';

declare class WorkerMain<E extends DataCaptureEngine<M>, M extends Module> {
    dataCaptureInstance: E;
    onMessageListener: (event: MessageEvent<AnyDataCaptureActionMessage>) => boolean;
    private readonly workerSelf;
    constructor(workerSelf: AugmentedWorker<M>, module: ModuleHandler<M>);
    listenToMessages(): void;
    postMessage(message: DataCaptureCallbackMessage, transfer?: Transferable[]): void;
    getOffscreenCanvas(): OffscreenCanvas | undefined;
    hasPayload(result: unknown): result is {
        payload: unknown;
    };
    hasTransferables(result: unknown): result is {
        transferables: Transferable[];
    };
    respondWith<C extends DataCaptureActionMessageKey>(command: C, requestId: number, executor: () => EngineWorkerResponse<C>): Promise<void>;
    /**
     * Messages received from the main thread (actions to undertake)
     */
    onMessage(event: MessageEvent<AnyDataCaptureActionMessage>): boolean;
}

export { WorkerMain };
