import { IEventEmitter } from '@breadstone/mosaik-elements'; import type { IDropZoneDataEventDetail } from '../../../events'; import { DropZoneState } from '../../../Types/DropZoneState'; import { CustomElement } from '../../Abstracts/CustomElement'; import type { IDropZoneElementProps } from './IDropZoneElementProps'; declare const DropZoneElement_base: (abstract new (...args: Array) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Disableable").IDisableableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Appearanceable").IAppearanceableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Variantable").IVariantableProps) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor; /** * DropZoneElement - An interactive component that defines a target area for drag-and-drop operations. * * @description * The DropZoneElement provides a designated area within the interface where users can drop draggable items. * It is commonly used in applications that require file uploads, reordering of elements, or custom drag-and-drop * interactions. By offering a clear and accessible drop target, this component helps improve usability and * guides users through intuitive drag-and-drop workflows. * * DropZoneElement can be styled and configured to visually indicate when a draggable item is hovering over it, * and it can emit events to notify the application when an item has been dropped. This makes it a flexible * building block for implementing custom drag-and-drop experiences across web and application interfaces. * * @element mosaik-drop-zone * @category Interaction * * @fires dropZoneData {DropZoneDataEvent} - Fired when data is transferred to the drop zone. * * @slot - The default slot for content displayed inside the drop zone. * * @example * ```html * *

Drag files here to upload

*
* ``` * * @public */ export declare class DropZoneElement extends DropZoneElement_base implements IDropZoneElementProps { private readonly _dropZoneData; private _dragSubscription; private _dragOverSubscription; private _dragStartSubscription; private _dragEndSubscription; private _dragEnterSubscription; private _dragLeaveSubscription; private _dropSubscription; private _state; /** * @public */ constructor(); /** * Returns the `is` property. * The `is` property represents natural name of this element. * * @public * @static * @readonly */ static get is(): string; /** * Gets or sets the `state` property. * * @readonly * @attr */ get state(): DropZoneState; private set state(value); /** * Called when the data is transferred to the drop zone. * Provides reference to `IDropZoneDataEventDetail` as event detail. * * @public * @readonly * @eventProperty */ get dropZoneData(): IEventEmitter; /** * @public * @override */ connectedCallback(): void; disconnectedCallback(): void; /** * Emits the `dropZoneData` event. * * @protected */ protected onDropZoneData(args: IDropZoneDataEventDetail): void; /** * @protected */ protected onDrag(event: DragEvent): void; /** * @protected */ protected onDragOver(event: DragEvent): void; /** * @protected */ protected onDragStart(event: DragEvent): void; /** * @protected */ protected onDragEnd(event: DragEvent): void; /** * @protected */ protected onDragEnter(event: DragEvent): void; /** * @protected */ protected onDragLeave(event: DragEvent): void; /** * @protected */ protected onDrop(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