import type { EditorView } from '@atlaskit/editor-prosemirror/view'; /** * Publishes the drag handle rendered into the block controls UI control surface, so popup consumers * outside Block Controls can anchor themselves to it without introducing a package cycle. * Entries are keyed by editor view so editors on the same page cannot interfere with each other. */ type Listener = () => void; type SurfaceDragHandleElementStore = { /** Never returns an element that has left the document. */ get: (view: EditorView | undefined) => HTMLElement | null; /** Clears only when the supplied element is still the current one. */ release: (view: EditorView | undefined, element: HTMLElement | null) => void; /** Publishes the currently rendered surface drag handle. */ set: (view: EditorView | undefined, element: HTMLElement | null) => void; /** Subscribes to handle replacement for one editor instance. */ subscribe: (view: EditorView | undefined, listener: Listener) => () => void; }; export declare const surfaceDragHandleElementStore: SurfaceDragHandleElementStore; export {};