import type { CommentThread, ModelDomMapping, PositionLookup } from "smartrte-core/foundation"; export interface CommentMarkersProps { positions: PositionLookup; mapping: ModelDomMapping; containerElement: HTMLElement; threads: readonly CommentThread[]; activeThreadId: string | null; onSelectThread: (threadId: string) => void; } /** * Live inline markers for comment threads, following `TableResizeHandles`' * precedent (Phase 12a ยง1.2 finding): comments need many simultaneous * persistent anchors, not the single-instance overlay pattern the other * popovers use, so this measures real DOM rects from the live document and * re-measures via ResizeObserver/MutationObserver/scroll, exactly like that * component's column/row handles do for table boundaries. * * A thread's range is resolved fresh on every recompute via * `resolveAnnotationRange` (not cached) - it is the authoritative "is this * thread still anchored to real content" check, matching every other * AnnotationRange consumer. A thread whose range no longer resolves (fully * orphaned - the content it anchored to is gone) renders nothing here; it * still exists in `threads` for a host's thread-list UI to surface. */ export declare function CommentMarkers({ positions, mapping, containerElement, threads, activeThreadId, onSelectThread }: CommentMarkersProps): import("react/jsx-runtime").JSX.Element;