import type { DocumentDetectionStatus } from '../core/document_scanner/DocumentScannerTypes'; import type { PageImageSource } from '../core/document_scanner/PageImageSource'; import type { ParametricFilter } from '../core/image_processing/ParametricFilters'; /** * Standard size object */ export interface Size { /** * Width parameter */ width: number; /** * Height parameter */ height: number; } /** * Barcode scanner engine mode */ export type BarcodeOverlayTextFormat = /** Show only barcode overlay frame. */ 'NONE' /** Show barcode value with extention. */ | 'CODE' /** Show barcode value with barcode format. */ | 'CODE_AND_TYPE'; /** * Defines a range for zooming */ export interface ZoomRange { /** * The minimum zoom scale. Defaults to 1.0. */ minZoom: number; /** * The maximum zoom scale. Defaults to 12.0. */ maxZoom: number; } /** * The image filter types. */ export type ImageFilterType = /** Passthrough filter. Does not alter the image. */ 'NONE' /** Optimizes colors, contrast and brightness. Usecase: photos. */ | 'COLOR' /** Standard grayscale filter. Creates a grayscaled 8-bit image and optimizes contrast and dynamic range. */ | 'GRAYSCALE' /** Standard binarization filter with contrast optimization. Creates a grayscaled 8-bit image with mostly black or white pixels. Usecase: Preparation for optical character recognition. */ | 'BINARIZED' /** Fixes white-balance and cleans up the background. Usecase: images of paper documents. */ | 'COLOR_DOCUMENT' /** A filter for binarizing an image. Creates an 8-bit image with pixel values set to eiter 0 or 255. Usecase: Preparation for optical character recognition. */ | 'PURE_BINARIZED' /** Cleans up the background and tries to preserve photos within the image. Usecase: magazine pages, flyers. */ | 'BACKGROUND_CLEAN' /** Black and white filter with background cleaning. Creates a grayscaled 8-bit image with mostly black or white pixels. Usecase: Textual documents or documents with black and white illustrations. */ | 'BLACK_AND_WHITE' /** A filter for black and white conversion using OTSU binarization. */ | 'OTSU_BINARIZATION' /** A filter for black and white conversion primary used for low-contrast documents. */ | 'DEEP_BINARIZATION' /** A filter that enhances edges in low-contrast documents. */ | 'EDGE_HIGHLIGHT' /** Binarization filter primary inteded to use on low-contrast documents with heavy shadows. */ | 'LOW_LIGHT_BINARIZATION' /** Binarization filter primary intended to use on low-contrast documents with heavy shadows. */ | 'LOW_LIGHT_BINARIZATION_2' /** Standard grayscale filter. Creates a grayscaled 8-bit image. */ | 'PURE_GRAY'; /** * SDK Page */ export interface Page { /** * A string identifying the page in the internal page file storage */ pageId: string; /** * The page's cropping polygon as calculated by a document detection operation or as set by the cropping UI. Modifying the polygon will change the polygon as shown in the cropping UI but will not automatically re-crop the original image */ polygon: PolygonPoint[]; /** * The document detection result status for the operation that produced the page */ detectionResult: DocumentDetectionStatus; /** * The image source */ pageImageSource: PageImageSource; /** * The Image Filter that was applied on the page image. @deprecated Use **parametricFilters** instead. */ filter: ImageFilterType; /** * The Image Filters that are applied on the page image */ parametricFilters?: ParametricFilter[]; /** * The value that was set for `documentImageSizeLimit`, which limits the maximum size of the document image. */ documentImageSizeLimit?: Size; /** * File URI of the original image */ originalImageFileUri: string; /** * File URI of the cropped document image (if document detection was successful) */ documentImageFileUri?: string; /** * File URI of a screen-sized preview of the original image */ originalPreviewImageFileUri: string; /** * File URI of a screen-sized preview of the document image (if document detection was successful) */ documentPreviewImageFileUri?: string; } /** * Polygon Point */ export interface PolygonPoint { /** * Polygon point X */ x: number; /** * Polygon point Y */ y: number; }