import { HTMLAttributes, ReactNode, SyntheticEvent } from "react";
import { FilesValidator } from "./validators";
import "./FileDropZone.css";
export declare type FilesAcceptedEventHandler = (files: ReadonlyArray, event: SyntheticEvent) => void;
export declare type FilesRejectedEventHandler = (errors: ReadonlyArray, event: SyntheticEvent) => void;
/**
* Removed deprecated props
*
* - onDrop
* - onFileTypeError
* - showUploadButton
*/
export interface FileDropZoneProps extends HTMLAttributes {
/**
* `accept` attribute for HTML .
*
* A comma separated list of file types the user can pick from the file input dialog box.
*/
accept?: string;
/**
* The text content of the drop area component.
*/
children?: ReactNode;
/**
* Additional usage information.
*/
description?: string;
/**
* If `true`, the file drop zone will be disabled.
*/
disabled?: boolean;
/**
* This prop is used to help implement the accessibility logic.
* If you don't provide this prop. It falls back to a randomly generated id.
*/
id?: string;
/**
* Callback on successful file drop or selection.
*/
onFilesAccepted?: FilesAcceptedEventHandler;
/**
* @see `validate` prop
* Callback on drop or input in case of an error. A list of errors will be provided as input.
*/
onFilesRejected?: FilesRejectedEventHandler;
/**
* A list of custom validation functions. Every function is provided with the entire file list as input
* thus can perform validations on all files. Each function needs to return one or more errors in case of
* a failed validation, or `undefined` in case of a successful one.
*
* All errors are collected in the end and returned as an array to `onFilesRejected`.
*/
validate?: ReadonlyArray>;
}
export declare const FileDropZone: import("react").ForwardRefExoticComponent>;