import { BooleanAttributeDirective } from "../utils/boolean-attribute-directive.js"; import { ReactiveController, ReactiveControllerHost } from "lit"; type DragPosition = { x: number; y: number; }; interface DragEvent { event: PointerEvent; position: DragPosition; } interface IsDraggable extends HTMLElement { dragDisabled: boolean; get isDragActive(): boolean; beforeDragStart?(event: DragEvent): void; dragStart?(event: DragEvent): void; dragMove?(event: DragEvent): void; dragEnd?(event: DragEvent): void; afterDragEnd?(event: DragEvent): void; getDistance?(container: HTMLElement, position: DragPosition): number; } declare const DragActiveDirective: BooleanAttributeDirective<"data-odx-drag-active">; interface DragControllerOptions { getDraggableElements: () => T[]; getContainer?: () => HTMLElement; } declare const DragControllerOptions: (config?: Partial>) => DragControllerOptions; declare class DragController implements ReactiveController { #private; get draggableElements(): T[]; get container(): HTMLElement; constructor(host: ReactiveControllerHost & HTMLElement, options: DragControllerOptions); hostConnected(): void; hostDisconnected(): void; hostUpdated(): void; isDraggable(element?: unknown): element is IsDraggable; } export { DragActiveDirective, DragController, DragControllerOptions, DragEvent, DragPosition, IsDraggable };