/**
 *   Docutain SDK Cordova
 *   Copyright (c) INFOSOFT Informations- und Dokumentationssysteme GmbH. All rights reserved.
 *
 *   Docutain SDK Cordova is a commercial product and requires a license.
 *   Details found in the LICENSE file in the root directory of this source tree.
 */
import type { DocumentScannerConfiguration, AnalyzeConfiguration, LogLevel, PageSourceType, PDFPageFormat, PhotoPaymentConfiguration, DocutainListItem } from './model';
export interface DocutainSDKPlugin {
    /**
    * Initializes the Docutain SDK.
    * This method needs to be called prior to using any functionality of the Docutain SDK.
    * @param licenseKey your Docutain SDK license key.
    */
    initSDK(licenseKey: string): Promise<void>;
    /**
    * Starts the document scanner.
    * @param config an instance of DocumentScannerConfiguration.
    */
    scanDocument(config: DocumentScannerConfiguration): Promise<{
        status: string;
    }>;
    /**
     * Loads a file from the given path.
     * @param filePath the path pointing to the file to be loaded.
     */
    loadFile(filepath: string): Promise<void>;
    /**
     * Detects the text of the currently loaded document and returns it.
     */
    getText(): Promise<string>;
    /**
    * Detects the text of the currently loaded document and returns it.
    *
    * @param pageNumber number of the page you want the text from or leave empty to get text of entire document
    */
    getTextPage(pageNumber: number): Promise<string>;
    /**
   * This method sets the analyze configuration.
   *
   * @param config An instance of AnalyzeConfiguration.
   */
    setAnalyzeConfiguration(config: AnalyzeConfiguration): Promise<void>;
    /**
    * Analyzes the currently loaded document and returns the detected data.
    */
    analyze(): Promise<string>;
    /**
     * This method generates a PDF document from the loaded or scanned pages.
     *
     * @param pageFormat the PDF page format, refer to PDFPageFormat.
     * @param fileUri the file uri where to save the PDF document.
     * @param overwrite if file already exist, indicate whether to override it or to append number, e.g. TestPDF(1).pdf.
     */
    writePDF(pageFormat: PDFPageFormat, fileUri?: string, overWrite?: boolean): Promise<{
        fileUri: string;
    }>;
    /**
     * This method sets the log level, which determines the severity of the message.
     *
     * @param logLevel The Level determining which kind of messages should be logged. The default is Level.Verbose.
     *
     */
    setLogLevel(logLevel: LogLevel): Promise<void>;
    /**
     * This method returns the Trace file which includes logging and error messages.
     */
    getTraceFile(): Promise<string>;
    /**
     * This method deletes all temporary files created by the Docutain SDK.
     *
     * @param deleteTraceFileContent If true, the content of the Trace file which you can send us in order to solve any problems will also be deleted
     */
    deleteTempFiles(deleteTraceFileContent: boolean): Promise<void>;
    /**
   * This method generates a JPG from the loaded or scanned page and saves it to a local file.
   *
   * @param pageNumber the page to be generated as JPG
   * @param fileUri the file uri where to save the JPG file
   */
    writeImage(pageNumber: number, fileUri: string): Promise<{
        fileUri: string;
    }>;
    /**
     * This method generates a JPG from the loaded or scanned page and returns it as a base64 encoded string.
     *
     * @param pageNumber the page to be generated as JPG
     * @param pageSourceType the PageSourceType type to be used when generating the JPG
     */
    getImageBytes(pageNumber: number, pageSourceType: PageSourceType): Promise<{
        bytes: string;
    }>;
    /**
     * This method returns the page count of the currently loaded document.
     */
    pageCount(): Promise<{
        count: number;
    }>;
    /**
    * Resets onboarding state.
    * @param onboarding Opens onboarding on next start
    * @param scanHintPopup Opens scanHintPopup on next start.
    */
    resetOnboarding(onboarding: boolean, scanHintPopup: boolean): Promise<void>;
    /**
     * Gets the default onboarding items.
     */
    onboardingDefaultItems(): Promise<DocutainListItem[]>;
    /**
     * Gets the default scan tips items.
     */
    scanTipsDefaultItems(): Promise<DocutainListItem[]>;
    /**
     * Starts the photo payment process.
    * @param config an instance of PhotoPaymentConfiguration.
     */
    startPhotoPayment(config: PhotoPaymentConfiguration): Promise<string>;
    /**
     * Gets the default empty result screen items.
     */
    emptyResultScreenDefaultItems(): Promise<DocutainListItem[]>;
}
