import Sabar from 'sabar'; import Container from './Container'; import Dragger from './Dragger'; import MouseSensor from './sensors/mouse'; import DndEffects from './middleware/onMove/effects/DndEffects'; import { ContainersMap, DraggersMap, DndHooks, Impact, Extra, GlobalConfig, ResultDNDConfig, ResultConfig } from '../../types'; declare class DND { onStartHandler: Sabar; onMoveHandler: Sabar; containers: ContainersMap; draggers: DraggersMap; dndEffects: DndEffects; extra: Extra; hooks: DndHooks; rootElement: HTMLElement | string; impact: Impact; configs: ResultConfig[]; dndConfig: ResultDNDConfig; sensor: MouseSensor | null; constructor({ configs, rootElement, ...rest }: GlobalConfig); moveAPI: () => { hooks: DndHooks; prevImpact: Impact; }; updateImpact: (impact: Impact) => void; getClone: () => HTMLElement | undefined; initSensor(): void; getDragger: (draggerId: string) => Dragger; getContainer: (containerId: string) => Container; startObserve(): void; /** * extract `containerSelectors` and onStartHandler `container` and `dragger` */ setUp(): void; handleContainers(node?: Document): void; handleContainerElement(el: HTMLElement, config: ResultConfig): void; handleDraggers(containerNode?: HTMLElement | Document): void; handleDraggerInContainer(containerNode: HTMLElement | Document, draggerSelector: string): void; /** * * @param {HTMLElement} el * 1. Find closest container node first. * 2. Update container's children * 3. set dragger element's attributes. * */ handleDraggerElement(el: HTMLElement): void; } export default DND;