@microblink/photopay-in-browser-sdk
Version:
A simple payment barcode scanning library for WebAssembly-enabled browsers.
227 lines (226 loc) • 6.99 kB
TypeScript
/**
* Copyright (c) Microblink Ltd. All rights reserved.
*/
import { EventEmitter } from '../stencil-public-runtime';
import * as PhotoPaySDK from '@microblink/photopay-in-browser-sdk';
export { SDKError } from '@microblink/photopay-in-browser-sdk';
export interface MicroblinkUI {
allowHelloMessage: boolean;
engineLocation: string;
licenseKey: string;
wasmType: string;
rawRecognizers: string;
recognizers: Array<string>;
recognizerOptions: {
[key: string]: any;
};
recognitionTimeout?: number;
includeSuccessFrame?: boolean;
enableDrag: boolean;
hideFeedback: boolean;
hideLoadingAndErrorUi: boolean;
scanFromCamera: boolean;
scanFromImage: boolean;
translations: {
[key: string]: string;
};
rawTranslations: string;
galleryOverlayType: 'FULLSCREEN' | 'INLINE';
galleryDropType: 'FULLSCREEN' | 'INLINE';
showActionLabels: boolean;
showModalWindows: boolean;
showScanningLine?: boolean;
showCameraFeedbackBarcodeMessage?: boolean;
iconCameraDefault: string;
iconCameraActive: string;
iconGalleryDefault: string;
iconGalleryActive: string;
iconInvalidFormat: string;
iconSpinnerScreenLoading: string;
iconSpinnerFromGalleryExperience: string;
iconGalleryScanningCompleted: string;
fatalError: EventEmitter<PhotoPaySDK.SDKError>;
ready: EventEmitter<EventReady>;
scanError: EventEmitter<EventScanError>;
scanSuccess: EventEmitter<EventScanSuccess>;
cameraScanStarted: EventEmitter<null>;
imageScanStarted: EventEmitter<null>;
setUiState: (state: 'ERROR' | 'LOADING' | 'NONE' | 'SUCCESS') => Promise<any>;
setUiMessage: (state: 'FEEDBACK_ERROR' | 'FEEDBACK_INFO' | 'FEEDBACK_OK', message: string) => Promise<any>;
}
export interface SdkSettings {
allowHelloMessage: boolean;
engineLocation: string;
wasmType?: PhotoPaySDK.WasmType;
}
/**
* Events
*/
export declare class EventReady {
sdk: PhotoPaySDK.WasmSDK;
constructor(sdk: PhotoPaySDK.WasmSDK);
}
export declare class EventScanError {
code: Code;
fatal: boolean;
message: string;
recognizerName: string;
details?: any;
constructor(code: Code, fatal: boolean, message: string, recognizerName: string, details?: any);
}
export declare class EventScanSuccess {
recognizer: PhotoPaySDK.RecognizerResult;
recognizerName: string;
successFrame?: PhotoPaySDK.SuccessFrameGrabberRecognizerResult;
constructor(recognizer: PhotoPaySDK.RecognizerResult, recognizerName: string, successFrame?: PhotoPaySDK.SuccessFrameGrabberRecognizerResult);
}
export interface RecognitionResults {
recognizer: PhotoPaySDK.RecognizerResult;
successFrame?: PhotoPaySDK.SuccessFrameGrabberRecognizerResult;
}
/**
* Error codes
*/
export declare enum Code {
EmptyResult = "EMPTY_RESULT",
InvalidRecognizerOptions = "INVALID_RECOGNIZER_OPTIONS",
NoImageFileFound = "NO_IMAGE_FILE_FOUND",
NoFirstImageFileFound = "NO_FIRST_IMAGE_FILE_FOUND",
NoSecondImageFileFound = "NO_SECOND_IMAGE_FILE_FOUND",
GenericScanError = "GENERIC_SCAN_ERROR",
CameraNotAllowed = "CAMERA_NOT_ALLOWED",
CameraInUse = "CAMERA_IN_USE",
CameraGenericError = "CAMERA_GENERIC_ERROR"
}
/**
* Scan structures
*/
export declare const AvailableRecognizers: {
[key: string]: string;
};
export interface VideoRecognitionConfiguration {
recognizers: Array<string>;
recognizerOptions?: any;
recognitionTimeout?: number;
successFrame: boolean;
cameraFeed: HTMLVideoElement;
cameraId: string | null;
}
export interface ImageRecognitionConfiguration {
recognizers: Array<string>;
recognizerOptions?: any;
thoroughScan?: boolean;
file: File;
}
export interface CombinedImageRecognitionConfiguration {
recognizers: Array<string>;
recognizerOptions?: any;
thoroughScan?: boolean;
firstFile: File;
secondFile: File;
}
export declare enum ImageRecognitionType {
Single = "Single",
Combined = "Combined"
}
export declare enum CombinedImageType {
First = "First",
Second = "Second"
}
export interface RecognizerInstance {
name: string;
recognizer: PhotoPaySDK.Recognizer & {
objectHandle: number;
};
successFrame?: PhotoPaySDK.SuccessFrameGrabberRecognizer<PhotoPaySDK.Recognizer> & {
objectHandle?: number;
};
}
export declare enum RecognitionStatus {
NoImageFileFound = "NoImageFileFound",
NoFirstImageFileFound = "NoFirstImageFileFound",
NoSecondImageFileFound = "NoSecondImageFileFound",
Preparing = "Preparing",
Ready = "Ready",
Processing = "Processing",
DetectionFailed = "DetectionFailed",
EmptyResultState = "EmptyResultState",
OnFirstSideResult = "OnFirstSideResult",
ScanSuccessful = "ScanSuccessful",
DocumentClassified = "DocumentClassified",
DetectionStatusChange = "DetectionStatusChange",
NoSupportForMediaDevices = "NoSupportForMediaDevices",
CameraNotFound = "CameraNotFound",
CameraNotAllowed = "CameraNotAllowed",
UnableToAccessCamera = "UnableToAccessCamera",
CameraInUse = "CameraInUse",
CameraGenericError = "CameraGenericError",
UnknownError = "UnknownError",
DetectionStatusFail = "Fail",
DetectionStatusSuccess = "Success",
DetectionStatusCameraTooHigh = "CameraTooHigh",
DetectionStatusFallbackSuccess = "FallbackSuccess",
DetectionStatusPartial = "Partial",
DetectionStatusCameraAtAngle = "CameraAtAngle",
DetectionStatusCameraTooNear = "CameraTooNear",
DetectionStatusDocumentTooCloseToEdge = "DocumentTooCloseToEdge"
}
export interface RecognitionEvent {
status: RecognitionStatus;
data?: any;
}
export interface RecognitionResults {
recognizer: PhotoPaySDK.RecognizerResult;
recognizerName: string;
successFrame?: PhotoPaySDK.SuccessFrameGrabberRecognizerResult;
imageCapture?: boolean;
resultJSON?: any;
}
export declare enum CameraExperience {
Barcode = "BARCODE",
CardCombined = "CARD_COMBINED",
CardSingleSide = "CARD_SINGLE_SIDE",
PaymentCard = "PAYMENT_CARD"
}
export declare enum CameraExperienceState {
AdjustAngle = "AdjustAngle",
Classification = "Classification",
Default = "Default",
Detection = "Detection",
Done = "Done",
DoneAll = "DoneAll",
Flip = "Flip",
MoveCloser = "MoveCloser",
MoveFarther = "MoveFarther"
}
export declare const CameraExperienceStateDuration: Map<CameraExperienceState, number>;
export declare enum CameraExperienceReticleAnimation {
Default = 0,
Detection = 1,
Classification = 2
}
/**
* User feedback structures
*/
export declare enum FeedbackCode {
CameraDisabled = "CAMERA_DISABLED",
CameraGenericError = "CAMERA_GENERIC_ERROR",
CameraInUse = "CAMERA_IN_USE",
CameraNotAllowed = "CAMERA_NOT_ALLOWED",
GenericScanError = "GENERIC_SCAN_ERROR",
ScanStarted = "SCAN_STARTED",
ScanUnsuccessful = "SCAN_UNSUCCESSFUL",
ScanSuccessful = "SCAN_SUCCESSFUL"
}
export interface FeedbackMessage {
code?: FeedbackCode;
state: 'FEEDBACK_ERROR' | 'FEEDBACK_INFO' | 'FEEDBACK_OK';
message: string;
}
/**
* Camera selection
*/
export interface CameraEntry {
prettyName: string;
details: PhotoPaySDK.SelectedCamera | null;
}