import { Base, Constructor } from './index';
import { Listeners } from '../utility/listeners';
export interface DroppableFieldComponent {
    droppableUi: DroppableUiComponent;
}
export interface DroppableUiComponent {
    listeners: Listeners;
    handleDragEnter(evt: DragEvent): void;
    handleDragLeave(evt: DragEvent): void;
    handleDragOver(evt: DragEvent): void;
    handleDrop(evt: DragEvent): void;
    validTypes: Array<string>;
}
export declare type DroppableHandler = (startIndex: number, endIndex: number) => void;
export declare function DroppableMixin<TBase extends Constructor>(Base: TBase): {
    new (...args: any[]): {
        _droppableUi?: DroppableUiComponent | undefined;
        droppableUi: DroppableUiComponent;
    };
} & TBase;
declare const DroppableUi_base: {
    new (...args: any[]): {
        _uuid?: string | undefined;
        readonly uuid: string;
        readonly uid: string;
    };
} & typeof Base;
export declare class DroppableUi extends DroppableUi_base implements DroppableUiComponent {
    listeners: Listeners;
    validTypes: Array<string>;
    constructor();
    private findDropTarget;
    handleDragEnter(evt: DragEvent): void;
    handleDragLeave(evt: DragEvent): void;
    handleDragOver(evt: DragEvent): void;
    handleDrop(evt: DragEvent): void;
    isFileValid(file: File): boolean;
}
export {};
