import { EventEmitter, OnDestroy, Renderer2 } from "@angular/core";
import * as i0 from "@angular/core";
/**
 * FileBrowser directive
 *
 * @todo refactor this should only notifiy if files are dropped, not add them to store or create an upload
 *
 * directive to add uploads with drag / drop
 *
 * @example
 *
 * <div [ngxFileUpload]="'URL'" (add)="onUploadAdd($event)"></div>
 * <button (click)="ngxFileUploadRef.upload()">Upload</button>
 */
export declare class FileBrowserDirective implements OnDestroy {
    private renderer;
    /**
     * upload has been added
     *
     * @example
     *
     * <div [ngxFileUpload]=""localhost/upload"" (add)="onUploadAdd($event)" ></div>
     */
    add: EventEmitter<File[]>;
    disabled: boolean;
    /**
     * remove from subscribtions if component gets destroyed
     */
    private destroyed$;
    /**
     * input file field to trigger file window
     */
    private fileSelect;
    /**
     * Creates an instance of NgxFileUploadDirective.
     */
    constructor(renderer: Renderer2);
    /**
     * directive gets destroyed
     */
    ngOnDestroy(): void;
    /**
     * handle drag over event
     */
    onFileDragOver(event: DragEvent): void;
    /**
     * handle drop event
     */
    onFileDrop(event: DragEvent): void;
    /**
     * add click host listener
     * to get notified we have a click event
     */
    onClick(event: MouseEvent): void;
    /**
     * create dummy input field to select files
     * for security reasons, we cant trigger a file select window
     * without it
     */
    private createFieldInputField;
    /**
     * register on change event on input[type="file"] field
     * and create the uploads
     */
    private onFileSelect;
    static ɵfac: i0.ɵɵFactoryDeclaration<FileBrowserDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<FileBrowserDirective, "[ngxFileUpload]", never, { "disabled": { "alias": "disabled"; "required": false; }; }, { "add": "add"; }, never, never, false, never>;
}
