import * as React from 'react';

export interface DropzoneProps {
  /** Accepts `<Dropzone.Overlay />` or `<Dropzone.Content />`. Both of them can contain any required content. */
  children?: React.ReactNode;
  /** Applies a data-hook HTML attribute that can be used in the tests. */
  dataHook?: string;
  /** Specifies a CSS class name to be appended to the component’s root element.
   * @internal
   */
  className?: string;
  /** Defines an event handler which is called when files are dropped over the dropzone. Dropped files are supplied as an argument to the function. */
  onDrop(files: File[]): void;
}

export default class Dropzone extends React.PureComponent<DropzoneProps> {
  static Overlay: React.FC<{
    /** Accepts `<Dropzone.Overlay />` or `<Dropzone.Content />`. Both of them can contain any required content. */
    children?: React.ReactNode;
  }>;
  static Content: React.FC<{
    /** Accepts `<Dropzone.Overlay />` or `<Dropzone.Content />`. Both of them can contain any required content. */
    children?: React.ReactNode;
  }>;
}
