import { default as React } from 'react'; import { FileRejection, UploadFile, UploadedFileWithStatus, UploadState } from './types'; export declare const useUploadState: () => { internalDragState: { isDragActive: boolean; isDragAccept: boolean; isDragReject: boolean; }; setInternalDragState: React.Dispatch>; setDragCounter: React.Dispatch>; }; export declare const getVisualState: (disabled: boolean, isDragReject: boolean, isDragAccept: boolean, isDragActive: boolean) => string; export declare const validateFile: (accept: string[], maxSize?: number, validator?: (file: File) => FileRejection["errors"][0] | null) => (file: File) => FileRejection["errors"]; export declare const processFiles: (disabled: boolean, validateFileFn: (file: File) => FileRejection["errors"], onDrop?: (acceptedFiles: File[], rejectedFiles: FileRejection[]) => void, onDropAccepted?: (files: File[]) => void, onDropRejected?: (rejections: FileRejection[]) => void) => (files: FileList) => void; export declare const updateDragState: (controlledIsDragActive?: boolean, validateFileFn?: (file: File) => FileRejection["errors"], setInternalDragState?: (state: { isDragActive: boolean; isDragAccept: boolean; isDragReject: boolean; }) => void) => (isDragActive: boolean, files?: File[]) => void; export declare const createDragHandlers: (disabled: boolean, setDragCounter: (fn: (prev: number) => number) => void, updateDragStateFn: (isDragActive: boolean, files?: File[]) => void, processFilesFn: (files: FileList) => void) => { handleDragEnter: (e: React.DragEvent) => void; handleDragLeave: (e: React.DragEvent) => void; handleDragOver: (e: React.DragEvent) => void; handleDrop: (e: React.DragEvent) => void; }; export declare const createClickHandler: (disabled: boolean, fileInputRef: React.RefObject) => () => void; export declare const createFileInputChangeHandler: (processFilesFn: (files: FileList) => void) => (e: React.ChangeEvent) => void; export declare const getUploadContent: (uploadingFiles: UploadFile[], uploadedFiles: { id: string; file: File; status: "success" | "error"; error?: string; }[], failedFiles: { id: string; file: File; status: "success" | "error"; error?: string; }[], state: UploadState, multiple?: boolean) => { hasUploadingFiles: boolean; uploadingFile: UploadFile | undefined; successfulFiles: { id: string; file: File; status: "success" | "error"; error?: string; }[]; errorFiles: { id: string; file: File; status: "success" | "error"; error?: string; }[]; hasSuccessfulFiles: boolean; hasErrorFiles: boolean; isSuccess: boolean; isError: boolean; multiple: boolean; }; export declare const getMainTitle: (isDragActive: boolean, isDragAccept: boolean) => string; export declare const getUploadStateTitle: (state: UploadState, multiple: boolean, hasSuccessfulFiles: boolean, hasErrorFiles: boolean, fileName?: string) => string; export declare const getUploadStateDescription: (state: UploadState, multiple: boolean, successfulFiles: { id: string; file: File; status: string; }[], errorFiles: { id: string; file: File; status: string; }[], userDescription?: string, fileName?: string) => string; export declare const getVisualUploadState: (disabled: boolean, isDragReject: boolean, isDragAccept: boolean, isDragActive: boolean, state: UploadState) => string; export declare const truncateFileList: (files: UploadedFileWithStatus[]) => { displayFiles: UploadedFileWithStatus[]; truncatedCount: number; }; export declare const createEnhancedValidator: (accept: string[], maxSize?: number, validator?: (file: File) => FileRejection["errors"][0] | null) => (file: File) => FileRejection["errors"]; export declare const createEnhancedProcessFiles: (uploadingFiles: UploadFile[], uploadedFiles: UploadedFileWithStatus[], failedFiles: UploadedFileWithStatus[]) => (files: File[]) => { unique: File[]; duplicates: File[]; }; export declare const generateFileId: () => string; export declare const createFileKey: (file: File) => string; export declare const filterDuplicateFiles: (newFiles: File[], existingFiles: { file: File; }[]) => { unique: File[]; duplicates: File[]; }; export declare const createDuplicateRejections: (files: File[]) => FileRejection[]; export declare const simulateFileUpload: (uploadFile: UploadFile, onProgressUpdate: (id: string, progress: number) => void, progressInterval?: number) => (() => void); export declare const createEnhancedProcessFilesFn: (disabled: boolean, validateFileFn: (file: File) => FileRejection["errors"], checkDuplicatesFn: (files: File[]) => { unique: File[]; duplicates: File[]; }, maxFiles?: number, onDrop?: (acceptedFiles: File[], rejectedFiles: FileRejection[]) => void, onDropAccepted?: (files: File[]) => void, onDropRejected?: (rejections: FileRejection[]) => void) => (files: FileList) => void; export declare const createUploadManager: () => { startUpload: (uploadFile: UploadFile, onProgress: (id: string, progress: number) => void, onComplete: (id: string) => void, progressInterval?: number) => (() => void); cancelUpload: (uploadId: string) => void; cancelAllUploads: () => void; hasActiveUploads: () => boolean; }; export declare const createComplexDropHandler: (multiple: boolean, maxFiles: number | undefined, disabled: boolean, uploadingFiles: UploadFile[], uploadedFiles: UploadedFileWithStatus[], failedFiles: UploadedFileWithStatus[], setInternalState: (state: UploadState) => void, setInternalUploadingFiles: React.Dispatch>, setInternalUploadedFiles: React.Dispatch>, setInternalFailedFiles: React.Dispatch>, uploadManager: ReturnType, progressSpeed?: number) => (acceptedFiles: File[], rejectedFiles: FileRejection[]) => void; export declare const createFileRemovalHandler: (setInternalUploadedFiles: React.Dispatch>, setInternalFailedFiles: React.Dispatch>, setInternalState: (state: UploadState) => void) => (fileId: string) => void; export declare const createFileReplacementHandler: (setInternalState: (state: UploadState) => void, setInternalUploadedFiles: React.Dispatch>, setInternalFailedFiles: React.Dispatch>) => () => void; export declare const getMbfromKb: (bytes: number) => number;