/**
 * Class for previewing PDF files using an iframe and the PDF.js viewer.
 * @class
 */
/**
 * Class for previewing PDF files using an iframe and the PDF.js viewer.
 * Provides methods to mount the viewer and change the displayed PDF file.
 */
declare class PdfWebViewer {
    /**
     * Singleton instance of PdfWebViewer.
     * @type {PdfWebViewer}
     * @private
     */
    private static instance;
    /**
     * Iframe instance where the PDF viewer is loaded.
     * @type {HTMLIFrameElement}
     * @private
     */
    private iframeInstance;
    /**
     * Resolves the base path for the PDF.js viewer (viewer.html) based on the current script location.
     * @returns {string} Absolute URL to the viewer.html
     * @private
     */
    private static resolveViewerBase;
    /**
     * Encodes and resolves the path of the PDF file to display.
     * If it is an absolute URL, it returns it encoded; if it is relative, it converts it to absolute.
     * @param {string} filePath - Path or URL of the PDF file
     * @returns {string} Encoded path for the viewer
     * @private
     */
    private static resolveFilePath;
    /**
     * Builds the complete viewer URL with the PDF file as a parameter.
     * @param {string} filePath - Path or URL of the PDF file
     * @returns {string} Viewer URL with the PDF loaded
     * @private
     */
    private static viewerUrlFor;
    /**
     * Private constructor. Initializes the iframe with the provided PDF file and options.
     * @param {string} filePath - Path or URL of the PDF file to display.
     * @param {Object} [options] - Optional settings for the viewer.
     * @param {string} [options.width='100%'] - Width of the iframe.
     * @param {string} [options.height='100%'] - Height of the iframe.
     * @private
     */
    private constructor();
    /**
     * Gets the singleton instance of PdfWebViewer.
     * @param {string} filePath - Path or URL of the PDF file to display.
     * @param {Object} [options] - Optional settings for the viewer.
     * @param {string} [options.width='100%'] - Width of the iframe.
     * @param {string} [options.height='100%'] - Height of the iframe.
     * @returns {PdfWebViewer} Instance of PdfWebViewer.
     */
    static getInstance(filePath: string, options?: {
        width?: string;
        height?: string;
    }): PdfWebViewer;
    /**
     * Mounts (inserts) the PDF viewer iframe inside a target HTML element.
     *
     * @param {HTMLElement} targetElement - The HTML element where the PDF viewer will be inserted.
     * @throws {Error} If the target element is not valid.
     */
    mount(targetElement: HTMLElement): void;
    /**
     * Changes the PDF file displayed in the viewer.
     *
     * @param {string} filePath - New path or URL of the PDF file. Must end with .pdf
     * @throws {Error} If a valid path is not provided or the file is not a PDF.
     */
    setFile(filePath: string): void;
}
/**
 * Exported instance of the PDF viewer.
 * @type {typeof PdfWebViewer.getInstance}
 */
declare const create: typeof PdfWebViewer.getInstance;
export { create };
