/// <reference path="../../../../src/@types/@kano/common/index.d.ts" />
import { Plugin } from './plugin.js';
import Editor from './editor.js';
export interface IFileDropOverlayProvider {
    [K: string]: any;
    animateDragEnter(): void;
    animateDragLeave(): void;
    animateDrop(): void;
    getDomNode(): HTMLElement;
}
export interface IDroppedFile {
    file: File;
    content: string | ArrayBuffer;
}
export declare class FileUpload extends Plugin {
    private targetEl;
    private overlayProvider;
    private overlay?;
    private editor?;
    private _onDidUpload;
    private currentTarget;
    readonly onDidUpload: import("@kano/common/index.js").IEvent<IDroppedFile>;
    constructor(targetEl: HTMLElement, overlayProvider: IFileDropOverlayProvider);
    onInstall(editor: Editor): void;
    onInject(): void;
    addOverlay(): void;
    stop(): void;
    _bindEvents(): void;
    _unbindEvents(): void;
    static _onDragover(e: any): void;
    _onDrop(e: DragEvent): void;
    _onFileDropped(file: IDroppedFile): void;
    static _readFile(f: Blob): Promise<string | ArrayBuffer>;
    _onDragenter(e: DragEvent): void;
    _onDragleave(e: DragEvent): void;
    _animateDragEnter(): void;
    _animateDragLeave(): void;
    _animateDrop(): void;
    onDispose(): void;
}
export default FileUpload;
