import { ControllerBase, type ControllerHost } from '../../Controls/Controllers/Abstracts/ControllerBase'; import { type DragRef } from '../Core/DragRef'; import type { IDragRefConfig } from '../Core/Types'; /** * Lit Reactive Controller for drag functionality. * Wraps DragRef to integrate with Lit components. * * @public */ export declare class DragController extends ControllerBase { private _dragRef; private _config; private _initialized; private readonly _listeners; /** * Create a new DragController. * * @param host - Host component. * @param config - Configuration options. */ constructor(host: ControllerHost, config?: IDragRefConfig); /** * Called when the host connects to the DOM. * * @public * @override */ hostConnected(): void; /** * Called when the host disconnects from the DOM. * * @public * @override */ hostDisconnected(): void; /** * Get the underlying DragRef. * * @public */ get dragRef(): DragRef | null; /** * Get whether dragging is currently active. * * @public */ get isDragging(): boolean; /** * Get/set disabled state. * * @public */ get disabled(): boolean; set disabled(value: boolean); /** * Get/set lock axis. * * @public */ get lockAxis(): 'x' | 'y' | null; set lockAxis(value: 'x' | 'y' | null); /** * Get/set associated data. * * @public */ get data(): TData | undefined; set data(value: TData | undefined); /** * Update configuration. * * @param config - New configuration. * * @public */ updateConfig(config: Partial): void; /** * Reset drag position. * * @public */ reset(): void; /** * Specify drag handles. * * @param handles - Handle elements. * * @public */ withHandles(handles: Array): void; /** * Specify boundary element. * * @param boundary - Boundary element or selector. * * @public */ withBoundaryElement(boundary: string | HTMLElement | null): void; /** * Initialize the controller. * * @private */ private _initialize; /** * Set up event forwarding from DragRef to host. * * @private */ private _setupEventForwarding; /** * Add an event listener and track it for cleanup. * * @param type - Event type. * @param handler - Event handler. * * @private */ private _addListener; /** * Cleanup resources. * * @private */ private _cleanup; } //# sourceMappingURL=DragController.d.ts.map