import { Ref } from "vue";
import type { OnProgressParameters } from "pdfjs-dist/types/src/display/api";
import type { Point, Size, pdfPageInfo, pdfViewerOptions } from "../types/pdf";
export declare function usePdfViewer(container: Ref<HTMLElement | undefined>, options: pdfViewerOptions): {
    totalPage: Ref<number, number>;
    pageInfo: Ref<{
        id: string;
        scale: number;
        rotation: number;
        page: number;
        viewport: {
            viewBox: number[];
            userUnit: number;
            scale: number;
            rotation: number;
            offsetX: number;
            offsetY: number;
            transform: number[];
            width: number;
            height: number;
            readonly rawDims: Object;
            clone: ({ scale, rotation, offsetX, offsetY, dontFlip, }?: import("pdfjs-dist/types/src/display/display_utils").PageViewportCloneParameters) => import("pdfjs-dist/types/src/display/display_utils").PageViewport;
            convertToViewportPoint: (x: number, y: number) => any[];
            convertToViewportRectangle: (rect: any[]) => any[];
            convertToPdfPoint: (x: number, y: number) => any[];
        };
        pos: {
            x: number;
            y: number;
        };
        bounds: {
            inner: {
                top: number;
                bottom: number;
                left: number;
                right: number;
            };
            outer: {
                top: number;
                bottom: number;
                left: number;
                right: number;
            };
        };
    }[], pdfPageInfo[] | {
        id: string;
        scale: number;
        rotation: number;
        page: number;
        viewport: {
            viewBox: number[];
            userUnit: number;
            scale: number;
            rotation: number;
            offsetX: number;
            offsetY: number;
            transform: number[];
            width: number;
            height: number;
            readonly rawDims: Object;
            clone: ({ scale, rotation, offsetX, offsetY, dontFlip, }?: import("pdfjs-dist/types/src/display/display_utils").PageViewportCloneParameters) => import("pdfjs-dist/types/src/display/display_utils").PageViewport;
            convertToViewportPoint: (x: number, y: number) => any[];
            convertToViewportRectangle: (rect: any[]) => any[];
            convertToPdfPoint: (x: number, y: number) => any[];
        };
        pos: {
            x: number;
            y: number;
        };
        bounds: {
            inner: {
                top: number;
                bottom: number;
                left: number;
                right: number;
            };
            outer: {
                top: number;
                bottom: number;
                left: number;
                right: number;
            };
        };
    }[]>;
    containerBounds: Ref<{
        width: number;
        height: number;
    }, Size | {
        width: number;
        height: number;
    }>;
    progress: Ref<OnProgressParameters | undefined, OnProgressParameters | undefined>;
    render: Ref<boolean, boolean>;
    currentPage: Ref<number, number>;
    visiblePages: Ref<{
        id: string;
        scale: number;
        rotation: number;
        page: number;
        viewport: {
            viewBox: number[];
            userUnit: number;
            scale: number;
            rotation: number;
            offsetX: number;
            offsetY: number;
            transform: number[];
            width: number;
            height: number;
            readonly rawDims: Object;
            clone: ({ scale, rotation, offsetX, offsetY, dontFlip, }?: import("pdfjs-dist/types/src/display/display_utils").PageViewportCloneParameters) => import("pdfjs-dist/types/src/display/display_utils").PageViewport;
            convertToViewportPoint: (x: number, y: number) => any[];
            convertToViewportRectangle: (rect: any[]) => any[];
            convertToPdfPoint: (x: number, y: number) => any[];
        };
        pos: {
            x: number;
            y: number;
        };
        bounds: {
            inner: {
                top: number;
                bottom: number;
                left: number;
                right: number;
            };
            outer: {
                top: number;
                bottom: number;
                left: number;
                right: number;
            };
        };
    }[], pdfPageInfo[] | {
        id: string;
        scale: number;
        rotation: number;
        page: number;
        viewport: {
            viewBox: number[];
            userUnit: number;
            scale: number;
            rotation: number;
            offsetX: number;
            offsetY: number;
            transform: number[];
            width: number;
            height: number;
            readonly rawDims: Object;
            clone: ({ scale, rotation, offsetX, offsetY, dontFlip, }?: import("pdfjs-dist/types/src/display/display_utils").PageViewportCloneParameters) => import("pdfjs-dist/types/src/display/display_utils").PageViewport;
            convertToViewportPoint: (x: number, y: number) => any[];
            convertToViewportRectangle: (rect: any[]) => any[];
            convertToPdfPoint: (x: number, y: number) => any[];
        };
        pos: {
            x: number;
            y: number;
        };
        bounds: {
            inner: {
                top: number;
                bottom: number;
                left: number;
                right: number;
            };
            outer: {
                top: number;
                bottom: number;
                left: number;
                right: number;
            };
        };
    }[]>;
    scale: import("vue").ComputedRef<number>;
    rotation: import("vue").ComputedRef<number>;
    viewMode: import("vue").ComputedRef<string>;
    refresh: () => Promise<void>;
    nextPage: () => void;
    prevPage: () => void;
    changePage: (page: number, offset?: Point | null) => void;
    fitWidth: () => number;
    fitHeight: () => number;
    fitPage: (mode?: "width" | "height" | "fit") => number;
};
