/// <reference types="node" />
/// <reference types="node" />
import { Buffer } from "buffer";
import { BarcodeStampOptions, BarcodeType, ChangeTrackingModes, ChromePdfRenderOptions, DigitalSignature, HtmlAffix, HtmlFilePath, HtmlStampOptions, HtmlString, HttpLoginCredentials, ImageBuffer, ImageFilePath, ImageStampOptions, ImageToPdfOptions, ImageType, PageInfo, PageRotation, PdfInput, PdfPageSelection, PdfPaperSize, PdfPassword, PdfPermission, SaveOptions, TextAffix, TextStampOptions } from "./types";
import { NaturalLanguages } from "./naturalLanguages";
/**
 * Represents a PDF document. Allows: loading, editing, manipulating, merging, signing printing and saving PDFs.
 *
 * @remark Make sure that you call {@link PdfDocument.close} or {@link cleanUp} to free the memory, when you stop using the PdfDocument object.
 */
export declare class PdfDocument {
    /**
     * Open or Create a PdfDocument from a {@link PdfInput}
     * @param pdfInput {@link PdfInput}
     * @param options including {@link PdfPassword} {@link ChromePdfRenderOptions} {@link HttpLoginCredentials} mainHtmlFile
     */
    static open(pdfInput: PdfInput, options?: {
        /**
         * required for open a protected PDF file
         * @default undefined
         */
        password?: PdfPassword | undefined;
        /**
         * Apply renderOptions if PdfInput is a {@link HtmlString} or {@link HtmlFilePath} or {@link ZipFilePath} or {@link Url}}
         * @default undefined
         */
        renderOptions?: ChromePdfRenderOptions | undefined;
        /**
         * Apply httpLoginCredentials if PdfInput is a {@link HtmlString} or {@link HtmlFilePath} or {@link ZipFilePath} or {@link Url}}
         * @default undefined
         */
        httpLoginCredentials?: HttpLoginCredentials | undefined;
        /**
         * Apply mainHtmlFile if PdfInput is {@link ZipFilePath}
         * @default index.html
         */
        mainHtmlFile?: string | undefined;
        /**
         * Optionally track changes to the document (for use with incremental saves)
         * @default {@link ChangeTrackingModes.AutoChangeTracking}
         */
        trackChanges?: ChangeTrackingModes | undefined;
    } | undefined): Promise<PdfDocument>;
    /**
     * Open a PdfDocument from .pdf file
     * @param pdfFilePath A path to .pdf file
     * @param Optionally track changes to the document (for use with incremental saves)
     */
    static fromFile(pdfFilePath: string, trackChanges?: ChangeTrackingModes | undefined): Promise<PdfDocument>;
    /**
     * Create a PdfDocument from an Url
     * @param url A website Url
     * @param options including {@link ChromePdfRenderOptions}
     */
    static fromUrl(url: URL | string, options?: {
        /**
         * Apply renderOptions if PdfInput is a {@link HtmlString} or {@link HtmlFilePath} or {@link ZipFilePath} or {@link Url}}
         * @default undefined
         */
        renderOptions?: ChromePdfRenderOptions | undefined;
    } | undefined): Promise<PdfDocument>;
    /**
     * Creates a PDF file from a local Zip file, and returns it as a {@link PdfDocument}.
     * IronPDF is a W3C standards compliant HTML rendering based on Google's Chromium browser.
     * If your output PDF does not look as expected:
     *
     * - Validate your HTML file using  https://validator.w3.org/ &amp; CSS https://jigsaw.w3.org/css-validator/
     *
     * - To debug HTML, view the file in Chrome web browser's print preview which will work almost exactly as IronPDF.
     *
     * - Read our detailed documentation on pixel perfect HTML to PDF: https://ironpdf.com/tutorials/pixel-perfect-html-to-pdf/
     *
     * @param zipFilePath Path to a Zip to be rendered as a PDF.
     * @param options including {@link ChromePdfRenderOptions} and `mainHtmlFile` a main .html file default: `index.html`
     */
    static fromZip(zipFilePath: string, options?: {
        /**
         * Apply renderOptions if PdfInput is a {@link HtmlString} or {@link HtmlFilePath} or {@link ZipFilePath} or {@link Url}}
         * @default undefined
         */
        renderOptions?: ChromePdfRenderOptions | undefined;
        /**
         * a main .html file default: `index.html`
         */
        mainHtmlFile?: string | undefined;
    } | undefined): Promise<PdfDocument>;
    /**
     * Creates a PDF file from a Html string, and returns it as an {@link PdfDocument} object which can be edited and saved to disk or served on a website.
     * @param htmlStringOrHtmlFilePath The Html to be rendered as a PDF.
     * @param options including {@link ChromePdfRenderOptions}
     */
    static fromHtml(htmlStringOrHtmlFilePath: string, options?: {
        /**
         * Apply renderOptions if PdfInput is a {@link HtmlString} or {@link HtmlFilePath} or {@link ZipFilePath} or {@link Url}}
         * @default undefined
         */
        renderOptions?: ChromePdfRenderOptions | undefined;
    } | undefined): Promise<PdfDocument>;
    /**
     *  Converts multiple image files to a PDF document.  Each image creates 1 page which matches the image
     *  dimensions. The default PaperSize is A4. You can set it via ImageToPdfConverter.PaperSize.
     *  Note: Imaging.ImageBehavior.CropPage will set PaperSize equal to ImageSize.
     * @param images The image file path name(s) or {@link ImageBuffer} object(s)
     * @param options including {@link ImageToPdfOptions}
     */
    static fromImage(images: ImageFilePath | ImageFilePath[] | ImageBuffer | ImageBuffer[], options?: {
        /**
         * Apply renderOptions if PdfInput is a {@link HtmlString} or {@link HtmlFilePath} or {@link ZipFilePath} or {@link Url}}
         * @default undefined
         */
        imageToPdfOptions?: ImageToPdfOptions | undefined;
    }): Promise<PdfDocument>;
    /**
     * Static method that joins (concatenates) multiple PDF documents together into one compiled PDF document.
     * If the PDF contains form fields the form field in the resulting PDF's name will be appended with '_{index}' e.g. 'Name' will be 'Name_0'
     * @param pdfs array of PDF
     */
    static mergePdf(pdfs: PdfInput[]): Promise<PdfDocument>;
    /**
     * Saves the PdfDocument to a file.
     * @param filePath Target file path
     * @param saveOptions see {@link SaveOptions}
     */
    saveAs(filePath: string, saveOptions?: SaveOptions | undefined): Promise<void>;
    /**
     * Saves the PdfDocument to a binary (Buffer)
     * @param saveOptions see {@link SaveOptions}
     */
    saveAsBuffer(saveOptions?: SaveOptions | undefined): Promise<Buffer>;
    /**
     * Compress existing PDF images using JPG encoding and the specified settings
     * @param imageQuality Quality (1 - 100) to use during compression
     * @param scaleToVisibleSize Scale down the image resolution according to its visible size in the PDF document
     */
    compressSize(imageQuality: number, scaleToVisibleSize?: boolean): Promise<void>;
    /**
     *  Remove document struct tree information which describes the logical layout of the document.
     *  Removing the "structure tree" can significantly reduce the disk space used by the document.
     *  Removing the "structure tree" of a complicated document can negatively impact text selection.
     */
    compressStructTree(): Promise<void>;
    /**
     * Gets information of all pages in the PdfDocument
     */
    getPagesInfo(): Promise<PageInfo[]>;
    /**
     * Gets the number of pages in the PdfDocument.
     */
    getPageCount(): Promise<number>;
    /**
     * Set the page orientation.
     * @param pageRotation see {@link PageRotation}
     * @param options including {@link PdfPageSelection}
     */
    setRotation(pageRotation: PageRotation, options?: {
        /**
         * @default "all"
         */
        pdfPageSelection?: PdfPageSelection | undefined;
    } | undefined): Promise<void>;
    /**
     * Resize a page to the specified dimensions
     * @param newSize {@link PdfPaperSize}
     * @param options including {@link PdfPageSelection}
     */
    resize(newSize: PdfPaperSize, options?: {
        /**
         * @default "all"
         */
        pdfPageSelection?: PdfPageSelection | undefined;
    } | undefined): Promise<void>;
    /**
     * Adds another PDF to the beginning of the current PdfDocument
     * If AnotherPdfFile contains form fields, those fields will be appended with '_' in the resulting PDF. e.g. 'Name' will be 'Name_'
     * @param fromPdfDocument PdfDocument to prepend
     */
    prependAnotherPdf(fromPdfDocument: PdfDocument): Promise<void>;
    /**
     * Appends another PDF to the end of the current <see cref="PdfDocument"/>
     * If AnotherPdfFile contains form fields, those fields will be appended with '_' in the resulting PDF. e.g. 'Name' will be 'Name_'
     * @param fromPdfDocument PdfDocument to Append
     */
    appendAnotherPdf(fromPdfDocument: PdfDocument): Promise<void>;
    /**
     * Inserts another PDF into the current PdfDocument, starting at a given Page Index.
     * If AnotherPdfFile contains form fields, those fields will be appended with '_' in the resulting PDF. e.g. 'Name' will be 'Name_'
     * @param fromPdfDocument Another PdfDocument
     * @param insertAtPageIndex Index at which to insert the new content.  Note: Page 1 has index 0...
     */
    insertPagesFromAnotherPdf(fromPdfDocument: PdfDocument, insertAtPageIndex: number): Promise<void>;
    /**
     * Removes a range of pages from the PDF
     * @param pages pages to remove
     */
    removePage(pages: PdfPageSelection): Promise<void>;
    /**
     * Creates a new PDF by copying a range of pages from this {@link PdfDocument}.
     * @param pages pages to copy (default "all")
     */
    duplicate(pages?: PdfPageSelection): Promise<PdfDocument>;
    /**
     * Finds all embedded Images from within a specified pages in the PDF and returns them as Buffer
     * @param options including {@link PdfPageSelection}
     */
    extractRawImages(options?: {
        /**
         * @default "all"
         */
        fromPages?: PdfPageSelection;
    } | undefined): Promise<Buffer[]>;
    /**
     * Renders the PDF and exports image Files in convenient formats. 1 image file is created for each
     * page.
     *
     * @param options including {@link PdfPageSelection} {@link ImageType}
     *
     * @return array of images as Buffer[]
     */
    rasterizeToImageBuffers(options?: {
        /**
         * @default "all"
         */
        fromPages?: PdfPageSelection | undefined;
        /**
         * @default {@link ImageType.PNG}
         */
        imageType?: ImageType | undefined;
    } | undefined): Promise<Buffer[]>;
    /**
     * Renders the PDF and exports image Files in convenient formats. 1 image file is created for each
     * page. Running number will append output file path.
     *
     * @param filePath output file path.
     * @param options including {@link PdfPageSelection} {@link ImageType}
     *
     * @return array of images file name as string[]
     */
    rasterizeToImageFiles(filePath: string, options?: {
        /**
         * @default "all"
         */
        fromPages?: PdfPageSelection | undefined;
        /**
         * @default {@link ImageType.PNG}
         */
        type?: ImageType | undefined;
    } | undefined): Promise<string[]>;
    /**
     * Replace the specified old text with new text on a given page
     * @param oldText Old text to remove
     * @param newText New text to add
     * @param onPages Page index to search for old text to replace (default "all")
     */
    replaceText(oldText: string, newText: string, onPages?: PdfPageSelection | undefined): Promise<void>;
    extractText(onPages?: PdfPageSelection | undefined): Promise<string>;
    /**
     * Convert the current document into the specified PDF-A standard format
     * @param customICC (Optional) Custom color profile file path
     */
    convertToPdfA(customICC?: string | undefined): Promise<void>;
    /**
     * Convert the current document into the specified PDF/UA standard format
     */
    convertToPdfUA(naturalLanguages: NaturalLanguages): Promise<void>;
    /**
     * Gets a Map<string, string> of metadata properties
     */
    getMetadata(): Promise<Map<string, string>>;
    /**
     * Add or Update a single metadata property
     * @param key
     * @param value
     */
    addOrUpdateMetadata(key: string, value: string): Promise<void>;
    /**
     * Remove a single metadata property
     * @param key
     */
    removeMetadata(key: string): Promise<void>;
    /**
     * Sets a whole metadata properties Map<string, string> (override all the metadata property)
     * @param newMetadataDictionary new metadata properties Map<string, string>
     */
    overrideMetadata(newMetadataDictionary: Map<string, string>): Promise<void>;
    /**
     * Sign PDF with digital signature certificate.
     * Note that the PDF will not be fully signed until Saved
     * using {@link saveAs} or {@link saveAsBuffer}
     *
     * Multiple certificates may be used.
     * @param signature see {@link DigitalSignature}
     */
    signDigitalSignature(signature: DigitalSignature): Promise<void>;
    /**
     * Check if PdfDocument was signed or not
     */
    isSigned(): Promise<boolean>;
    /**
     * Count the number signature that signed to this PdfDocument
     */
    signatureCount(): Promise<number>;
    /**
     * Apply page header on top of an existing Pdf.
     * @param header {@link TextAffix}
     * @param toPages {@link PdfPageSelection}
     */
    addTextHeader(header: TextAffix, toPages?: PdfPageSelection | undefined): Promise<void>;
    /**
     * Apply page footer on top of an existing Pdf.
     * @param footer {@link TextAffix}
     * @param toPages {@link PdfPageSelection}
     */
    addTextFooter(footer: TextAffix, toPages?: PdfPageSelection | undefined): Promise<void>;
    /**
     * Apply HTML header on top of an existing Pdf.
     * @param header {@link HtmlAffix}
     * @param toPages {@link PdfPageSelection}
     */
    addHtmlHeader(header: HtmlAffix, toPages?: PdfPageSelection | undefined): Promise<void>;
    /**
     * Apply HTML footer on top of an existing Pdf.
     * @param footer {@link HtmlAffix}
     * @param toPages {@link PdfPageSelection}
     */
    addHtmlFooter(footer: HtmlAffix, toPages?: PdfPageSelection | undefined): Promise<void>;
    /**
     * Edits the PDF by applying the HTML's rendered to only selected page(s).
     * @param htmlStringOrHtmlFilePath
     * @param options including {@link HtmlStampOptions} {@link PdfPageSelection}
     */
    stampHtml(htmlStringOrHtmlFilePath: HtmlFilePath | HtmlString, options?: {
        htmlStampOptions?: HtmlStampOptions | undefined;
        toPages?: PdfPageSelection | undefined;
    } | undefined): Promise<void>;
    /**
     * Edits the PDF by applying the image to only selected page(s).
     * @param image image file path or image buffer
     * @param options including {@link ImageStampOptions} {@link PdfPageSelection}
     */
    stampImage(image: ImageFilePath | ImageBuffer, options?: {
        imageStampOptions?: ImageStampOptions | undefined;
        toPages?: PdfPageSelection | undefined;
    } | undefined): Promise<void>;
    /**
     * Edits the PDF by applying the text to only selected page(s).
     * @param text text to stamp
     * @param options including {@link TextStampOptions} {@link PdfPageSelection}
     */
    stampText(text: string, options?: {
        textStampOptions?: TextStampOptions | undefined;
        toPages?: PdfPageSelection | undefined;
    } | undefined): Promise<void>;
    /**
     * Edits the PDF by applying the barcode to only selected page(s).
     * @param barcodeValue barcode
     * @param options including {@link BarcodeType} {@link BarcodeStampOptions} {@link PdfPageSelection}
     */
    stampBarcode(barcodeValue: string, options?: {
        barcodeEncoding: BarcodeType;
        barcodeStampOptions?: BarcodeStampOptions | undefined;
        toPages?: PdfPageSelection | undefined;
    } | undefined): Promise<void>;
    /**
     * Adds a background to each page of this PDF. The background is copied from a first page in the
     * backgroundPdf document.
     *
     * @param fromPdf background PDF document
     * @param sourcePageIndex Index (zero-based page number) of the page to copy from the Background/Foreground PDF. Default is 0.
     * @param applyToPages  PageSelection to which the background/foreground will be added. Default is "all"
     */
    addBackgroundFromAnotherPdf(fromPdf: PdfDocument, sourcePageIndex?: number, applyToPages?: PdfPageSelection | undefined): Promise<void>;
    /**
     * Adds a foreground to each page of this PDF. The background is copied from a first page in the
     * backgroundPdf document.
     *
     * @param fromPdf foreground PDF document
     * @param sourcePageIndex Index (zero-based page number) of the page to copy from the Background/Foreground PDF. Default is 0.
     * @param applyToPages  PageSelection to which the background/foreground will be added. Default is "all"
     */
    addForegroundFromAnotherPdf(fromPdf: PdfDocument, sourcePageIndex?: number, applyToPages?: PdfPageSelection | undefined): Promise<void>;
    /**
     * Removes all user and owner password security for a PDF document.  Also disables content
     * encryption.
     * If content is encrypted at 128 bit, copy and paste of content, annotations and form editing may be disabled.
     */
    removePasswordsAndEncryption(): Promise<void>;
    /**
     * Sets the user password and enables 128Bit encryption of PDF content.
     * A user password is a password that each user must enter to open or print the PDF document.
     */
    setUserPassword(userPassword: string): Promise<void>;
    /**
     * Sets the owner password and enables 128Bit encryption of PDF content. An owner password is one used to
     * enable and disable all other security settings. <para>OwnerPassword must be set to a non-empty string
     * value for {@link PdfPermission.AllowAccessibilityExtractContent} ,  {@link PdfPermission.AllowAnnotations} ,
     * {@link PdfPermission.AllowFillForms},  {@link PdfPermission.AllowPrint},  {@link PdfPermission.AllowModify} to be
     * restricted.
     */
    setOwnerPassword(ownerPassword: string): Promise<void>;
    /**
     * Sets the permissions of this PdfDocument
     * @param permissions see {@link PdfPermission}
     */
    setPermission(permissions: PdfPermission): Promise<void>;
    /**
     * Gets the current permissions of this PdfDocument
     * @return {@link PdfPermission}
     */
    getPermission(): Promise<PdfPermission>;
    /**
     * Makes this PDF document read only such that: Content is encrypted at 128 bit. Copy and paste of
     * content is disallowed. Annotations and form editing are disabled.
     * @param ownerPassword The owner password for the PDF. A string for owner password is required to enable PDF encryption and
     * all document security options.
     */
    makePdfDocumentReadOnly(ownerPassword: string): Promise<void>;
    /**
     * Dispose this PdfDocument object (clean up the resource)
     * This is necessary to free the memory used by PdfDocument. See {@link cleanUp}
     * Once this method was called this PdfDocument object no longer usable.
     */
    close(): Promise<void>;
    /**
     * Internal PDF document ID
     * @private
     */
    private pdfDocumentId?;
    /**
     * @private
     */
    private readonly promiseDocumentId?;
    /**
     * @private
     */
    private pdfPassword?;
    /**
     * Create a PdfDocument object from a {@link PdfInput}
     * For more specific way to create/open PdfDocument see {@link fromUrl} {@link fromZip} {@link fromHtml} {@link fromImage}  {@link open}
     *
     * @param pdfInput see {@link PdfInput} (required) (pdfInput is {@link PdfFilePath} or {@link Buffer})
     * @param password a password to open the PDF required if PDF file was private.
     * @param trackChanges Optionally track changes to the document (for use with incremental saves)
     */
    constructor(pdfInput?: PdfInput | undefined, password?: PdfPassword | undefined, trackChanges?: ChangeTrackingModes | undefined);
    /**
     * Dispose this PdfDocument object (clean up the resource)
     * This is necessary to free the memory used by PdfDocument. See {@link cleanUp}
     * Once this method was called this PdfDocument object no longer usable.
     */
    private internal_close;
    /**
     * @private
     */
    private internal_getId;
    /**
     * Open or Create a PdfDocument from a {@link PdfInput}
     * @param pdfInput {@link PdfInput}
     * @param options including {@link PdfPassword} {@link ChromePdfRenderOptions} {@link HttpLoginCredentials} mainHtmlFile
     */
    private static internal_open;
    /**
     * Open a PdfDocument from .pdf file
     * @param pdfFilePath A path to .pdf file
     * @param Optionally track changes to the document (for use with incremental saves)
     */
    private static internal_fromFile;
    /**
     * Create a PdfDocument from an Url
     * @param url A website Url
     * @param options including {@link ChromePdfRenderOptions}
     */
    private static internal_fromUrl;
    /**
     * Creates a PDF file from a local Zip file, and returns it as a {@link PdfDocument}.
     * IronPDF is a W3C standards compliant HTML rendering based on Google's Chromium browser.
     * If your output PDF does not look as expected:
     *
     * - Validate your HTML file using  https://validator.w3.org/ &amp; CSS https://jigsaw.w3.org/css-validator/
     *
     * - To debug HTML, view the file in Chrome web browser's print preview which will work almost exactly as IronPDF.
     *
     * - Read our detailed documentation on pixel perfect HTML to PDF: https://ironpdf.com/tutorials/pixel-perfect-html-to-pdf/
     *
     * @param zipFilePath Path to a Zip to be rendered as a PDF.
     * @param options including {@link ChromePdfRenderOptions} and `mainHtmlFile` a main .html file default: `index.html`
     */
    private static internal_fromZip;
    /**
     * Creates a PDF file from a Html string, and returns it as an {@link PdfDocument} object which can be edited and saved to disk or served on a website.
     * @param htmlStringOrHtmlFilePath The Html to be rendered as a PDF.
     * @param options including {@link ChromePdfRenderOptions}
     */
    private static internal_fromHtml;
    /**
     *  Converts multiple image files to a PDF document.  Each image creates 1 page which matches the image
     *  dimensions. The default PaperSize is A4. You can set it via ImageToPdfConverter.PaperSize.
     *  Note: Imaging.ImageBehavior.CropPage will set PaperSize equal to ImageSize.
     * @param images The image file path name(s) or {@link ImageBuffer} object(s)
     * @param options including {@link ImageToPdfOptions}
     */
    private static internal_fromImage;
    /**
     * Static method that joins (concatenates) multiple PDF documents together into one compiled PDF document.
     * If the PDF contains form fields the form field in the resulting PDF's name will be appended with '_{index}' e.g. 'Name' will be 'Name_0'
     * @param pdfs array of PDF
     */
    private static internal_mergePdf;
    /**
     * Saves the PdfDocument to a file.
     * @param filePath Target file path
     * @param saveOptions see {@link SaveOptions}
     */
    private internal_saveAs;
    /**
     * Saves the PdfDocument to a binary (Buffer)
     * @param saveOptions see {@link SaveOptions}
     */
    private internal_saveAsBuffer;
    /**
     * Compress existing PDF images using JPG encoding and the specified settings
     * @param imageQuality Quality (1 - 100) to use during compression
     * @param scaleToVisibleSize Scale down the image resolution according to its visible size in the PDF document
     */
    private internal_compressSize;
    /**
     *  Remove document struct tree information which describes the logical layout of the document.
     *  Removing the "structure tree" can significantly reduce the disk space used by the document.
     *  Removing the "structure tree" of a complicated document can negatively impact text selection.
     */
    private internal_compressStructTree;
    /**
     * Gets information of all pages in the PdfDocument
     */
    private internal_getPagesInfo;
    /**
     * Gets the number of pages in the PdfDocument.
     */
    private internal_getPageCount;
    /**
     * Set the page orientation.
     * @param pageRotation see {@link PageRotation}
     * @param options including {@link PdfPageSelection}
     */
    private internal_setRotation;
    /**
     * Resize a page to the specified dimensions
     * @param newSize {@link PdfPaperSize}
     * @param options including {@link PdfPageSelection}
     */
    private internal_resize;
    /**
     * Adds another PDF to the beginning of the current PdfDocument
     * If AnotherPdfFile contains form fields, those fields will be appended with '_' in the resulting PDF. e.g. 'Name' will be 'Name_'
     * @param fromPdfDocument PdfDocument to prepend
     */
    private internal_prependAnotherPdf;
    /**
     * Appends another PDF to the end of the current <see cref="PdfDocument"/>
     * If AnotherPdfFile contains form fields, those fields will be appended with '_' in the resulting PDF. e.g. 'Name' will be 'Name_'
     * @param fromPdfDocument PdfDocument to Append
     */
    private internal_appendAnotherPdf;
    /**
     * Inserts another PDF into the current PdfDocument, starting at a given Page Index.
     * If AnotherPdfFile contains form fields, those fields will be appended with '_' in the resulting PDF. e.g. 'Name' will be 'Name_'
     * @param fromPdfDocument Another PdfDocument
     * @param insertAtPageIndex Index at which to insert the new content.  Note: Page 1 has index 0...
     */
    private internal_insertPagesFromAnotherPdf;
    /**
     * Removes a range of pages from the PDF
     * @param pages pages to remove
     */
    private internal_removePage;
    /**
     * Creates a new PDF by copying a range of pages from this {@link PdfDocument}.
     * @param pages pages to copy (default "all")
     */
    private internal_duplicate;
    /**
     * Finds all embedded Images from within a specified pages in the PDF and returns them as Buffer
     * @param options including {@link PdfPageSelection}
     */
    private internal_extractRawImages;
    /**
     * Renders the PDF and exports image Files in convenient formats. 1 image file is created for each
     * page.
     *
     * @param options including {@link PdfPageSelection} {@link ImageType}
     *
     * @return array of images as Buffer[]
     */
    private internal_rasterizeToImageBuffers;
    /**
     * Renders the PDF and exports image Files in convenient formats. 1 image file is created for each
     * page. Running number will append output file path.
     *
     * @param filePath output file path.
     * @param options including {@link PdfPageSelection} {@link ImageType}
     *
     * @return array of images file name as string[]
     */
    private internal_rasterizeToImageFiles;
    /**
     * Replace the specified old text with new text on a given page
     * @param oldText Old text to remove
     * @param newText New text to add
     * @param onPages Page index to search for old text to replace (default "all")
     */
    private internal_replaceText;
    private internal_extractText;
    /**
     * Convert the current document into the specified PDF-A standard format
     * @param customICC (Optional) Custom color profile file path
     */
    private internal_convertToPdfA;
    /**
     * Convert the current document into the specified PDF/UA standard format
     */
    private internal_convertToPdfUA;
    /**
     * Gets a Map<string, string> of metadata properties
     */
    private internal_getMetadata;
    /**
     * Add or Update a single metadata property
     * @param key
     * @param value
     */
    private internal_addOrUpdateMetadata;
    /**
     * Remove a single metadata property
     * @param key
     */
    private internal_removeMetadata;
    /**
     * Sets a whole metadata properties Map<string, string> (override all the metadata property)
     * @param newMetadataDictionary new metadata properties Map<string, string>
     */
    private internal_overrideMetadata;
    /**
     * Sign PDF with digital signature certificate.
     * Note that the PDF will not be fully signed until Saved
     * using {@link saveAs} or {@link saveAsBuffer}
     *
     * Multiple certificates may be used.
     * @param signature see {@link DigitalSignature}
     */
    private internal_signDigitalSignature;
    /**
     * Check if PdfDocument was signed or not
     */
    private internal_isSigned;
    /**
     * Count the number signature that signed to this PdfDocument
     */
    private internal_signatureCount;
    /**
     * Apply page header on top of an existing Pdf.
     * @param header {@link TextAffix}
     * @param toPages {@link PdfPageSelection}
     */
    private internal_addTextHeader;
    /**
     * Apply page footer on top of an existing Pdf.
     * @param footer {@link TextAffix}
     * @param toPages {@link PdfPageSelection}
     */
    private internal_addTextFooter;
    /**
     * Apply HTML header on top of an existing Pdf.
     * @param header {@link HtmlAffix}
     * @param toPages {@link PdfPageSelection}
     */
    private internal_addHtmlHeader;
    /**
     * Apply HTML footer on top of an existing Pdf.
     * @param footer {@link HtmlAffix}
     * @param toPages {@link PdfPageSelection}
     */
    private internal_addHtmlFooter;
    /**
     * Edits the PDF by applying the HTML's rendered to only selected page(s).
     * @param htmlStringOrHtmlFilePath
     * @param options including {@link HtmlStampOptions} {@link PdfPageSelection}
     */
    private internal_stampHtml;
    /**
     * Edits the PDF by applying the image to only selected page(s).
     * @param image image file path or image buffer
     * @param options including {@link ImageStampOptions} {@link PdfPageSelection}
     */
    private internal_stampImage;
    /**
     * Edits the PDF by applying the text to only selected page(s).
     * @param text text to stamp
     * @param options including {@link TextStampOptions} {@link PdfPageSelection}
     */
    private internal_stampText;
    /**
     * Edits the PDF by applying the barcode to only selected page(s).
     * @param barcodeValue barcode
     * @param options including {@link BarcodeType} {@link BarcodeStampOptions} {@link PdfPageSelection}
     */
    private internal_stampBarcode;
    /**
     * Adds a background to each page of this PDF. The background is copied from a first page in the
     * backgroundPdf document.
     *
     * @param fromPdf background PDF document
     * @param sourcePageIndex Index (zero-based page number) of the page to copy from the Background/Foreground PDF. Default is 0.
     * @param applyToPages  PageSelection to which the background/foreground will be added. Default is "all"
     */
    private internal_addBackgroundFromAnotherPdf;
    /**
     * Adds a foreground to each page of this PDF. The background is copied from a first page in the
     * backgroundPdf document.
     *
     * @param fromPdf foreground PDF document
     * @param sourcePageIndex Index (zero-based page number) of the page to copy from the Background/Foreground PDF. Default is 0.
     * @param applyToPages  PageSelection to which the background/foreground will be added. Default is "all"
     */
    private internal_addForegroundFromAnotherPdf;
    /**
     * Removes all user and owner password security for a PDF document.  Also disables content
     * encryption.
     * If content is encrypted at 128 bit, copy and paste of content, annotations and form editing may be disabled.
     */
    private internal_removePasswordsAndEncryption;
    /**
     * Sets the user password and enables 128Bit encryption of PDF content.
     * A user password is a password that each user must enter to open or print the PDF document.
     */
    private internal_setUserPassword;
    /**
     * Sets the owner password and enables 128Bit encryption of PDF content. An owner password is one used to
     * enable and disable all other security settings. <para>OwnerPassword must be set to a non-empty string
     * value for {@link PdfPermission.AllowAccessibilityExtractContent} ,  {@link PdfPermission.AllowAnnotations} ,
     * {@link PdfPermission.AllowFillForms},  {@link PdfPermission.AllowPrint},  {@link PdfPermission.AllowModify} to be
     * restricted.
     */
    private internal_setOwnerPassword;
    /**
     * Sets the permissions of this PdfDocument
     * @param permissions see {@link PdfPermission}
     */
    private internal_setPermission;
    /**
     * Gets the current permissions of this PdfDocument
     * @return {@link PdfPermission}
     */
    private internal_getPermission;
    /**
     * Makes this PDF document read only such that: Content is encrypted at 128 bit. Copy and paste of
     * content is disallowed. Annotations and form editing are disabled.
     * @param ownerPassword The owner password for the PDF. A string for owner password is required to enable PDF encryption and
     * all document security options.
     */
    private internal_makePdfDocumentReadOnly;
}
//# sourceMappingURL=pdfDocument.d.ts.map