import type { EditorView } from '@atlaskit/editor-prosemirror/view';
import { type SurfaceSide, type SurfaceWrapperPlacement } from '../ui/utils/get-surface-placement';
import type { SurfaceDescriptor } from './block-controls-surface-descriptors';
export type MeasuredSurfacePlacements = ReadonlyMap<string, SurfaceWrapperPlacement>;
export declare const getSurfaceKey: (side: SurfaceSide, descriptor: SurfaceDescriptor) => string;
/**
 * Measures surface placements from DOM geometry when the browser cannot position surfaces with CSS
 * anchors. Returns an empty map and binds nothing when anchors are supported. Both sides share one
 * set of listeners, and measuring reruns only when a side's descriptor list changes, which the
 * descriptor resolver keeps stable across unrelated updates.
 */
export declare const useMeasuredSurfacePlacements: (editorView: EditorView, left: readonly SurfaceDescriptor[] | undefined, right: readonly SurfaceDescriptor[] | undefined) => MeasuredSurfacePlacements;
