import React from "react";
import { LinkProps } from "../../../link";
import { IconType } from "../../../icon";
interface StatusUploadingProps {
    /** the status of the upload */
    status: "uploading";
    /** a number from 0-100 giving the current upload progress as a percentage. Only used for the `uploading` status.
     * If the progress prop is not specified in the `uploading` status, a loading animation will be shown instead
     * (or text equivalent for users with a reduced-motion operating system preference).
     */
    progress?: number;
}
interface StatusDoneProps extends LinkProps {
    /** the status of the upload */
    status: "completed" | "previously";
    /** the URL opened by the file link. Must be provided for only the `completed` and `previously` statuses. */
    href: string;
}
interface StatusErrorProps {
    /** the status of the upload */
    status: "error";
}
interface MandatoryStatusProps {
    /** the name of the file */
    filename: string;
    /** a function to be executed when the user clicks the appropriate action button (Clear/Delete File/Cancel Upload)  */
    onAction: () => void;
    /** The status message. Used to display the current upload progress, including error messages where appropriate. Not used for the `previously` status. */
    message?: string;
    /** The icon to use for the file during or after upload */
    iconType?: IconType;
}
export type FileUploadStatusProps = MandatoryStatusProps & (StatusUploadingProps | StatusErrorProps | StatusDoneProps);
export declare const FileUploadStatus: ({ status, filename, message, onAction, iconType, ...statusProps }: FileUploadStatusProps) => React.JSX.Element;
export default FileUploadStatus;
