import type { ActiveNode } from '../blockControlsPluginType';
export type BlockControlsSurfaceTarget = {
    position: number;
    source: 'active' | 'root' | 'stored';
};
/**
 * Combines hover-driven and stored surface positions into one deduplicated list.
 * Shared by both the left and right surfaces: this is pure position bookkeeping with no
 * surface-specific behavior, so there's nothing to keep independent between them. What *is*
 * kept independent is each surface's own React tree (component lookup, measurement effects,
 * observers) — see block-controls-left-surfaces.tsx / block-controls-right-surfaces.tsx.
 */
export declare const getBlockControlsSurfaceTargets: (activeNode: ActiveNode | undefined, storedPositions: readonly number[]) => readonly BlockControlsSurfaceTarget[];
