import * as React from "react";
/**
 * FileUpload component allows drag & drop or click-to-upload files with custom handling
 * and displays upload progress and errors.
 */
export interface IFileUploadProps extends React.HTMLAttributes<HTMLDivElement> {
    /** Array of accepted file extensions */
    acceptedExtensions: string[];
    /** Custom message displayed in the drop area */
    dropAreaCustomMessage?: React.ReactNode;
    /** State tracking the upload progress and error messages for each file */
    uploadState: Record<string, {
        error: boolean;
        helperText?: React.ReactNode;
        progress: number;
        uploading: boolean;
    }> | null;
    /** Determines if multiple file uploads are allowed */
    multiple?: boolean;
    /** Disables the upload functionality */
    disabled?: boolean;
    /** Additional informational text to display about file requirements or upload instructions */
    infoText?: React.ReactNode;
    /** Maximum allowed file size in bytes */
    maxFileSize?: number;
    /** Function to retry uploading files that failed */
    retryFailedUpload?: () => void;
    /** Function to reset the upload state */
    resetUploadState: () => void;
    /** Function triggered after file validation to handle the upload logic */
    handleUpload: (file: File | File[]) => void;
}
export declare const FileUpload: React.ForwardRefExoticComponent<IFileUploadProps & React.RefAttributes<HTMLDivElement>>;
