import type { AddPageOptions } from './types/base/AddPageOptions';
import type { CreateDocumentOptions } from './types/base/CreateDocumentOptions';
import type { ModifyPageOptions } from './types/base/ModifyPageOptions';
import type { ImageInput, ResultWrapper } from './types/base/customTypes';
import type { Page } from './types/base/types';
import type { DocumentQualityAnalyzerConfiguration, DocumentQualityAnalyzerResult } from './types/core/document_quality_analyzer/DocumentQualityAnalyzerTypes';
import type { DocumentData } from './types/core/document_scanner/DocumentData';
import type { DocumentScannerConfiguration, DocumentScanningResult } from './types/core/document_scanner/DocumentScannerTypes';
import type { CroppingConfiguration } from './types/core/ui_v2/document/CroppingConfiguration';
import type { DocumentScanningFlow } from './types/core/ui_v2/document/DocumentScanningFlow';
/**
 * Entry point for all document features.
 */
export declare const ScanbotDocument: {
    /**
     * Creates a document from the provided images with the specified options.
     * @param {ImageInput[]} params.images - The images to be used for document creation.
     * @param {CreateDocumentOptions} params.options - The options to be used for document creation.
     * @returns {Promise<DocumentData>} - Created document.
     */
    createDocumentFromImages(params: {
        images?: ImageInput[];
        options?: CreateDocumentOptions;
    }): Promise<DocumentData>;
    /**
     * Creates a document from the provided PDF file with the specified options.
     * @param {string} params.pdfFileUri - The PDF file uri to be used for document creation.
     * @param {CreateDocumentOptions} params.options - The options to be used for document creation.
     * @returns {Promise<DocumentData>} - Created document.
     */
    createDocumentFromPdf(params: {
        pdfFileUri: string;
        options?: CreateDocumentOptions;
    }): Promise<DocumentData>;
    /**
     * Creates a document from the provided legacy pages with the specified image size limit.
     * @param {Page[]} params.pages - The legacy pages to be used for document creation. Legacy filters that are set on the pages will be ignored. Please switch to ParametricFilters instead.
     * @param {number} params.documentImageSizeLimit - The maximum size of the longest edge of the document image. If the image exceeds this limit, it will be downscaled proportionally. Default is 0
     * @returns {Promise<DocumentData>} - Created document.
     * @deprecated
     */
    createDocumentFromLegacyPages(params: {
        pages: Page[];
        documentImageSizeLimit?: number;
    }): Promise<DocumentData>;
    /**
     * Checks if a document with the specified Uuid exists.
     * @param {string} documentUuid - The Uuid of the document.
     * @returns {Promise<boolean>} - True if the document exists, false otherwise.
     */
    documentExists(documentUuid: string): Promise<boolean>;
    /**
     * Loads the document with the specified Uuid.
     * @param {string} documentUuid - The Uuid of the document.
     * @returns {Promise<DocumentData>} - Loaded document.
     */
    loadDocument(documentUuid: string): Promise<DocumentData>;
    /**
     * Retrieves the Uuids of all stored documents.
     * @returns {Promise<string[]>} - List of stored document Uuids.
     */
    getStoredDocumentUuids(): Promise<string[]>;
    /**
     * Clones the document with the specified Uuid.
     * @param {string} documentUuid - The Uuid of the document to be cloned.
     * @returns {Promise<DocumentData>} - Cloned document.
     */
    cloneDocument(documentUuid: string): Promise<DocumentData>;
    /**
     * Deletes the document with the specified Uuid.
     * @param {string} documentUuid - The Uuid of the document to be deleted.
     * @returns {Promise<void>}
     */
    deleteDocument(documentUuid: string): Promise<void>;
    /**
     * Deletes all stored documents.
     * @returns {Promise<void>}
     */
    deleteAllDocuments(): Promise<void>;
    /**
     * Adds new pages from the provided images to the document with the specified Uuid.
     * @param {string} params.documentUuid - The Uuid of the document to which pages will be added.
     * @param {ImageInput[]} params.images - The images to be added as new pages.
     * @param {AddPageOptions} params.options - The options to be used when adding pages.
     * @returns {Promise<DocumentData>} - Updated document with added pages.
     */
    addPages(params: {
        documentUuid: string;
        images: ImageInput[];
        options?: AddPageOptions;
    }): Promise<DocumentData>;
    /**
     * Moves a page within the document to a new position.
     * @param {string} params.documentUuid - The Uuid of the document containing the page to be moved.
     * @param {number} params.fromIndex - The index of the page to be moved.
     * @param {number} params.toIndex - The new index position for the page.
     * @returns {Promise<DocumentData>} - Updated document with the page moved to the new position.
     */
    movePage(params: {
        documentUuid: string;
        fromIndex: number;
        toIndex: number;
    }): Promise<DocumentData>;
    /**
     * Modifies a page within the document using the specified options.
     * @param {string} params.documentUuid - The Uuid of the document containing the page to be modified.
     * @param {string} params.pageUuid - The Uuid of the page to be modified.
     * @param {ModifyPageOptions} params.options - The options specifying the modifications to be made to the page.
     * @returns {Promise<DocumentData>} - Updated document with the modified page.
     */
    modifyPage(params: {
        documentUuid: string;
        pageUuid: string;
        options?: ModifyPageOptions;
    }): Promise<DocumentData>;
    /**
     * Removes pages with the specified Uuids from the document.
     * @param {string} params.documentUuid - The Uuid of the document from which pages will be removed.
     * @param {string[]} params.pageUuids - The Uuids of the pages to be removed.
     * @returns {Promise<DocumentData>} - Updated document with the specified pages removed.
     */
    removePages(params: {
        documentUuid: string;
        pageUuids: string[];
    }): Promise<DocumentData>;
    /**
     * Removes all pages from the document with the specified Uuid.
     * @param {string} documentUuid - The Uuid of the document from which all pages will be removed.
     * @returns {Promise<DocumentData>} - Updated document with all pages removed.
     */
    removeAllPages(documentUuid: string): Promise<DocumentData>;
    /**
     * Opens the Ready-To-Use UI Document Scanner screen with the desired configuration.
     * @param {DocumentScanningFlow} configuration - The configuration to be used for the document scanner.
     * @returns {Promise<ResultWrapper<DocumentData>>} - Scanned document.
     */
    startScanner(configuration: DocumentScanningFlow): Promise<ResultWrapper<DocumentData>>;
    /**
     * Opens the Ready-To-Use UI Cropping screen with the desired configuration.
     * @param {CroppingConfiguration} configuration - The configuration to be used for the cropping screen.
     * @returns {Promise<ResultWrapper<DocumentData>>} - Updated document after cropping.
     */
    startCroppingScreen(configuration: CroppingConfiguration): Promise<ResultWrapper<DocumentData>>;
    /**
     * Scans a document from the provided image.
     * @param {ImageInput} params.image - The image to be scanned.
     * @param {DocumentScannerConfiguration} params.configuration - The configuration to be used for scanning.
     * @returns {Promise<DocumentScanningResult>} - Result of the scanning process.
     */
    scanFromImage(params: {
        image: ImageInput;
        configuration: DocumentScannerConfiguration;
    }): Promise<DocumentScanningResult>;
    /**
     * Analyzes the quality of the document on the provided image.
     * @param {ImageInput} params.image - The image to be analyzed.
     * @param {DocumentQualityAnalyzerConfiguration} params.configuration - The configuration to be used for analysis.
     * @returns {Promise<DocumentQualityAnalyzerResult>} - Result of the quality analysis.
     */
    analyzeQualityOnImage(params: {
        image: ImageInput;
        configuration: DocumentQualityAnalyzerConfiguration;
    }): Promise<DocumentQualityAnalyzerResult>;
};
