scandit-web-datacapture-id
Version:
Scandit Data Capture SDK for the Web
180 lines (179 loc) • 8.77 kB
TypeScript
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 {};