import { FormLabelProps } from '../../module';
export declare enum MIMETypes {
    Images = "image/jpeg,image/png,image/gif,image/svg+xml",
    Audio = "audio/mpeg,audio/wav",
    Videos = "video/mp4,video/x-msvideo,video/quicktime,video/x-ms-wmv,video/x-matroska,video/x-flv,video/webm,video/mpeg,video/3gpp,video/3gpp2,video/ogg,video/x-m4v",
    Media = "image/jpeg,image/png,image/gif,image/svg+xml,audio/mpeg,audio/wav,video/mp4,video/x-msvideo,video/quicktime,video/x-ms-wmv,video/x-matroska,video/x-flv,video/webm,video/mpeg,video/3gpp,video/3gpp2,video/ogg,video/x-m4v",
    Documents = "application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation",
    Text = "text/plain",
    Archives = "application/zip,application/x-rar-compressed",
    Spreadsheets = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel,text/csv,application/csv"
}
type FileUploaderBaseProps = {
    /** Function to save uploaded files */
    uploadCallout: (files: File[]) => void;
    /** Allow FileUploader to receive multiple files */
    acceptMultiple?: boolean;
    /** Files to upload */
    files?: File[];
    /** Optionally restrict the types of files that are accepted. If your required type is not specified in the enum MIMETypes, you can add in the necessary strings to the array. */
    acceptedFileTypes?: Array<MIMETypes | string>;
    /** Optionally make the component disabled */
    disabled?: boolean;
};
type WithFormLabelProps = FileUploaderBaseProps & {
    /** FormLabel component above the upload field */
    formLabelProps: Omit<FormLabelProps, 'rightLabel'>;
    /** Optional download link callout */
    downloadCallout?: () => void;
};
type WithoutFormLabelProps = FileUploaderBaseProps & {
    formLabelProps?: never;
    downloadCallout?: never;
};
export type FileUploaderProps = WithFormLabelProps | WithoutFormLabelProps;
declare const FileUploader: ({ uploadCallout, files, formLabelProps, downloadCallout, acceptedFileTypes, disabled, acceptMultiple, }: FileUploaderProps) => JSX.Element;
export default FileUploader;
