import type { FileId, UploadedFileData, UploadFile } from '../../types';
type UseUploadFilesParams = {
    /**
     * Список файлов, которые приходят как value в компонент
     */
    files: UploadFile[];
    /**
     * Флаг множественной загрузки файлов
     */
    isMultiple?: boolean;
    /**
     * Функция, вызываемая при изменении списка файлов
     */
    onChange: ((value: UploadFile[]) => void) | ((value: UploadFile | null) => void);
    /**
     * Функция загрузки файлов на сервер
     * @param fileId - Идентификатор файла
     * @param file - Объект файла для загрузки
     * @param options - Опции для управления загрузкой
     * @param options.signal - AbortSignal для отмены загрузки файла
     * @param options.setProgress - Функция для обновления прогресса загрузки
     * @returns Promise с данными загруженного файла
     */
    onUploadFile?: (fileId: FileId, file: File, options: {
        signal: AbortSignal;
        setProgress: (progressFileId: FileId, progressEvent: ProgressEvent) => void;
    }) => Promise<UploadedFileData>;
    /**
     * Функция, позволяющая задавать кастомный текст ошибки
     */
    getErrorMessage?: (fileId: FileId, error: Error) => string;
};
export declare const useUploadFiles: ({ isMultiple, files: externalFiles, onChange, onUploadFile, getErrorMessage, }: UseUploadFilesParams) => {
    enqueueFiles: (files: UploadFile[]) => void;
    refetchFile: (fileToSend: UploadFile) => void;
    selfFiles: Record<string, UploadFile & import("../../types").SpecificSelfFileParams>;
    setErrorStatusFile: (fileId: string, errorMsg: string) => void;
};
export {};
