/**
 * Copied from https://github.com/sarink/react-file-drop
 * For React 16.8 compatibility
 */
import React, { ReactNode } from 'react';
import window from 'global/window';
export declare type FileDropProps = {
    dropEffect?: 'copy' | 'move' | 'link' | 'none';
    frame?: typeof document | typeof window | HTMLElement;
    className?: string;
    targetClassName?: string;
    draggingOverFrameClassName?: string;
    draggingOverTargetClassName?: string;
    onDragOver?: (event: any) => void;
    onDragLeave?: (event: any) => void;
    onDrop?: (fileList: FileList, event: any) => void;
    onFrameDragEnter?: (event: any) => void;
    onFrameDragLeave?: (event: any) => void;
    onFrameDrop?: (event: any) => void;
    children?: ReactNode;
};
/** @typedef {import('./file-drop').FileDropProps} FileDropProps */
/** @augments React.PureComponent<FileDropProps> */
declare class FileDrop extends React.PureComponent<FileDropProps> {
    static isIE: () => any;
    static eventHasFiles: (event: any) => boolean;
    static defaultProps: {
        dropEffect: string;
        frame: any;
        className: string;
        targetClassName: string;
        draggingOverFrameClassName: string;
        draggingOverTargetClassName: string;
    };
    frameDragCounter: number;
    state: {
        draggingOverFrame: boolean;
        draggingOverTarget: boolean;
    };
    componentDidMount(): void;
    componentDidUpdate(prevProps: any): void;
    componentWillUnmount(): void;
    resetDragging: () => void;
    handleWindowDragOverOrDrop: (event: any) => void;
    handleFrameDrag: (event: any) => void;
    handleFrameDrop: (event: any) => void;
    handleDragOver: (event: any) => void;
    handleDragLeave: (event: any) => void;
    handleDrop: (event: any) => void;
    stopFrameListeners: (frame: any) => void;
    startFrameListeners: (frame: any) => void;
    render(): React.JSX.Element;
}
export default FileDrop;
