import { ReactNode } from 'react';
import { FileRejection } from 'react-dropzone';
type FilePickerRenderProps = {
    isDragActive: boolean;
};
export type FilePickerProps = {
    /**
     * Defines the file picker display mode.
     *
     * Possible values are `'button'` for a single button, `'dropzone'` for a custom dropzone passed as child function,
     * or `'full'` for showing both.
     *
     * @default 'button'
     */
    displayMode?: 'button' | 'dropzone' | 'full';
    /**
     * Indicating if multiple files may be selected.
     *
     * @default true
     */
    multiple?: boolean;
    /**
     * Text to display on Button if displayMode is set to "button".
     *
     * @default 'Select files'
     */
    label?: string | ReactNode;
    /**
     * Maximum file size in byte. 5 MB = 5,242,880 byte
     */
    maxSize?: number;
    /**
     * Function called after one or multiple files have been picked.
     */
    onPick?: (files: File[], rejectedFiles: FileRejection[]) => void;
    /**
     * Additional classes for the select button.
     */
    className?: string;
    /**
     * Flag to set the dropzone wrapper element to 100% height.
     *
     * This comes in handy, when the dropzone should have 100 % height so it can grow.
     *
     * @default false
     */
    fullHeight?: boolean;
    /**
     * Object list of accepted Mime Types as keys and file extensions array as value.
     */
    accept?: {
        [mimeType: string]: string[];
    };
    /**
     * Pass a custom dropzone element as function receiving some render props.
     */
    children?: ({ isDragActive }: FilePickerRenderProps) => React.ReactElement;
};
declare const FilePicker: {
    (props: FilePickerProps): import("react/jsx-runtime").JSX.Element;
    DISPLAY_MODE_BUTTON: "button";
    DISPLAY_MODE_DROPZONE: "dropzone";
    DISPLAY_MODE_FULL: "full";
};
export default FilePicker;
