import { ReactNode } from 'react';
import { ERROR_TYPES } from './file-uploader-constants';
import { DropdownMenuOption } from '../dropdown-menu';
import { FileType, ProgressBarFile } from './file-uploader-types';
import './file-uploader.less';
export type FileUploaderProps = {
    serviceHandler?: (serviceHandler: FileType) => Promise<FileType>;
    children?: ReactNode | ((obj: unknown) => ReactNode);
    /**
     * When the file upload is success it will call this handler
     */
    onFileUploadSuccess?: (data: any) => void;
    onFileUploadFailure?: (data: any) => void;
    acceptedFilesList?: Array<string>;
    isMultiple?: boolean;
    isFolderUpload?: boolean;
    initialFiles?: Array<FileType>;
    onFileUpload?: (data: any) => void;
    onFileDelete?: (data: any) => void;
    onFileCancel?: (data: any) => void;
    isExpandedSingleFileUpload?: boolean;
    showAcceptedFilesList?: boolean;
    dragAndDropContainerClassName?: string;
    inputTestId?: string;
    dropdownMenuOptions?: Array<DropdownMenuOption>;
    progressBarFiles?: Array<ProgressBarFile>;
    isDisabled?: boolean;
    disableDragNDrop?: boolean;
    showFileList?: boolean;
    placeholderLabel: string;
    controlsContent?: ReactNode;
    isCancelAllowed?: boolean;
    errorMessages?: {
        [ERROR_TYPES.DEFAULT_UPLOAD_ERROR]?: string;
        [ERROR_TYPES.FILE_TYPE_IS_NOT_ALLOWED]?: string;
        [ERROR_TYPES.SINGLE_ONLY]?: string;
        [ERROR_TYPES.IS_REQUIRED]?: string;
    };
    deleteLabelText: string;
    cancelLabelText: string;
    chooseFileLabelText: string;
    acceptedFormatsLabelText: string;
    onFileDropdownClose?: () => void;
    onFileDropdownOpen?: (openedWithKeyboard: boolean) => void;
    isRequired?: boolean;
    isTouched?: boolean;
    label?: string;
    helperText?: string;
};
/** A unified file uploader component.
 * @midnight-gray-supported
 * @alpine-light-supported
 * */
export declare function FileUploader({ serviceHandler, children, onFileDropdownClose, onFileDropdownOpen, onFileUploadSuccess, onFileUploadFailure, acceptedFilesList, isMultiple, isFolderUpload, initialFiles, onFileUpload, onFileDelete, onFileCancel, isExpandedSingleFileUpload, showAcceptedFilesList, dragAndDropContainerClassName, inputTestId, dropdownMenuOptions, progressBarFiles, isDisabled, disableDragNDrop, showFileList, placeholderLabel: placeholderLabelParams, controlsContent, isCancelAllowed, errorMessages: errorMessagesParams, deleteLabelText: deleteLabelTextParams, cancelLabelText: cancelLabelTextParams, chooseFileLabelText: chooseFileLabelTextParams, acceptedFormatsLabelText: acceptedFormatsLabelTextParams, isRequired, isTouched, label, helperText, }: FileUploaderProps): import("react/jsx-runtime").JSX.Element;
