import { ActiveDrag, DragItem, DropNodeSpec, DropPosition, DropResult, Unsubscribe } from './types'; type Listener = () => void; interface OverState { nodeId: string; position: DropPosition | undefined; } export declare function registerDropNode(spec: DropNodeSpec): Unsubscribe; export declare function updateDropNode(id: string, patch: Partial): void; export declare function getDropNode(id: string): DropNodeSpec | undefined; export declare function getAllDropNodes(): DropNodeSpec[]; export declare function subscribeGlobal(listener: Listener): Unsubscribe; export declare function subscribeNode(id: string, listener: Listener): Unsubscribe; export declare function getActiveDrag(): ActiveDrag | null; export declare function setActiveDrag(drag: ActiveDrag | null): void; export declare function updateActiveDrag(patch: Partial): void; export declare function getOverStack(): ReadonlyArray; export declare function isOver(nodeId: string): boolean; export declare function isOverCurrent(nodeId: string): boolean; export declare function getOverPosition(nodeId: string): DropPosition | undefined; export declare function setOverStack(next: Array): void; export declare function canDropOn(nodeId: string): boolean; export declare function specAcceptsItem(spec: DropNodeSpec, item: DragItem): boolean; export declare function setDropResult(result: DropResult | null): void; export declare function resetActiveForEnd(): void; export declare function resetRegistry(): void; export {};