/// <reference types="react" />
import type { FileId, SelfFileApi } from '../../../types';
export type UseLogicParams = {
    /**
     * Идентификатор файла
     */
    fileId: FileId;
    /**
     * Объект файла
     */
    file?: File;
    /**
     * Название файла
     */
    fileName: string;
    /**
     * URL файла, если он уже загружен
     */
    fileUrl?: string;
    /**
     * Флаг состояния загрузки файла
     */
    isLoading?: boolean;
    /**
     * Флаг состояния ошибки при загрузке файла
     */
    isUploadError?: boolean;
    /**
     * Флаг состояния ошибки (загрузки или ограничения)
     */
    isError?: boolean;
    /**
     * Функция для генерации ссылки на скачивание файла
     */
    generateDownloadLink?: (fileId: FileId, file?: File, fileUrl?: string) => string;
    /**
     * Обработчик просмотра файла
     */
    onView?: (fileId: FileId, file?: File, fileUrl?: string) => void;
    /**
     * Функция обработки нажатия на кнопку "Повторить отправку"
     */
    onRetry?: (fileId: FileId, file: File) => void;
    /**
     * Функция, вызываемая при удалении файла
     */
    onDelete: (fileId: FileId) => void;
    /**
     * Флаг загрузки при удалении файла
     */
    isDeletingFile?: boolean;
    abortController?: AbortController;
} & Pick<SelfFileApi, 'selfFiles' | 'setErrorStatusFile'>;
export declare const useLogic: ({ fileId, file, fileUrl, isUploadError, generateDownloadLink, onDelete, onRetry, onView, setErrorStatusFile, selfFiles, isLoading, isError, isDeletingFile, fileName, }: UseLogicParams) => {
    downloadButtonProps: {
        href: string;
    };
    viewButtonProps: {
        isShowViewButton: boolean;
        onClick: () => void | undefined;
    } | {
        component: import("react").ElementType;
        href: string;
        target: string;
        rel: string;
        isShowViewButton: boolean;
        onClick?: undefined;
    };
    isVisibleAbortButton: boolean;
    isVisibleRetryButton: boolean;
    handleAbort: () => void;
    handleDelete: () => void;
    handleRetry: () => void | undefined;
    isLoading: boolean | undefined;
    isError: boolean | undefined;
    isDeletingFile: boolean | undefined;
    fileName: string;
};
