import { ReactNode } from 'react';
import { DropdownMenuOption } from '../dropdown-menu';
import './file-upload.less';
import { FileType } from '../file-uploader';
export type FileUploadProps = {
    label?: ReactNode;
    /**
     * Service where the file will be uploaded accepts file as a param
     */
    onFileUploadSuccess?: (data: any) => void;
    serviceHandler?: (data: any) => Promise<File>;
    acceptedFiles?: Array<string>;
    /**
     * When the file upload is success it will call this handler
     */
    onFileUploadFailure?: (data: any) => void;
    /**
     * Function to check if uploaded file is valid or not return boolean
     */
    isFileValid?: (file: File | FileType, acceptedFiles: Array<string>) => boolean;
    initialFile?: {
        name: string;
    } | null;
    inputTestId?: string;
    clearTestId?: string;
    isLoading?: boolean;
    /**
     * Current percentage value of file upload, if provided, will add progress bar with current upload percentaged
     */
    uploadPercent: number;
    isDisabled?: boolean;
    /**
     * Disables drag-and-drop function for input if set
     */
    disableDragNDrop?: boolean;
    /**
     * If set activates a custom source selection mode, sourceOptions are passed to DropdownMenu component
     */
    sourceOptions?: Array<DropdownMenuOption>;
    /**
     * To export ability to change FileInput's selected state, children are renderer with 'handleEntitySelected' method provided
     */
    children?: ReactNode | ((obj: unknown) => ReactNode);
    triggerTestId?: string;
    loadingIconTestId?: string;
    loadingIconId?: string;
    showSupportedFilesLabel?: boolean;
    displayValidationErrorsLimit?: number;
    helperText?: string;
    disableLocalFileUploading?: boolean;
    tooltipForLocalFileOption?: string;
    className?: string;
    fileNameTestId?: string;
    /**
     * Sets custom placeholder message for input
     */
    placeholderLabel?: string;
    /**
     * Label text for upload progress
     */
    uploadProgressLabel?: string;
    failedUploadMessage?: string;
    invalidFileTypeMessage?: string;
    invalidFileMessage?: string;
    acceptedFilesMessage?: string;
    sourceOptionsTriggerText?: string;
    clearSelectionText?: string;
    localFileOptionText?: ReactNode;
    browseText?: string;
    restErrorsAmountMessage?: (restErrorsAmount: number) => string;
};
/** File upload action indicator.
 * [CAPITALIZATION] Use sentence case for input label, no colon
 * [CAPITALIZATION] Helper text usually a complete sentence with a period. Don't have mixed format in one text block. Can be list item with colon (as in "Accepted formats" example), no punctuation at end.
 */
declare function FileUpload({ label, onFileUploadSuccess, serviceHandler, acceptedFiles, onFileUploadFailure, isFileValid, initialFile, inputTestId, clearTestId, isLoading, uploadPercent, isDisabled, disableDragNDrop, sourceOptions, children, triggerTestId, loadingIconTestId, loadingIconId, showSupportedFilesLabel, displayValidationErrorsLimit, helperText, disableLocalFileUploading, tooltipForLocalFileOption, className, fileNameTestId, placeholderLabel: placeholderLabelParams, uploadProgressLabel: uploadProgressLabelParams, failedUploadMessage: failedUploadMessageParams, invalidFileTypeMessage: invalidFileTypeMessageParams, invalidFileMessage: invalidFileMessageParams, acceptedFilesMessage: acceptedFilesMessageParams, sourceOptionsTriggerText: sourceOptionsTriggerTextParams, clearSelectionText: clearSelectionTextParams, localFileOptionText: localFileOptionTextParams, browseText: browseTextParams, restErrorsAmountMessage: restErrorsAmountMessageParams, }: FileUploadProps): import("react/jsx-runtime").JSX.Element;
export default FileUpload;
