import { EventEmitter } from '../../stencil-public-runtime';
import { FileInfo } from '../../global/shared-types/file.types';
/**
 * This component enables you to seamlessly convert any region of the user interface into
 * a file dropzone area, just by wrapping it inside the `limel-file-dropzone`.
 *
 * The file dropzone can then be used to allow end-users to upload files
 * by dragging and dropping them into the specified area, for example to trigger an upload process.
 *
 * After receiving the files, the component emits a `filesSelected` event. For unsupported
 * files (specified with the `accept` prop) a `filesRejected` event will be emitted.
 *
 * The event detail would be an array of `FileInfo` objects,
 * each representing a file dropped into the dropzone.
 *
 * @exampleComponent limel-example-file-dropzone
 * @exampleComponent limel-example-file-dropzone-type-filtering
 * @private
 */
export declare class FileDropzone {
  /**
   * Specifies the types of files that the dropzone will accept. By default, all file types are accepted.
   *
   * For media files, formats can be specified using: `audio/*`, `video/*`, `image/*`.
   * Unique file type specifiers can also be used, for example: `.jpg`, `.pdf`.
   * A comma-separated list of file extensions or MIME types is also acceptable, e.g., `image/png, image/jpeg` or
   * `.png, .jpg, .jpeg`.
   *
   * @see [HTML attribute: accept](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/accept) for more
   * details.
   */
  accept: string;
  /**
   * Set to `true` to disable the file dropzone.
   */
  disabled: boolean;
  /**
   * Is displayed when the user is dragging a file over the dropzone.
   * A suitable text could for instance be "Drop your files here".
   */
  text: string;
  /**
   * Is displayed to provide supplementary information to the end users,
   * for instance, which filetypes or file sizes are accepted.
   */
  helperText?: string;
  /**
   * Sets to true when there is a file to drop
   */
  private hasFileToDrop;
  /**
   * Emitted when files are selected
   */
  filesSelected: EventEmitter<FileInfo[]>;
  /**
   * Emitted when files are selected but do not conform with the `accept` property specifications.
   * This can happen when the file types or formats of the selected files are not among the ones allowed by the dropzone,
   * as defined by the `accept` property.
   *
   * @see `accept` for details on how to specify acceptable file types.
   */
  filesRejected: EventEmitter<FileInfo[]>;
  render(): any;
  private renderOnDragLayout;
  private renderText;
  private renderHelperText;
  private handleDrop;
  private handleDragOver;
  private handleDragLeave;
}
//# sourceMappingURL=file-dropzone.d.ts.map