UNPKG

scandit-web-datacapture-id

Version:

Scandit Data Capture SDK for the Web

180 lines (179 loc) 8.77 kB
import type { PrivateLoadableFrameData } from "scandit-web-datacapture-core"; import type { AnyDataCaptureActionMessage as CoreAnyDataCaptureActionMessage, CaptureModeDeserializerInstance, DataCaptureActionMessageKey as CoreDataCaptureActionMessageKey, DataCaptureCallbackMessage as CoreDataCaptureCallbackMessage, DataCaptureCallbackMessageKeys as CoreDataCaptureCallbackMessageKeys, EmscriptenClassHandle, Module as CoreModule, Vector, WasmFrameData, WorkerResponse as CoreWorkerResponse } from "scandit-web-datacapture-core/build/js/worker"; import type { AamvaVizBarcodeComparisonResultJSON, CapturedIdJSON, IdCaptureSessionJSON } from "../SerializedTypes"; /** * MESSAGES (ACTIONS) SENT TO THE WORKER */ export declare type DataCaptureActionMessageKey = CoreDataCaptureActionMessageKey | "idCaptureFrameProcessed" | "idCaptureReset" | "idCaptureSetLastError" | "idCaptureSetLastLocalizedId" | "idCaptureSetLastResult" | "idCaptureVerifyAamvaCapture"; export interface IdCaptureVerifyAamvaCaptureResponse { result: AamvaVizBarcodeComparisonResultJSON | null; } export declare type WorkerResponse<C extends DataCaptureActionMessageKey> = C extends "idCaptureVerifyAamvaCapture" ? IdCaptureVerifyAamvaCaptureResponse : CoreWorkerResponse<C>; interface DataCaptureActionMessage { command: DataCaptureActionMessageKey; id: number; } export interface IdCaptureSetLastResultDataCaptureAction extends DataCaptureActionMessage { command: "idCaptureSetLastResult"; result: string; } export interface IdCaptureSetLastErrorDataCaptureAction extends DataCaptureActionMessage { command: "idCaptureSetLastError"; error: string; } export interface IdCaptureSetLastLocalizedIdDataCaptureAction extends DataCaptureActionMessage { command: "idCaptureSetLastLocalizedId"; localizedId: string; } export interface IdCaptureResetDataCaptureAction extends DataCaptureActionMessage { command: "idCaptureReset"; } export interface IdCaptureFrameProcessedDataCaptureAction extends DataCaptureActionMessage { command: "idCaptureFrameProcessed"; } export interface IdCaptureVerifyAamvaCaptureDataCaptureAction extends DataCaptureActionMessage { command: "idCaptureVerifyAamvaCapture"; capturedId: CapturedIdJSON; } export declare type AnyDataCaptureActionMessage = CoreAnyDataCaptureActionMessage | IdCaptureFrameProcessedDataCaptureAction | IdCaptureResetDataCaptureAction | IdCaptureSetLastErrorDataCaptureAction | IdCaptureSetLastLocalizedIdDataCaptureAction | IdCaptureSetLastResultDataCaptureAction | IdCaptureVerifyAamvaCaptureDataCaptureAction; /** * MESSAGES EMITTED BY THE WORKER */ declare type DataCaptureCallbackMessageKeys = CoreDataCaptureCallbackMessageKeys | "idCaptureDidCaptureId" | "idCaptureDidLocalizeId" | "idCaptureDidRejectId" | "idCaptureForwardFrame"; interface BaseDataCaptureCallbackMessage { type: DataCaptureCallbackMessageKeys; } interface IdCaptureForwardFrame extends BaseDataCaptureCallbackMessage { type: "idCaptureForwardFrame"; payload: { data: Uint8ClampedArray; width: number; height: number; }; } interface IdCaptureDidCapture extends BaseDataCaptureCallbackMessage { type: "idCaptureDidCaptureId"; payload: { session: IdCaptureSessionJSON; frameData: PrivateLoadableFrameData; }; } interface IdCaptureDidReject extends BaseDataCaptureCallbackMessage { type: "idCaptureDidRejectId"; payload: { session: IdCaptureSessionJSON; frameData: PrivateLoadableFrameData; }; } interface IdCaptureDidLocalizeId extends BaseDataCaptureCallbackMessage { type: "idCaptureDidLocalizeId"; payload: { session: IdCaptureSessionJSON; frameData: PrivateLoadableFrameData; }; } export declare type DataCaptureCallbackMessage = CoreDataCaptureCallbackMessage | IdCaptureDidCapture | IdCaptureDidLocalizeId | IdCaptureDidReject | IdCaptureForwardFrame; export declare type PayloadByType<T> = T extends "didCaptureId" ? IdCaptureDidCapture["payload"] : T extends "didRejectId" ? IdCaptureDidReject["payload"] : T extends "didLocalizeId" ? IdCaptureDidLocalizeId["payload"] : never; /** * OTHERS */ export declare type PayloadForCommand<A, C> = A extends { command: C; } ? A : never; export interface DataCaptureWorker extends Omit<Worker, "postMessage"> { onmessage: ((this: Worker, event_: MessageEvent & { data: unknown; }) => void) | null; postMessage: <C extends AnyDataCaptureActionMessage["command"]>(message: PayloadForCommand<AnyDataCaptureActionMessage, C>, transfer?: Transferable[]) => void; } export declare enum IdCaptureBackendErrorType { Undefined = "Undefined", InitializationError = "InitializationError", ParsingError = "ParsingError" } export interface IdCaptureBackendError { type: IdCaptureBackendErrorType; message: string; } interface CapturedIdWithOptionals { getFirstName: () => OptionalValueHolder<string>; getLastName: () => OptionalValueHolder<string>; getFullName: () => string; getSex: () => OptionalValueHolder<string>; getAge: () => OptionalValueHolder<number | null>; isExpired: () => OptionalValueHolder<boolean | null>; getNationality: () => OptionalValueHolder<string>; getAddress: () => OptionalValueHolder<string>; getIssuingCountry: () => OptionalValueHolder<string>; getIssuingCountryIso: () => OptionalValueHolder<string>; getDocumentNumber: () => OptionalValueHolder<string>; getDateOfBirth: () => OptionalValueHolder<string>; getDateOfExpiry: () => OptionalValueHolder<string>; getDateOfIssue: () => OptionalValueHolder<string>; getDocumentType: () => string; getCapturedResultTypes: () => Vector; getImageInfo: () => string | null; } interface HasValueHolder<T> { has_value: () => true; value: () => T; } interface HasNoValueHolder { has_value: () => false; } export declare type OptionalValueHolder<T> = HasNoValueHolder | HasValueHolder<T>; export interface IdCaptureSessionHolder { getCapturedId: () => OptionalValueHolder<CapturedIdWithOptionals>; getLocalizedOnlyId: () => OptionalValueHolder<string>; getNewlyRejectedId: () => OptionalValueHolder<string>; toJson: () => string; } export interface SDCIdCaptureMode extends EmscriptenClassHandle { reset: () => void; addListener: (listener: unknown) => void; } interface IdCaptureModule { IdCaptureDeserializer: new (helper: unknown) => CaptureModeDeserializerInstance; IdCaptureListener: { extend: (target: "IdCaptureListener", parameters: { onIdCaptured: (barcodeCapture: unknown, session: IdCaptureSessionHolder, frameData: WasmFrameData) => void; onIdLocalized: (barcodeCapture: unknown, session: IdCaptureSessionHolder, frameData: WasmFrameData) => void; onIdRejected: (barcodeCapture: unknown, session: IdCaptureSessionHolder, frameData: WasmFrameData) => void; }) => new () => EmscriptenClassHandle; }; IdCaptureDeserializerListener: { extend: (target: "IdCaptureDeserializerListener", parameters: { onModeDeserializationStarted: (deserializer: unknown, mode: SDCIdCaptureMode, json: unknown) => void; onModeDeserializationFinished: (deserializer: unknown, mode: SDCIdCaptureMode, json: unknown) => void; onSettingsDeserializationStarted: (deserializer: unknown, settings: unknown, json: unknown) => void; onSettingsDeserializationFinished: (deserializer: unknown, settings: unknown, json: unknown) => void; }) => new () => EmscriptenClassHandle; }; IdCaptureBackend: { extend: (target: "IdCaptureBackend", parameters: { getLastError: () => string; getLastResult: () => string; getLocalizedOnlyId: () => string; processFrame: (data: Uint8ClampedArray, width: number, height: number, format: unknown) => void; reset: () => void; updateSettings: (settings: unknown) => void; }) => new () => { delete: () => void; }; }; IdCaptureDeserializerHelper: { extend: (target: "IdCaptureDeserializerHelper", parameters: { createMode: (context: unknown, settings: unknown) => SDCIdCaptureMode; }) => new () => EmscriptenClassHandle; }; IdCapture: new (context: unknown, idCaptureBackend: unknown, settings: unknown) => SDCIdCaptureMode; AamvaVizBarcodeComparisonVerifier: new () => { verify: (capturedId: string) => { toJson: () => string; }; }; } export interface Module extends CoreModule, IdCaptureModule { } export declare function getValueFromOptional<T, U>(holder: OptionalValueHolder<T>, defaultValue: U): T | U; export {};