/**
 * Fork of: https://github.com/donmccurdy/simple-dropzone updated: Mar 2021
 * The MIT License (MIT)
 * Copyright (c) 2018 Don McCurdy
 *
 * Changes:
 *      Convert to typescript.
 *      webkitRelativePath for file input select.
 *      Removed unzip and dependency(done in importer).
 *
 * Watches an element for file drops, parses to create a filemap hierarchy,
 * and emits the result.
 */
export declare class Dropzone {
    get inputEl(): HTMLInputElement | undefined;
    get el(): HTMLElement | undefined;
    private _el?;
    private _inputEl?;
    private _listeners;
    constructor(el?: HTMLElement, inputEl?: HTMLInputElement, listeners?: Partial<Record<DropEventType, ListenerCallback>>);
    on(type: DropEventType, callback: ListenerCallback): Dropzone;
    private _emit;
    /**
     * Destroys the instance.
     */
    destroy(): void;
    /**
     * Use dataTransfer.items when available instead of dataTransfer.files (when files are dropped)
     *
     * Set to false to use dataTransfer.files only.
     * This is useful for environments where files cannot be read from FileSystemEntry like in figma plugins/widgets.
     */
    static USE_DATA_TRANSFER_ITEMS: boolean;
    /**
     * References (and horror):
     * - https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items
     * - https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/files
     * - https://code.flickr.net/2012/12/10/drag-n-drop/
     * - https://stackoverflow.com/q/44842247/1314762
     *
     */
    private _onDrop;
    /**
     * @param  {Event} e
     */
    private _onDragover;
    private _onSelect;
    /**
     * Iterates through a list of FileSystemEntry objects, creates the fileMap
     * tree, and emits the result.
     * @param fileMap
     * @param  {Array<FileSystemEntry>} entries
     * @param e
     */
    private _loadNextEntry;
    /**
     * @throws
     */
    private _fail;
}
export type DropEventType = 'drop' | 'dropstart' | 'droperror';
export type ListenerCallback = ((data?: {
    files?: Map<string, DropFile>;
    message?: string;
}) => void);
export interface DropFile extends File {
    filePath: string;
}
//# sourceMappingURL=Dropzone.d.ts.map