import PropTypes from 'prop-types'; import React, { DragEvent as ReactDragEvent, DragEventHandler as ReactDragEventHandler, ReactEventHandler } from 'react'; export declare type DropEffects = 'copy' | 'move' | 'link' | 'none'; export interface FileDropProps { children: React.ReactNode; className?: string; targetClassName?: string; draggingOverFrameClassName?: string; draggingOverTargetClassName?: string; frame?: Exclude | HTMLDocument; onFrameDragEnter?: (event: DragEvent) => void; onFrameDragLeave?: (event: DragEvent) => void; onFrameDrop?: (event: DragEvent) => void; onDragOver?: ReactDragEventHandler; onDragLeave?: ReactDragEventHandler; onDrop?: (files: FileList | null, event: ReactDragEvent) => any; onTargetClick?: ReactEventHandler; dropEffect?: DropEffects; } export interface FileDropState { draggingOverFrame: boolean; draggingOverTarget: boolean; } export declare class FileDrop extends React.PureComponent { static isIE: () => boolean; static eventHasFiles: (event: DragEvent | React.DragEvent) => boolean; static propTypes: { className: PropTypes.Requireable; targetClassName: PropTypes.Requireable; draggingOverFrameClassName: PropTypes.Requireable; draggingOverTargetClassName: PropTypes.Requireable; onDragOver: PropTypes.Requireable<(...args: any[]) => any>; onDragLeave: PropTypes.Requireable<(...args: any[]) => any>; onDrop: PropTypes.Requireable<(...args: any[]) => any>; onTargetClick: PropTypes.Requireable<(...args: any[]) => any>; dropEffect: PropTypes.Requireable; frame: (props: FileDropProps, propName: "frame" | "children" | "className" | "targetClassName" | "draggingOverFrameClassName" | "draggingOverTargetClassName" | "onFrameDragEnter" | "onFrameDragLeave" | "onFrameDrop" | "onDragOver" | "onDragLeave" | "onDrop" | "onTargetClick" | "dropEffect", componentName: string) => Error | undefined; onFrameDragEnter: PropTypes.Requireable<(...args: any[]) => any>; onFrameDragLeave: PropTypes.Requireable<(...args: any[]) => any>; onFrameDrop: PropTypes.Requireable<(...args: any[]) => any>; }; static defaultProps: { dropEffect: DropEffects; frame: Document | undefined; className: string; targetClassName: string; draggingOverFrameClassName: string; draggingOverTargetClassName: string; }; constructor(props: FileDropProps); componentDidMount(): void; componentDidUpdate(prevProps: FileDropProps): void; componentWillUnmount(): void; frameDragCounter: number; resetDragging: () => void; handleWindowDragOverOrDrop: (event: DragEvent) => void; handleFrameDrag: (event: DragEvent) => void; handleFrameDrop: (event: DragEvent) => void; handleDragOver: ReactDragEventHandler; handleDragLeave: ReactDragEventHandler; handleDrop: ReactDragEventHandler; handleTargetClick: ReactEventHandler; stopFrameListeners: (frame: HTMLDocument | undefined) => void; startFrameListeners: (frame: HTMLDocument | undefined) => void; render(): JSX.Element; }