import { TypographyProps } from '@mui/material';
import * as React from 'react';
export type FileUploadProps = {
    /**
     * Must match a key from initialValues in Formik.
     * @required
     */
    name: string;
    /**
     * File extensions that FileUpload will accept. Does NOT restrict files selected via drag & drop.
     *
     * IMPORTANT: Do not rely on this prop as a validator. The server should be validating all files to ensure they are the correct type. For more information, see [W3Schools HTML Input accept attribute](https://www.w3schools.com/TAGS/att_input_accept.asp).
     */
    fileType?: string | string[];
    /**
     * If true, the user will be able to upload multiple files.
     * @default false
     */
    multiple?: boolean;
    /**
     * Choose whether to have a button or drag-and-drop. Drag-and-drop is default when `multiple` is true.
     */
    variant?: 'button' | 'drag-and-drop';
    /**
     * If `true`, the component becomes readonly. It will only be visible if a file is present.
     * @default false
     */
    readOnly?: boolean;
    /**
     * [Drag & Drop] Subtitle
     *
     * By default, it will display the accepted file extensions, if specified. Blank otherwise. Ex. "Allowed file extensions: .png"
     */
    subtitle?: string;
    /**
     * Callback that is called when the user attempts to select a file that is already selected. Use this to handle validation and/or UI warnings/errors regarding duplicate files.
     * @param duplicateFiles List of files that was already selected
     */
    duplicateFilesCallback?: (duplicateFiles: File[]) => void;
    /**
     * Callback that is called when the user attempts to select a file that is not included in `fileType`. Must have `fileType` defined. Use this to handle validation and/or UI warnings/errors regarding files with prohibitted file extensions.
     * @param incorrectFileTypes List of files that have prohibitted file types
     */
    incorrectFileTypesCallback?: (incorrectFileTypes: File[]) => void;
    /**
     * Props from MUI-Bueno's Typography component.
     * Used to customize the label when the static label option is selected or the field is readOnly.
     */
    staticLabelProps?: TypographyProps;
};
/**
 * Allows the user to select file(s) from their computer.
 *
 * Based on [Material UI's File Upload](https://mui.com/material-ui/react-button/#file-upload). Alternatively, a drag-and-drop option is also available.
 *
 * This component automatically ignores duplicate files to avoid render issues (primarily in regards to duplicate React keys).
 *
 * This component automatically ignores files that have incorrect file extensions when `fileType` is defined. __IMPORTANT: Do not rely on this `fileType` as a validator.__ The server should be validating all files to ensure they are the correct type. For more information, see [W3Schools HTML Input accept attribute](https://www.w3schools.com/TAGS/att_input_accept.asp).
 *
 * __NOTE: Input only.__ Does not display the file(s) chosen by the user. You will need to implement this yourself and/or use `FileList`. View the Storybook stories for `FileUpload` for more information.
 */
export declare const FileUpload: React.FC<FileUploadProps>;
