import { DragAndDropOptions, DropType, DropValidationErrorMessage, FileDropEvent, MessageBoxOption, Widget } from '../index';
export declare class DragAndDropHandler {
    additionalDropProperties: (event: JQuery.DropEvent) => Record<string, string | Blob>;
    allowedTypes: () => string[];
    dropType: () => DropType;
    dropMaximumSize: () => number;
    target: Widget;
    onDrop: (data: FileDropEvent) => void;
    validateFiles: (files: File[], defaultValidator: (f: File[]) => void) => void;
    supportedScoutTypes: DropType[];
    $element: JQuery;
    selector: JQuery.Selector;
    protected _onDragEnterHandler: (event: JQuery.DragEnterEvent) => void;
    protected _onDragOverHandler: (event: JQuery.DragOverEvent) => void;
    protected _onDropHandler: (event: JQuery.DropEvent) => void;
    constructor(options?: DragAndDropOptions);
    install($element: JQuery, selector: JQuery.Selector): void;
    uninstall(): void;
    protected _onDragEnter(event: JQuery.DragEnterEvent): void;
    protected _onDragOver(event: JQuery.DragOverEvent): void;
    protected _onDragEnterOrOver(event: JQuery.DragEventBase): void;
    protected _onDrop(event: JQuery.DropEvent): void;
    /**
     * @throws {DropValidationErrorMessage} validationErrorMessage
     */
    private _validateFiles;
    protected _validationFailed(error: DropValidationErrorMessage): JQuery.Promise<MessageBoxOption>;
    uploadFiles(event: FileDropEvent): void;
}
//# sourceMappingURL=DragAndDropHandler.d.ts.map