import { ButtonProps } from "@mui/material/Button";
import React from "react";
/**
 * File upload button props
 */
export type FileUploadButtonProps = ButtonProps<"label"> & {
    /**
     * Drop files label
     */
    dropFilesLabel?: React.ReactNode;
    /**
     * Max files allowed
     */
    maxFiles?: number;
    /**
     * Max file size
     */
    maxFileSize?: number;
    /**
     * Input field attributes
     */
    inputProps?: Omit<React.InputHTMLAttributes<HTMLInputElement>, "type" | "hidden" | "multiple">;
    /**
     * File invalid handler
     * @param values [expected, actual]
     * @param file File
     */
    onFileInvalid?: (values: [number, number], file?: File) => void;
    /**
     * Upload files callback
     * @param files Files
     */
    onUploadFiles: (files: FileList) => void;
};
/**
 * File upload button
 * @param props Props
 * @returns Component
 */
export declare function FileUploadButton(props: FileUploadButtonProps): import("react/jsx-runtime").JSX.Element;
