import { type RefObject } from 'react';
export type PdfViewerOnLoadSuccessProps = {
    /**
     * Количество страниц в файле
     */
    numPages: number;
    /**
     * Метод получения информации о странице
     */
    getPage: (page: number) => Promise<{
        view: number[];
        rotate: number;
    }>;
};
export type PdfViewerProps = {
    /**
     * Файл для отображения
     */
    file: Blob | string | null | undefined;
    options?: {
        /**
         * Флаг следует ли включать cookie в запрос. По-умолчанию `true`.
         */
        withCredentials?: boolean | undefined;
    };
    /**
     * Будет вызван после успешной загрузки файла
     */
    onLoadSuccess?: (pdf: PdfViewerOnLoadSuccessProps) => void;
    /**
     * Будет вызван при ошибке загрузки файла
     */
    onLoadError?: (error: Error) => void;
    /**
     * Будет вызван при прокрутке к странице
     */
    onChangePage?: (pageNumber: number) => void;
    /**
     * Реф на контейнер, в котором должен быть скролл
     */
    scrollRef: RefObject<HTMLElement | null>;
    /**
     * Реф для пагинации
     */
    paginationRef?: RefObject<HTMLDivElement | null>;
    /**
     * Функция, позволяющая задавать параметры обработки ошибки
     */
    getErrorState?: (error: Error) => PdfViewerErrorData;
    /**
     * Скрытие персональных данных от инструментов мониторинга
     */
    isHidePersonalData?: boolean;
    /**
     * Упрощенный режим просмотра документа. Не отображает текст аннотаций и номера страниц
     */
    isViewerLite?: boolean;
    /**
     * Отображение страниц в полную высоту
     */
    isFullHeight?: boolean;
    /**
     * Центрирование содержимого контейнера
     */
    isCentered?: boolean;
    /**
     * Диапазон индексов страниц, которые необходимо отобразить
     */
    renderPageRange?: {
        start?: number;
        end?: number;
    };
    /**
     * Флаг отвечает за включение/отключения функций масштабирования в компоненте
     */
    enabledZoom?: boolean;
};
export type PdfViewerErrorData = {
    /**
     * Заголовок ошибки
     */
    message: string;
    /**
     * Элементы кнопок для дальнейших действий. При передаче null кнопки не будет
     */
    actions?: boolean | null;
    /**
     * Кастомное изображение ошибки
     */
    errorImgSrc?: string;
    /**
     * Список ошибок для отображения
     */
    errorList?: string[];
    /**
     * Функция обработки нажатия на кнопку "Повторить отправку"
     */
    onRetry?: () => void;
};
