import type { BaseReturn, RenderOptions } from '@/components/preview/types';
export interface Viewport {
    width: number;
    height: number;
    viewBox: Array<number>;
}
export interface RenderContext {
    canvasContext: CanvasRenderingContext2D | null;
    transform: Array<number>;
    viewport: Viewport;
}
export interface PDFPageProxy {
    pageNumber: number;
    getViewport: ({ scale }: {
        scale: number;
    }) => Viewport;
    render: (options: RenderContext) => void;
}
export interface PDFDocumentProxy {
    numPages: number;
    getPage: (x: number) => Promise<PDFPageProxy>;
}
declare global {
    interface Window {
        pdfjsLib: {
            GlobalWorkerOptions: {
                workerSrc: string;
            };
            getDocument: (x: string | ArrayBuffer) => {
                promise: Promise<PDFDocumentProxy>;
            };
        };
    }
}
export declare class PdfPreview {
    private pdfDoc;
    pageNumber: number;
    total: number;
    dom: HTMLElement;
    pdf: string | ArrayBuffer;
    onError: ((msg: BaseReturn) => void) | undefined;
    onLoad: ((msg: BaseReturn) => void) | undefined;
    constructor(pdf: string | ArrayBuffer, options: RenderOptions);
    private getPdfPage;
    pdfPreview: () => Promise<BaseReturn>;
    showTotalPage: () => Promise<void>;
    changePage: (num: number) => number;
    prevPage: () => Promise<number>;
    nextPage: () => Promise<number>;
}
export declare const renderPdf: (file: File, options: RenderOptions) => Promise<void>;
