import { IEventEmitter } from '@breadstone/mosaik-elements';
import { CustomElement } from '../../Abstracts/CustomElement';
import type { IDropZoneDataTransferEventDetail } from './Events/IDropZoneDataEventDetail';
import type { IDropZoneElementProps } from './IDropZoneElementProps';
declare const DropZoneElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Disableable").IDisableableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Appearanceable").IAppearanceableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Variantable").IVariantableProps) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * The `{@link DropZoneElement}` element.
 *
 * @fires dataTransferd - Fired when data is transferred to the drop zone.
 *
 * @public
 */
export declare class DropZoneElement extends DropZoneElement_base implements IDropZoneElementProps {
    private readonly _dataTransferd;
    private _dragSubscription;
    private _dragOverSubscription;
    private _dragStartSubscription;
    private _dragEndSubscription;
    private _dragEnterSubscription;
    private _dragLeaveSubscription;
    private _dropSubscription;
    private _isDragging;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `{@link is}` property.
     * The `{@link is}` property represents natural name of this element.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Returns the `{@link isDragging}` property.
     *
     * @public
     * @readonly
     * @attr
     */
    get isDragging(): boolean;
    private set isDragging(value);
    /**
     * Called when the data is transferred to the drop zone.
     * Provides reference to `{@link IEventDetail}` as event detail.
     *
     * @public
     * @readonly
     * @eventProperty
     */
    get dataTransferd(): IEventEmitter<IDropZoneDataTransferEventDetail>;
    /**
     * @public
     * @override
     */
    connectedCallback(): void;
    disconnectedCallback(): void;
    /**
     * Emits the {@link dataTransferd} event.
     *
     * @protected
     */
    protected onDataTransferd(args: IDropZoneDataTransferEventDetail): void;
    /**
     * @protected
     */
    protected onDragDrop(event: DragEvent): void;
}
/**
 * @public
 */
export declare namespace DropZoneElement {
    type Props = IDropZoneElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-drop-zone': DropZoneElement;
    }
}
export {};
//# sourceMappingURL=DropZoneElement.d.ts.map