import { SpectrumElement } from '../../element/index.js'; import { DropEffect, DropzoneSize } from './Dropzone.types.js'; declare const DropzoneBase_base: typeof SpectrumElement & { new (...args: any[]): import('../../mixins/index.js').SizedElementInterface; prototype: import('../../mixins/index.js').SizedElementInterface; } & import('../../mixins/index.js').SizedElementConstructor; /** * Base class for the `` drop zone component. * * Encapsulates all drag-and-drop event handling, state management, and * validation logic. Rendering, ARIA, and CSS are provided by the concrete * SWC subclass. * * @attribute {DropzoneSize} size - Controls the illustrated icon scale and container dimensions. * * @slot - Slot for the illustrated message and browse control. Hidden automatically when `filled` is true. * @slot filled-content - Slot for the uploaded-state content (e.g. an image preview). Shown automatically when `filled` is true; hidden otherwise. * * @fires swc-dropzone-should-accept - Cancelable event fired on every native `dragover` * tick while a drag is over the zone, not just on entry. Cancel to reject the dragged * payload and set the cursor to `none`. * @fires swc-dropzone-dragover - Fired once when dragged files enter the zone and are * accepted; does not repeat on subsequent `dragover` ticks while still hovering. * @fires swc-dropzone-dragleave - Fired when an accepted drag leaves the zone after a * 100 ms debounce, or immediately when it becomes rejected. Detail is a plain snapshot * `{ clientX, clientY, relatedTarget }` captured synchronously from the native event. * @fires swc-dropzone-drop - Fired when files are dropped on the zone. `element.dragged` * is still `true` when this event fires; it transitions to `false` after dispatch. */ export declare abstract class DropzoneBase extends DropzoneBase_base { /** * The size of the drop zone. * * @default m */ size: DropzoneSize; /** * Whether files are currently being dragged over the drop zone. * Set automatically by the component; also settable to reflect programmatic state. * * @attr dragged * @default false */ dragged: boolean; /** * Whether the drop zone has received a file and is in the filled state. * Set by consuming code after a successful drop or browse-file selection to * switch the zone to its filled visual. * * @attr filled * @default false */ filled: boolean; /** * The OS drag-cursor feedback shown while a file is held over the zone. * Maps directly to `DataTransfer.dropEffect`. Settable via the `drop-effect` * attribute, but property changes do not reflect back to the attribute * because it controls browser chrome, not component state. * * @attr drop-effect * @type {'copy' | 'move' | 'link' | 'none'} * @default 'copy' */ get dropEffect(): DropEffect; set dropEffect(value: DropEffect | null); /** @internal */ private _dropEffect; protected constructor(); /** @internal */ private readonly _sizePropagation; /** @internal */ protected handleDefaultSlotChange(): void; } export {};