scanbot-web-sdk
Version:
Scanbot Web Document and Barcode Scanner SDK
256 lines (255 loc) • 13 kB
TypeScript
import { WorkerBridge } from "./worker/worker-bridge";
import { InitializationOptions } from "./model/configuration/initialization-options";
import { DocumentScannerViewConfiguration } from "./model/configuration/document-scanner-view-configuration";
import { BarcodeScannerViewConfiguration } from "./model/configuration/barcode-scanner-view-configuration";
import { CroppingViewConfiguration } from "./model/configuration/cropping-view-configuration";
import { IDocumentScannerHandle } from "./interfaces/i-document-scanner-handle";
import { IBarcodeScannerHandle } from "./interfaces/i-barcode-scanner-handle";
import { ICroppingViewHandle } from "./interfaces/i-cropping-view-handle";
import { PdfGenerator } from './service/pdf-generator';
import { TiffGenerator } from './service/tiff-generator';
import { PublicUtils } from "./service/public-utils";
import { MrzScannerViewConfiguration } from "./model/configuration/mrz-scanner-view-configuration";
import { IMrzScannerHandle } from "./interfaces/i-mrz-scanner-handle";
import { TextPatternScannerViewConfiguration } from "./model/configuration/text-pattern-scanner-view-configuration";
import { VinScannerViewConfiguration } from "./model/configuration/vin-scanner-view-configuration";
import { ITextPatternScannerHandle } from "./interfaces/i-text-pattern-scanner-handle";
import ScanbotSDKUI from "./ui2/scanbot-sdk-ui";
import { Image, DeepPartial, BarcodeScannerConfiguration, BarcodeDocumentFormat, MrzScannerConfiguration, DocumentQualityAnalyzerConfiguration, PdfConfiguration, TiffGeneratorParameters, DocumentDataExtractorConfiguration, BarcodeDocumentParserResult, DocumentQualityAnalyzer, CheckScannerConfiguration, DocumentScannerConfiguration, LicenseInfo, BridgeApiEntrypoint } from "./core-types";
import * as Config from "./core-types";
import { DocumentDataExtractorViewConfiguration } from "./model/configuration/document-data-extractor-view-configuration";
import { ConsumeType } from "./consume-type";
import { Stats } from "./utils/stats";
import { BrowserCameras } from "./utils/browser-cameras";
import { SBStorage } from "./service/storage/sb-storage";
import { ICheckScannerHandle } from "./interfaces/i-check-scanner-handle";
import { CheckScannerViewConfiguration } from "./model/configuration/check-scanner-view-configuration";
import { IDocumentDataExtractorHandle } from "./interfaces/i-document-data-extractor-handle";
export default class ScanbotSDK {
/** @internal */
bridge: WorkerBridge;
private initialized;
private static defaultEnginePath;
/** @internal */
static instance: ScanbotSDK;
private static _ui2;
get API(): BridgeApiEntrypoint;
static get UI(): typeof ScanbotSDKUI;
static initialize(options: InitializationOptions): Promise<ScanbotSDK>;
storage: SBStorage;
/**
* View Components
*/
createDocumentScanner(configuration: DocumentScannerViewConfiguration): Promise<IDocumentScannerHandle>;
createMrzScanner(configuration: MrzScannerViewConfiguration): Promise<IMrzScannerHandle>;
createBarcodeScanner(configuration: BarcodeScannerViewConfiguration): Promise<IBarcodeScannerHandle>;
createCheckScanner(config: CheckScannerViewConfiguration): Promise<ICheckScannerHandle>;
openCroppingView(configuration: CroppingViewConfiguration): Promise<ICroppingViewHandle>;
createTextPatternScanner(configuration: TextPatternScannerViewConfiguration): Promise<ITextPatternScannerHandle>;
createVinScanner(configuration: VinScannerViewConfiguration): Promise<ITextPatternScannerHandle>;
createDocumentQualityAnalyzer(configuration: DocumentQualityAnalyzerConfiguration): Promise<DocumentQualityAnalyzer>;
createDocumentDataExtractor(config: DocumentDataExtractorViewConfiguration): Promise<IDocumentDataExtractorHandle>;
/**
* Image Operations
*/
toDataUrl(imageBuffer: ArrayBuffer): Promise<string>;
/**
* @param image {@displayType `Image`} {@link Image}
* @param config {@displayType `DeepPartial<DocumentScannerConfiguration>`} {@link DocumentScannerConfiguration}
* @param consumeType {@displayType `ConsumeType`} {@link ConsumeType}
*/
detectDocument(image: Image, config?: DeepPartial<DocumentScannerConfiguration>, consumeType?: ConsumeType): Promise<Config.DocumentDetectionResult | null>;
detectAndCropDocument(image: Image, consumeImage?: ConsumeType): Promise<Config.DocumentScannerScanResponse | null>;
/**
* @param image An image URL (e.g. Data URL or HTTP URL) or an Image object
* @param config {@displayType `DeepPartial<BarcodeScannerConfiguration>`} {@link BarcodeScannerConfiguration}
* @param consumeType {@displayType `ConsumeType`} {@link ConsumeType}
* */
detectBarcodes(image: string | Image, config?: DeepPartial<BarcodeScannerConfiguration>, consumeType?: ConsumeType): Promise<Config.BarcodeScannerResult>;
parseBarcodeDocument(acceptedDocumentFormats: BarcodeDocumentFormat[], rawBarcodeData: string): Promise<BarcodeDocumentParserResult>;
createCheckScannerEngine(config?: CheckScannerConfiguration): Promise<Config.CheckScanner>;
createDocumentDataExtractorEngine(config?: DocumentDataExtractorConfiguration): Promise<Config.DocumentDataExtractor>;
createMrzScannerEngine(config?: MrzScannerConfiguration): Promise<Config.MrzScanner>;
createOcrEngine(): Promise<Config.OcrEngine>;
createImageProcessor(): Promise<Config.ImageProcessor>;
/**
* Misc. Features
*/
getLicenseInfo(): Promise<LicenseInfo>;
/** @param options {@displayType `DeepPartial<PdfConfiguration>`} {@link PdfConfiguration}*/
beginPdf(options: DeepPartial<PdfConfiguration>): Promise<PdfGenerator>;
/** @param options {@displayType `DeepPartial<TiffGeneratorParameters>`} {@link TiffGeneratorParameters} */
beginTiff(options?: DeepPartial<TiffGeneratorParameters>): Promise<TiffGenerator>;
imageToJpeg(image: Image, consumeImage?: ConsumeType): Promise<Uint8Array>;
get version(): string;
private _utils;
get utils(): PublicUtils;
/** @internal */
getBridge(consumeImage: ConsumeType): {
__hasModuleFunction: (functionName: string) => Promise<any>;
__callModuleFunction: (functionName: string, args?: any[]) => Promise<any>;
BarcodeDocumentParser: Config.WorkerBarcodeDocumentParser;
BarcodeScanner: Config.WorkerBarcodeScanner;
CheckScanner: Config.WorkerCheckScanner;
CreditCardScanner: Config.WorkerCreditCardScanner;
DocumentClassifier: Config.WorkerDocumentClassifier;
DocumentDataExtractor: Config.WorkerDocumentDataExtractor;
DocumentQualityAnalyzer: Config.WorkerDocumentQualityAnalyzer;
DocumentScanner: Config.WorkerDocumentScanner;
ImageManipulator: Config.WorkerImageManipulator;
ImageProcessor: Config.WorkerImageProcessor;
MrzScanner: Config.WorkerMrzScanner;
MrzParser: Config.WorkerMrzParser;
OcrEngine: Config.WorkerOcrEngine;
TextPatternScanner: Config.WorkerTextPatternScanner;
VinScanner: Config.WorkerVinScanner;
initialize: (licenseKey?: string, enginePath?: string, appId?: string, options?: Config.InitializeOptions) => Promise<void>;
getLicenseInfo: () => Promise<LicenseInfo>;
encodeJpeg: (image: Image, quality?: number) => Promise<Uint8Array>;
beginPdf: (options: {
attributes?: {
author?: string;
creator?: string;
title?: string;
subject?: string;
keywords?: string;
};
pageSize?: Config.PageSize;
pageDirection?: Config.PageDirection;
pageFit?: Config.PageFit;
dpi?: number;
jpegQuality?: number;
resamplingMethod?: Config.ResamplingMethod;
binarizationFilter?: ({
filterType?: number;
} & {
readonly _type: "LegacyFilter";
}) | ({
outputMode?: Config.OutputMode;
} & {
readonly _type: "ScanbotBinarizationFilter";
}) | ({
outputMode?: Config.OutputMode;
denoise?: number;
radius?: number;
preset?: Config.BinarizationFilterPreset;
} & {
readonly _type: "CustomBinarizationFilter";
}) | ({
radius?: number;
borderWidthFraction?: number;
blackOutliersFraction?: number;
whiteOutliersFraction?: number;
contrastEnhancement?: number;
colorEnhancement?: number;
paperWhitening?: number;
paperWhiteningBias?: number;
} & {
readonly _type: "ColorDocumentFilter";
}) | ({
brightness?: number;
} & {
readonly _type: "BrightnessFilter";
}) | ({
contrast?: number;
} & {
readonly _type: "ContrastFilter";
}) | ({
borderWidthFraction?: number;
blackOutliersFraction?: number;
whiteOutliersFraction?: number;
} & {
readonly _type: "GrayscaleFilter";
}) | ({
blackPoint?: number;
whitePoint?: number;
} & {
readonly _type: "WhiteBlackPointFilter";
});
}) => Promise<Config.ObjectId<"PdfGenerationContext">>;
addPageToPdf: (pdfOperation: Config.ObjectId<"PdfGenerationContext">, image: Image, binarization?: Config.PageBinarization) => Promise<void>;
addPageToPdfWithOcr: (pdfOperation: Config.ObjectId<"PdfGenerationContext">, image: Image, binarization?: Config.PageBinarization) => Promise<void>;
completePdf: (pdfOperation: Config.ObjectId<"PdfGenerationContext">) => Promise<Uint8Array>;
beginTiff: (options: {
compression?: Config.CompressionMode;
jpegQuality?: number;
zipCompressionLevel?: number;
dpi?: number;
userFields?: {
tag?: number;
name?: string;
value?: ({
value?: number;
} & {
readonly _type: "UserFieldDoubleValue";
}) | ({
value?: string;
} & {
readonly _type: "UserFieldStringValue";
}) | ({
value?: number;
} & {
readonly _type: "UserFieldIntValue";
});
}[];
binarizationFilter?: ({
filterType?: number;
} & {
readonly _type: "LegacyFilter";
}) | ({
outputMode?: Config.OutputMode;
} & {
readonly _type: "ScanbotBinarizationFilter";
}) | ({
outputMode?: Config.OutputMode;
denoise?: number;
radius?: number;
preset?: Config.BinarizationFilterPreset;
} & {
readonly _type: "CustomBinarizationFilter";
}) | ({
radius?: number;
borderWidthFraction?: number;
blackOutliersFraction?: number;
whiteOutliersFraction?: number;
contrastEnhancement?: number;
colorEnhancement?: number;
paperWhitening?: number;
paperWhiteningBias?: number;
} & {
readonly _type: "ColorDocumentFilter";
}) | ({
brightness?: number;
} & {
readonly _type: "BrightnessFilter";
}) | ({
contrast?: number;
} & {
readonly _type: "ContrastFilter";
}) | ({
borderWidthFraction?: number;
blackOutliersFraction?: number;
whiteOutliersFraction?: number;
} & {
readonly _type: "GrayscaleFilter";
}) | ({
blackPoint?: number;
whitePoint?: number;
} & {
readonly _type: "WhiteBlackPointFilter";
});
}) => Promise<Config.ObjectId<"TiffGenerationContext">>;
addPageToTiff: (tiffOperation: Config.ObjectId<"TiffGenerationContext">, image: Image, binarization: Config.PageBinarization) => Promise<void>;
completeTiff: (tiffOperation: Config.ObjectId<"TiffGenerationContext">) => Promise<Uint8Array>;
releaseObject: <T>(objectToken: Config.ObjectId<T>) => Promise<void>;
version: () => Promise<string>;
};
private licenseCheck;
static cameras: BrowserCameras;
static Config: typeof Config;
/**
* Used for testing purposes only.
* @internal
*/
static _stats: Stats;
}