import { default as React } from 'react';
import { Accept, DropEvent, DropzoneProps, DropzoneState } from 'react-dropzone';
import { ForceFileType } from '../Files';
import { CreateWuiProps } from '../System';
import { CreateEvent } from '../../utils/create-event';
export type FileDropChildren = {
    disabled?: boolean;
    error?: string;
    file?: FileType;
    fileName?: string;
    fileUrl?: FileUrlType;
    forceFileType?: ForceFileType;
    isAnImage?: boolean;
    isHoverAccept?: DropzoneState['isDragAccept'];
    isHoverReject?: DropzoneState['isDragReject'];
    openFile?: OpenType;
    wordings?: WordingsType;
};
export interface FileDropOptions {
    /** Pass a comma-separated string of file types e.g. "image/png" or "image/png,image/jpeg" */
    accept?: Accept;
    children?: (state: FileDropChildren) => JSX.Element;
    fileName?: string;
    forceFileType?: ForceFileType;
    handleAddFile?: (event: CreateEvent | DropEvent | React.ChangeEvent<HTMLInputElement>) => void;
    handleRemoveFile?: (event: CreateEvent | DropEvent | React.ChangeEvent<HTMLInputElement>) => void;
    isClearable?: boolean;
    isEditable?: boolean;
    name?: string;
    onBlur?: () => void;
    onChange?: (event: CreateEvent | DropEvent | React.ChangeEvent<HTMLInputElement>) => void;
    onError?: (event?: string) => void;
    value: FileType;
    /** Pass an object with optional fields title, hint, fileButtonText and/or previewButtonText (string or JSX.Element) */
    wordings?: WordingsType;
}
export type FileDropProps = CreateWuiProps<'div', FileDropOptions> & Omit<DropzoneProps, 'children'>;
export interface FileWithPreview extends File {
    preview?: string;
}
type FileType = FileWithPreview | string;
type FileUrlType = string | URL;
type OpenType = DropzoneState['open'];
type WordingsType = {
    fileButtonText?: JSX.Element | string;
    hint?: JSX.Element | string;
    previewButtonText?: JSX.Element | string;
    title?: JSX.Element | string;
};
export declare const FileDrop: import('../System').CreateWuiComponent<"div", FileDropProps>;
export declare const ImagePreview: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('styled-components').FastOmit<React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, keyof import('@xstyled/system').SystemProps<import('@xstyled/system').Theme>> & import('@xstyled/system').SystemProps<import('@xstyled/system').Theme>, never>> & string;
export {};
