/** * Docutain SDK Capacitor * Copyright (c) INFOSOFT Informations- und Dokumentationssysteme GmbH. All rights reserved. * * Docutain SDK Capacitor is a commercial product and requires a license. * Details found in the LICENSE file in the root directory of this source tree. */ /** * Main class of the Docutain SDK. */ export interface DocutainSDKPlugin { /** * * Initializes the Docutain SDK. * This method needs to be called prior to using any functionality of the Docutain SDK. * * @since 1.0.0 */ initSDK(options: InitSDKOptions): Promise; /** * Starts the document scanner. * * @deprecated Use `startDocumentScanner()` to start the document scanner. * @since 1.0.0 */ scanDocument(args: { config: DocumentScannerConfiguration; }): Promise; /** * Starts the document scanner. * * @since 6.0.0 */ startDocumentScanner(options: StartDocumentScannerOptions): Promise; /** * Loads a file from the given path. * * @since 1.0.0 */ loadFile(options: LoadFileOptions): Promise; /** * Detects the text of the currently loaded document and returns it. * * @since 1.0.0 */ getText(): Promise; /** * * Detects the text of the currently loaded document page and returns it. * * @since 1.0.0 */ getTextPage(options: GetTextPageOptions): Promise; /** * This method sets the analyze configuration. * * @deprecated Use `setAnalyzeConfigurationDocScan()` to sets the analyze configuration. * @since 1.0.0 */ setAnalyzeConfiguration(args: { config: AnalyzeConfiguration; }): Promise; /** * This method sets the analyze configuration. * * @since 1.0.0 */ setAnalyzeConfigurationDocScan(options: AnalyzeConfigurationOptions): Promise; /** * This method get the detected data. * * @since 1.0.0 */ analyze(): Promise; /** * This method generates a PDF document from the loaded or scanned pages. * * @since 1.0.0 */ writePDF(options: WritePDFOptions): Promise; /** * This method sets the log level, which determines the severity of the message. * * @since 1.0.0 */ setLogLevel(options: SetLogLevelOptions): Promise; /** * This method returns the Trace file which includes logging and error messages. * * @since 1.0.0 */ getTraceFile(): Promise; /** * This method deletes all temporary files created by the Docutain SDK. * * @since 1.0.0 */ deleteTempFiles(options: DeleteTempFilesOptions): Promise; /** * This method generates a JPG from the loaded or scanned page and saves it to a local file. * * @since 1.0.0 */ writeImage(options: WriteImageOptions): Promise; /** * This method generates a JPG from the loaded or scanned page and returns it as a base64 encoded string. * * @since 1.0.0 */ getImageBytes(options: GetImageBytesOptions): Promise; /** * This method returns the page count of the currently loaded document. * * @since 1.0.0 */ pageCount(): Promise; /** * Resets onboarding state. * * @since 1.0.0 */ resetOnboarding(options: ResetOnboardingOptions): Promise; /** * Gets the default onboarding items. * * @since 1.0.0 */ onboardingDefaultItems(): Promise; /** * Gets the default scan tips items. * * @since 1.0.0 */ scanTipsDefaultItems(): Promise; /** * Starts the photo payment process. * * @since 1.0.0 */ startPhotoPayment(options: StartPhotoPaymentOptions): Promise; /** * Gets the default empty result screen items. * * @since 1.0.0 */ emptyResultScreenDefaultItems(): Promise; } /** * Options for {@link initSDK}. * * * @since 1.0.0 */ export interface InitSDKOptions { /** * Your Docutain SDK license key. * * @since 1.0.0 */ licenseKey: string; } /** * Available PDF page formats when generating PDF documents. * * @since 1.0.0 */ export declare enum PDFPageFormat { /** * * @since 1.0.0 */ FitToPages = "FIT_TO_PAGES", /** * * @since 1.0.0 */ A4 = "A4", /** * * @since 1.0.0 */ A4Landscape = "A4_LANDSCAPE", /** * * @since 1.0.0 */ A5 = "A5", /** * * @since 1.0.0 */ A5Landscape = "A5_LANDSCAPE", /** * * @since 1.0.0 */ Letter = "LETTER", /** * * @since 1.0.0 */ LetterLandscape = "LETTER_LANDSCAPE", /** * * @since 1.0.0 */ Legal = "LEGAL", /** * * @since 1.0.0 */ LegalLandscape = "LEGAL_LANDSCAPE" } /** * Available filters that can be applied on scanned documents. * * @since 1.0.0 */ export declare enum ScanFilter { /** * * @since 1.0.0 */ Auto = "AUTO", /** * * @since 1.0.0 */ Gray = "GRAY", /** * * @since 1.0.0 */ BlackWhite = "BLACKWHITE", /** * * @since 1.0.0 */ Original = "ORIGINAL", /** * * @since 1.0.0 */ Text = "TEXT", /** * * @since 1.0.0 */ Auto2 = "AUTO2", /** * * @since 1.0.0 */ Illustration = "ILLUSTRATION" } /** * Available page source types when generating image files from scanned or imported pages. * * @since 1.0.0 */ export declare enum PageSourceType { /** * Uncut, unfiltered image as delivered by camera. * * @since 1.0.0 */ Original = "ORIGINAL", /** * Cut and filtered image. * * @since 1.0.0 */ CutFilter = "CUT_FILTER", /** * Cut only image, no filter. * * @since 1.0.0 */ CutOnly = "CUT_ONLY" } /** * Available log level for defining the level of logging detail * * @since 1.0.0 */ export declare enum LogLevel { Disable = "DISABLE", Assert = "ASSERT", Error = "ERROR", Warning = "WARNING", Info = "INFO", Debug = "DEBUG", Verbose = "VERBOSE" } /** * Available sources for the document scanner. * * @since 1.0.0 */ export declare enum Source { /** * Scan a document by using the devices camera. * * @since 1.0.0 */ Camera = "CAMERA", /** * Scan a document from the provided image. * * @since 1.0.0 */ Image = "IMAGE", /** * Open an image picker in single selection mode and scan a document from the selected image. * * @since 1.0.0 */ Gallery = "GALLERY", /** * Open an image picker in multi selection mode and scan documents from the selected images. * * @since 1.0.0 */ GalleryMultiple = "GALLERY_MULTIPLE", /** * Same as [CAMERA] but shows an additional import button which the user can use to import files as well. * * @since 6.0.0 */ CameraImport = "CAMERA_IMPORT" } /** * Available statusbar appearances. * * @since 2.0.5 */ export declare enum StatusBarAppearance { /** * Light appearance. * * @since 2.0.5 */ Light = "LIGHT", /** * Dark appearance. * * @since 2.0.5 */ Dark = "DARK" } /** * Available navigationbar appearances. * * @since 2.0.5 */ export declare enum NavigationBarAppearance { /** * Light appearance. * * @since 2.0.5 */ Light = "LIGHT", /** * Dark appearance. * * @since 2.0.5 */ Dark = "DARK" } /** * A configuration class used to alter the default page editing behaviour. * * @since 1.0.0 */ export interface PageEditConfiguration { /** * If false, the bottom toolbar will hide the filter page item. Defaults to true. * * @since 1.0.0 */ allowPageFilter?: boolean; /** * If false, the bottom toolbar will hide the rotate page item. Defaults to true. * * @since 1.0.0 */ allowPageRotation?: boolean; /** * If false, the bottom toolbar will hide the arrange page item. Defaults to true. * * @since 1.0.0 */ allowPageArrangement?: boolean; /** * If false, the bottom toolbar will hide the page cropping item. Defaults to true. * * @since 1.0.0 */ allowPageCropping?: boolean; /** * If true, the bottom toolbar will show a button allowing to retake the current page. Defaults to false. * * @since 2.0.1 */ allowPageRetake?: boolean; /** * If true, the bottom toolbar will show a button allowing to add a new page. * Defaults to false. * * @since 6.0.0 */ allowPageAdd?: boolean; /** * If true, the menu item for deleting pages will be displayed in the toolbar. * Defaults to true. * * @since 6.0.0 */ allowPageDeletion?: boolean; /** * If true, each item of the page arrangement functionality will show a delete button. * Defaults to false. * * @since 1.0.0 */ pageArrangementShowDeleteButton?: boolean; /** * If true, each item of the page arrangement functionality will show it's page number. * Defaults to true. * * @since 1.0.0 */ pageArrangementShowPageNumber?: boolean; } /** * A configuration class used to define color in light and dark mode. * * @since 1.0.0 */ export interface DocutainColor { /** * Used color in light mode * * @since 1.0.0 */ Light: string; /** * Used color in dark mode * * @since 1.0.0 */ Dark: string; } /** * A configuration class used to alter the default color theming behaviour. * * @since 1.0.0 */ export interface ColorConfig { /** * is used to tint progress indicators and dialog buttons * * @since 1.0.0 */ ColorPrimary?: DocutainColor; /** * is used to tint elements that reside on ColorPrimary, like the icon and text of primary buttons. * * @since 6.0.0 */ ColorOnPrimary?: DocutainColor; /** * is used to tint selectable controls and the capture button. * * @since 1.0.0 */ ColorSecondary?: DocutainColor; /** * is used to tint elements that reside on docutain_colorSecondary, like the icon of the capture button. * * @since 1.0.0 */ ColorOnSecondary?: DocutainColor; /** * is used to tint the background of the layout containing the buttons of the scan layout, like the capture button or torch button. * * @since 1.0.0 */ ColorScanButtonsLayoutBackground?: DocutainColor; /** * is used to tint the foreground of the buttons of the scan layout, like the torch button. * * @since 1.0.0 */ ColorScanButtonsForeground?: DocutainColor; /** * is used to tint the polygon overlay which highlights the currently detected document. * * @since 1.0.0 */ ColorScanPolygon?: DocutainColor; /** * is used to tint the bottom toolbar background of the image editing page. * * @since 1.0.0 */ ColorBottomBarBackground?: DocutainColor; /** * is used to tint the buttons within the bottom toolbar of the image editing page. * * @since 1.0.0 */ ColorBottomBarForeground?: DocutainColor; /** * is used to tint the top toolbar background. * * @since 1.0.0 */ ColorTopBarBackground?: DocutainColor; /** * is used to tint the elements contained in the top toolbar, like buttons and titles. * * @since 1.0.0 */ ColorTopBarForeground?: DocutainColor; /** * is used to tint the text of the top toolbar title. * * @since 6.0.0 */ ColorTopBarTitle?: DocutainColor; } /** * A configuration class used to alter the default text behaviour. * * @since 2.0.1 */ export interface TextConfiguration { /** * The text size of elements residing in the bottom toolbar. Defaults to 10dp. * * @since 2.0.1 */ textSizeBottomToolbar?: number; /** * The text size of menu items residing in the top toolbar. * * @since 2.0.1 */ textSizeTopToolbar?: number; /** * The text size of the buttons in the scan page, located at the lower part, like the torch button. * * @since 2.0.1 */ textSizeScanButtons?: number; /** * The text size of the title in the top toolbar. By default, auto shrinking down till 9.0 is enabled. * If you define your custom size, automatic shrinking will be disabled. * * @since 2.0.1 */ textSizeTitle?: number; /** * The title to be displayed in the scan page top toolbar. * * @since 2.0.1 */ textTitleScanPage?: string; /** * The title to be displayed in the edit page top toolbar. * * @since 2.0.1 */ textTitleEditPage?: string; /** * The title to be displayed in the filter page top toolbar. * * @since 2.0.1 */ textTitleFilterPage?: string; /** * The title to be displayed in the cropping page top toolbar. * * @since 2.0.1 */ textTitleCroppingPage?: string; /** * The title to be displayed in the page arrangement page top toolbar. * * @since 2.0.1 */ textTitleArrangementPage?: string; /** * The title to be displayed in the confirmation page top toolbar. * * @since 2.0.1 */ textTitleConfirmationPage?: string; /** * The title to show in the top toolbar on all pages. It overwrites page specific titles, if any are set. * * * @since 2.0.1 */ textDocumentTitle?: string; /** * The text to show in the onboarding popup title that appears when the scan page is opened for the first time. * * @deprecated Use `onboarding.scanHintPopup.title' * @since 2.0.1 */ textOnboardingTitle?: string; /** * The text to show in the onboarding popup message that appears when the scan page is opened for the first time. * * @deprecated Use `onboarding.scanHintPopup.message` * @since 2.0.1 */ textOnboardingMessage?: string; /** * The text to show in the onboarding popup close button that appears when the scan page is opened for the first time. * * @deprecated Use `onboarding.scanHintPopup.closeButton` * @since 2.0.1 */ textOnboardingCloseButton?: string; /** * The text size of the onboarding popup title that appears when the scan page is opened for the first time. * * @deprecated removed. * @since 2.0.1 */ textSizeOnboardingTitle?: number; /** * The text size of the onboarding popup message that appears when the scan page is opened for the first time. * * @deprecated removed. * @since 2.0.1 */ textSizeOnboardingMessage?: number; /** * The text to show when camera is focusing after capture got triggered. * * @since 2.0.1 */ textFocusHint?: string; /** * The text to show when user swipes to previous page but is already at the first page. * * @since 2.0.1 */ textFirstPageHint?: string; /** * The text to show when user swipes to next page but is already at the last page. * * @since 2.0.1 */ textLastPageHint?: string; /** * The text to show when user swipes to next or previous page but only one page is available. * * @since 2.0.1 */ textOnePageHint?: string; /** * The text to show in the progress popup that is shown when user clicks the done button but * some pages still need to be processed. * * @since 2.0.1 */ textScanProgress?: string; /** * The text to show for the option to delete the current page within the dialog that will be * shown when clicking delete while multiple pages are available. * * @since 2.0.1 */ textDeleteDialogCurrentPage?: string; /** * The text to show for the option to delete all pages within the dialog that will be * shown when clicking delete while multiple pages are available. * * @since 2.0.1 */ textDeleteDialogAllPages?: string; /** * The text to show for the option to cancel within the dialog that will be * shown when clicking delete while multiple pages are available. * * @since 2.0.1 */ textDeleteDialogCancel?: string; /** * The title to be displayed in the scan tips page top toolbar. * * @since 6.0.0 */ textTitleScanTipsPage?: string; } /** * A generic button element used for the ready to use UI elements. * * @since 2.0.1 */ export interface DocutainButton { /** * The title to show for the button. * * @since 2.0.1 */ title?: string; /** * The icon to show for the button. * * @since 2.0.1 */ icon?: string; } /** * A generic list element used for the ready to use UI elements. * * @since 6.0.0 */ export interface DocutainListItem { /** * The icon to show for the button. * * @since 6.0.0 */ image?: string; /** * The title to show for the button. * * @since 6.0.0 */ title?: string; /** * The title to show for the button. * * @since 6.0.0 */ message?: string; } /** * UI components that can be used to onboard the user. * * @since 6.0.0 */ export interface Onboarding { /** * The items you want to show within the onboarding. See [DocutainListItem] for more details * on what each item can display. You can use [defaultItems] if you don't want to provide your own. * If you want to disable it, set it to null. * * @since 6.0.0 */ items?: DocutainListItem[]; /** * The button that goes to the next item. * * @since 6.0.0 */ buttonNext?: DocutainButton; /** * The button that closes the onboarding on the last item. * * @since 6.0.0 */ buttonFinish?: DocutainButton; /** * The button to skip (close) the onboarding. * * @since 6.0.0 */ buttonSkip?: DocutainButton; /** * The button that goes to the previous item. It is disabled by default. * * @since 6.0.0 */ buttonBack?: DocutainButton; /** * A popup that appears when scan is opened for the first time, explaining the user how to scan. * * @since 6.0.0 */ scanHintPopup?: ScanHintPopup | null; } /** * A popup within the scan screen which shows a short explanation about how to scan. * * @since 6.0.0 */ export interface ScanHintPopup { /** * The text to display as title. * * @since 6.0.0 */ title?: string; /** * The text to display as message. * * @since 6.0.0 */ message?: string; /** * The text of the close button. * * @since 6.0.0 */ closeButton?: string; /** * The image to display. * * @since 6.0.0 */ imageSource?: string; } /** * UI components that can be used to provide the user some scan tips. * * @since 6.0.0 */ export interface ScanTips { /** * The items you want to show within the scan tips. See [DocutainListItem] for more details * on what each item can display. If you don't provide any items, some [defaultItems] will be * displayed. * * @since 6.0.0 */ items?: DocutainListItem[]; /** * The toolbar item that will be shown allowing the user to open the scan tips. * * @since 6.0.0 */ toolbarItem?: DocutainButton; } /** * A configuration class used to alter the default buttons. * * @since 2.0.1 * */ export interface ButtonConfiguration { /** * The button that rotates the current page. * * @since 2.0.1 */ buttonEditRotate?: DocutainButton; /** * The button that opens the cropping functionality. * * @since 2.0.1 */ buttonEditCrop?: DocutainButton; /** * The button that opens the filter functionality. * * @since 2.0.1 */ buttonEditFilter?: DocutainButton; /** * The button that opens the page arrangement functionality. * * @since 2.0.1 */ buttonEditArrange?: DocutainButton; /** * The button that starts the process of replacing the current page with a new scan. * * @since 2.0.1 */ buttonEditRetake?: DocutainButton; /** * The button that deletes the current page or opens a dialog with options if multiple pages are available. * * @since 2.0.1 */ buttonEditDelete?: DocutainButton; /** * The button that finishes the scan process. * * @since 2.0.1 */ buttonEditFinish?: DocutainButton; /** * The button within the cropping functionality that expands the current cropping rectangle * to the whole page. * * @since 2.0.1 */ buttonCropExpand?: DocutainButton; /** * The button within the cropping functionality that snaps the current cropping rectangle * to the detected document. * * @since 2.0.1 */ buttonCropSnap?: DocutainButton; /** * The button within the cropping functionality that finishes the manual cropping process * according to the current cropping rectangle. * * @since 2.0.1 */ buttonCropFinish?: DocutainButton; /** * The button within the scan functionality that is shown when automatic capture is activated. * * @since 2.0.1 */ buttonScanAutoCaptureOn?: DocutainButton; /** * The button within the scan functionality that is shown when automatic capture is deactivated. * * @since 2.0.1 */ buttonScanAutoCaptureOff?: DocutainButton; /** * The button within the scan functionality that toggles the torch. * * @since 2.0.1 */ buttonScanTorch?: DocutainButton; /** * The button within the scan functionality that triggers a manual image capture. * * @since 2.0.1 */ buttonScanCapture?: DocutainButton; /** * The button within the scan functionality that finishes the current scan process and leads * to the editing page. * * @since 2.0.1 */ buttonScanFinish?: DocutainButton; /** * The button on the confirmation page that finishes the scan process. * See [DocumentScannerConfiguration.confirmPages]. * * @since 2.0.1 */ buttonConfirmationFinish?: DocutainButton; /** * The button on the edit page that opens the scan screen to add a new page. * * @since 6.0.0 */ buttonEditAddPage?: DocutainButton; /** * The button on the scan page that opens a file importer. * * @since 6.0.0 */ buttonScanImport?: DocutainButton; } /** * A configuration class used to alter the default scan behaviour. * * @since 6.0.0 */ export interface StartDocumentScannerOptions { /** * If true, the toolbar will display an Item allowing the user to switch between auto capture and manual capture. Defaults to false. * * @since 1.0.0 */ allowCaptureModeSetting?: boolean; /** * If true, the camera will capture the image automatically at the right moment. Defaults to true. * * @since 1.0.0 */ autoCapture?: boolean; /** * The default scan filter that will be used after scan. Defaults to [ScanFilter.ILLUSTRATION]. See [ScanFilter] for possible values. * * @since 1.0.0 * @default ScanFilter.ILLUSTRATION */ defaultScanFilter?: ScanFilter; /** * Your custom image for the onboarding dialog that appears when scan is opened for the first time. * * @deprecated Use `onboarding.scanHintPopup.imageSource` * @since 1.0.0 */ onboardingImageSource?: string; /** * Configuration class used to alter the default page editing behaviour. * * @since 1.0.0 */ pageEditConfig?: PageEditConfiguration; /** * Configuration class used to alter the default color theming behaviour. * * @since 1.0.0 */ ColorConfig?: ColorConfig; /** * Select the source for the document scanner. Defaults to [Source.CAMERA]. See [Source] for possible values. * * @since 1.0.0 */ source?: Source; /** * The source images for the document scanner if you have set the [source] to [Source.IMAGE]. * * @since 1.0.0 */ sourceImages?: string[]; /** * If true, image gets automatically cropped if document was detected. This applies only if * [source] is [Source.IMAGE] or [Source.GALLERY] or [Source.GALLERY_MULTIPLE]. * * @since 1.0.0 */ autoCrop?: boolean; /** * If true, scanning multi page documents is possible. Set this to false if you need to scan single page documents. Defaults to true. * * @since 1.0.0 */ multiPage?: boolean; /** * If true, the camera will run a focus action right before taking the image. This improves the quality * of the scanned images, but depending on the device, image capture might take a little bit longer. * Defaults to true. * * @since 1.0.0 */ preCaptureFocus?: boolean; /** * Configuration class used to alter the default text behaviour. * * @since 2.0.1 */ textConfig?: TextConfiguration; /** * Configuration class used to alter the default buttons. * * @since 2.0.1 */ buttonConfig?: ButtonConfiguration; /** * If true, a list of all pages (thumbnails) will be displayed before the scan process can be finished. * Defaults to false. * * @since 2.0.1 */ confirmPages?: boolean; /** * If true, after the scan screen is finished, an editing screen with the captured images will be displayed. * On the editing screen, the user can crop manually, rotate the page, filter the page and much more. * The editing screen can be configured by accessing the [pageEditConfig]. * Defaults to true. * * @since 2.0.2 */ allowPageEditing?: boolean; /** * Overrides the status bar appearance. By default, the system chooses the appearance based on the current UI Mode. * * Only available on Android. * * @since 2.0.5 */ statusBarAppearance?: StatusBarAppearance; /** * Overrides the navigation bar appearance. By default, the system chooses the appearance based on the current UI Mode. * * Only available on Android. * * @since 2.0.5 */ navigationBarAppearance?: NavigationBarAppearance; /** * If true, when an image is captured, the device vibrates to signal successful capture. * Defaults to false. * * @since 6.0.0 */ vibrateOnCapture?: boolean; /** * An optional onboarding when the user opens the scanner for the first time. See [Onboarding] * for more details. * * @since 6.0.0 */ onboarding?: Onboarding | null; /** * An optional toolbar item that shows scan tips when clicked. See [ScanTips] for more details. * * @since 6.0.0 */ scanTips?: ScanTips | null; } /** * The result of {@link scanDocument}. * * @since 1.0.0 */ export interface ScanDocumentResult { /** * The scan document result * * @since 1.0.0 */ status: string; } /** * The result of {@link onboardingDefaultItems}. * * @since 1.0.0 */ export interface OnboardingDefaultItemsResult { /** * The default items for onboarding * * @since 1.0.0 */ items: DocutainListItem[]; } /** * The result of {@link scanTipsDefaultItems}. * * @since 1.0.0 */ export interface ScanTipsDefaultItemsResult { /** * The default items for scan tips * * @since 1.0.0 */ items: DocutainListItem[]; } /** * The result of {@link emptyResultScreenDefaultItems}. * * @since 1.0.0 */ export interface EmptyResultScreenDefaultItemsResult { /** * The default items for the empty result screen * * @since 1.0.0 */ items: DocutainListItem[]; } /** * Options for {@link loadFile}. * * @since 1.0.0 */ export interface LoadFileOptions { /** * The path of the file. * * @since 1.0.0 */ filepath: string; } /** * Options for {@link getTextPage}. * * @since 1.0.0 */ export interface GetTextPageOptions { /** * Number of the page you want the text from or leave empty to get text of entire document * * @since 1.0.0 */ pageNumber?: number; } /** * The result of {@link getText}. * * @since 1.0.0 */ export interface GetTextResult { /** * The Text of entire document * * @since 1.0.0 */ text: string; } /** * The result of {@link getTextPage}. * * @since 1.0.0 */ export interface GetTextPageResult { /** * The Text page you want the text from or the text of entire document, if you leave pageNumber empty * * @since 1.0.0 */ text: string; } /** * Options for {@link setAnalyzeConfigurationDocScan}. * * @since 1.0.0 */ export interface AnalyzeConfigurationOptions { /** * Read BIC. * * @since 1.0.0 */ readBIC?: boolean; /** * Read payment state. * * @since 1.0.0 */ readPaymentState?: boolean; /** * Read SEPA Creditor. * * @since 1.0.0 */ readSEPACreditor?: boolean; } /** * The result of {@link analyze}. * * @since 1.0.0 */ export interface AnalyzeResult { /** * The analyze result als json string. * * @since 1.0.0 */ data: string; } /** * Options for {@link writePDF}. * * @since 1.0.0 */ export interface WritePDFOptions { /** * The file path where to save the PDF document. * * @since 1.0.0 */ fileUri?: string; /** * if file already exist, indicate whether to override it or to append number. * * @example 'TestPDF(1).pdf' * @since 1.0.0 */ overWrite?: boolean; /** * The PDF page format, refer to PDFPageFormat. * * @since 1.0.0 */ pageFormat?: PDFPageFormat; /** * the maximum file size in KB of the PDF or 0 if no compression should be applied. * The PDF will only be compressed if the uncompressed PDF would exceed the max you have set. * Please be aware, that if the PDF gets compressed, the quality decreases and the PDF generation will take longer. * * @since 2.0.1 */ maxSizeKB?: number; } /** * The result of {@link writePDF}. * * @since 1.0.0 */ export interface WritePDFResult { /** * The file path to the PDF document. * * @example 'TestPDF(1).pdf' * @since 1.0.0 */ fileUri: string; } /** * Options for {@link setLogLevel}. * * @since 1.0.0 */ export interface SetLogLevelOptions { /** * The Level determining which kind of messages should be logged. The default is Level.Verbose. * * @since 1.0.0 * @default Level.Verbose */ logLevel: LogLevel; } /** * The result of {@link getTraceFile}. * * @since 1.0.0 */ export interface GetTraceFileResult { /** * The file path to the trace file. * * @since 1.0.0 */ fileUri: string; } /** * Options for {@link deleteTempFiles}. * * @since 1.0.0 */ export interface DeleteTempFilesOptions { /** * If true, the content of the Trace file which you can send us in order to solve any problems will also be deleted * * @since 1.0.0 */ deleteTraceFileContent: boolean; } /** * Options for {@link writeImage}. * * @since 1.0.0 */ export interface WriteImageOptions { /** * The page to be generated as JPG * * @since 1.0.0 */ pageNumber: number; /** * The file uri where to save the JPG file * * @since 1.0.0 */ fileUri: string; } /** * The result of {@link writeImage}. * * @since 1.0.0 */ export interface WriteImageResult { /** * The file uri of the saved the JPG file * * @since 1.0.0 */ fileUri: string; } /** * Options for {@link getImageBytes}. * * @since 1.0.0 */ export interface GetImageBytesOptions { /** * The page to be generated as JPG * * @since 1.0.0 */ pageNumber: number; /** * The PageSourceType type to be used when generating the JPG * * @since 1.0.0 */ pageSourceType?: PageSourceType; } /** * The result of {@link getImageBytes}. * * @since 1.0.0 */ export interface GetImageBytesResult { /** * The blob of the saved the JPG file * * @since 1.0.0 */ bytes: string; } /** * The result of {@link pageCount}. * * @since 1.0.0 */ export interface PageCountResult { /** * The count of pages for the document * * @since 1.0.0 */ count: number; } /** * Options for {@link resetOnboarding}. * * @since 1.0.0 */ export interface ResetOnboardingOptions { /** * Opens onboarding on next start * * @since 1.0.0 */ onboarding: boolean; /** * Opens scanHintPopup on next start. * * @since 1.0.0 */ scanHintPopup: boolean; } /** * A configuration class used to alter the default document analysis behaviour for payment. */ export interface PaymentAnalyzeConfiguration { /** * Read BIC. * * @default true * @since 6.0.0 */ readBIC?: boolean; /** * Read payment state. * * @default false * @since 6.0.0 */ readPaymentState?: boolean; /** * Read SEPA Creditor. * * @default true * @since 6.0.0 */ readSEPACreditor?: boolean; } /** * A configuration class used to alter the default empty result screen. */ export interface EmptyResultScreen { /** * The items you want to show as scan tips. See [DocutainListItem] for more details * on what each item can display. If you don't provide any items, some [defaultItems] will be * displayed. * * @since 6.0.0 */ items?: DocutainListItem[]; /** * The title to be displayed in the top toolbar. * * @since 6.0.0 */ title?: string; /** * The button that restarts the scan process. * * @since 6.0.0 */ repeatButton?: DocutainButton; } /** * A configuration class used to alter the default photo payment behaviour. */ export interface StartPhotoPaymentOptions { /** * If true, the toolbar will display an Item allowing the user to switch between auto capture and manual capture. Defaults to false. * * @default false * @since 6.0.0 */ allowCaptureModeSetting?: boolean; /** * If true, the camera will capture the image automatically at the right moment. Defaults to true. * * @default true * @since 6.0.0 */ autoCapture?: boolean; /** * The default scan filter that will be used after scan. Defaults to [ScanFilter.ILLUSTRATION]. See [ScanFilter] for possible values. * * @default ScanFilter.ILLUSTRATION * @since 6.0.0 */ defaultScanFilter?: ScanFilter; /** * Configuration class used to alter the default page editing behaviour. * * @since 6.0.0 */ pageEditConfig?: PageEditConfiguration; /** * Configuration class used to alter the default color theming behaviour. * * @since 6.0.0 */ ColorConfig?: ColorConfig; /** * Select the source for the document scanner. Defaults to [Source.CAMERA]. See [Source] for possible values. * * @default Source.CAMERA * @since 6.0.0 */ source?: Source; /** * The source images for the document scanner if you have set the [source] to [Source.IMAGE]. * * @since 6.0.0 */ sourceImages?: string[]; /** * If true, image gets automatically cropped if document was detected. This applies only if * [source] is [Source.IMAGE] or [Source.GALLERY] or [Source.GALLERY_MULTIPLE]. Defaults to true. * * @default true * @since 6.0.0 */ autoCrop?: boolean; /** * If true, scanning multi page documents is possible. Set this to false if you need to scan single page documents. Defaults to true. * * @default true * @since 6.0.0 */ multiPage?: boolean; /** * If true, the camera will run a focus action right before taking the image. This improves the quality * of the scanned images, but depending on the device, image capture might take a little bit longer. * Defaults to true. * * @default true * @since 6.0.0 */ preCaptureFocus?: boolean; /** * Configuration class used to alter the default text behaviour. * * @default true * @since 6.0.0 */ textConfig?: TextConfiguration; /** * Configuration class used to alter the default buttons. * * @since 6.0.0 */ buttonConfig?: ButtonConfiguration; /** * If true, a list of all pages (thumbnails) will be displayed before the scan process can be finished. * Defaults to false. * * @default false * @since 6.0.0 */ confirmPages?: boolean; /** * If true, after the scan screen is finished, an editing screen with the captured images will be displayed. * On the editing screen, the user can crop manually, rotate the page, filter the page and much more. * The editing screen can be configured by accessing the [pageEditConfig]. * Defaults to true. * * @default true * @since 6.0.0 */ allowPageEditing?: boolean; /** * Overrides the status bar appearance. By default, the system chooses the appearance based on the current UI Mode. * * Only available on Android. * * @since 6.0.0 */ statusBarAppearance?: StatusBarAppearance; /** * Overrides the navigation bar appearance. By default, the system chooses the appearance based on the current UI Mode. * * Only available on Android. * * @since 6.0.0 */ navigationBarAppearance?: NavigationBarAppearance; /** * If true, when an image is captured, the device vibrates to signal successful capture. * Defaults to false. */ vibrateOnCapture?: boolean; /** * An optional onboarding when the user opens the scanner for the first time. See [Onboarding] * for more details. * * @since 6.0.0 */ onboarding?: Onboarding | null; /** * An optional toolbar item that shows scan tips when clicked. See [ScanTips] for more details. * * @since 6.0.0 */ scanTips?: ScanTips | null; /** * Use this to enable/disable additional values to be detected. See [PaymentAnalyzeConfiguration] for * more details. * * @since 6.0.0 */ analyzeConfig?: PaymentAnalyzeConfiguration; /** * A screen that will be displayed if no payment information could be extracted. * If you do not want to display the screen at all, just set it to null. * * @since 6.0.0 */ emptyResultScreen?: EmptyResultScreen | null; } /** * The result of {@link startPhotoPayment}. * * @since 6.0.0 */ export interface StartPhotoPaymentResult { /** * The json result data for the document * * @since 6.0.0 */ data?: string; } /** * A configuration class used to alter the default document analysis behaviour. * * @deprecated Use `AnalyzeConfigurationOptions`. * @since 1.0.0 */ export interface AnalyzeConfiguration { /** * Read BIC. * * @since 1.0.0 */ readBIC?: boolean; /** * Read payment state. * * @since 1.0.0 */ readPaymentState?: boolean; } /** * A configuration class used to alter the default document scan behaviour. * * @since 1.0.0 * @deprecated Use `StartDocumentScannerOptions`. */ export type DocumentScannerConfiguration = StartDocumentScannerOptions;