import { LitElement } from 'lit';
import '../md/icons/ui-icon.js';
export declare const dragEnterHandler: unique symbol;
export declare const dragLeaveHandler: unique symbol;
export declare const dragOverHandler: unique symbol;
export declare const dropHandler: unique symbol;
type Constructor<T = object> = new (...args: any[]) => T;
export declare class FileDropMixinInterface {
    dropTargetActive: boolean;
    dropTarget: HTMLElement;
    /**
     * Processes dropped to the page files
     * @param files The list of dropped files
     * @abstract This is to be implemented by the platform bindings
     */
    processDroppedFiles(files: FileList): Promise<void>;
}
/**
 * Adds methods to accept files via drag and drop.
 * The mixin register the dnd events on the body element. When an object is dragged over the window it adds
 * this `drop-target` class to the `body` element. Additionally it sets the `dropTargetActive` property.
 *
 * The mixin also assumes that when the `drop-target` is set then the `drop-info` overlay is rendered.
 * However, it does not change the logic if the element is not in the DOM.
 * Use the provided `dropTargetTemplate()` function to generate template for the drag info.
 *
 * The class implementing this mixin should override the `processDroppedFiles(files)`  method
 * to process the incoming files.
 *
 * @mixin
 */
export declare const FileDropMixin: <T extends Constructor<LitElement>>(superClass: T) => Constructor<FileDropMixinInterface> & T;
export {};
//# sourceMappingURL=FileDropMixin.d.ts.map