/** * RemoteSelectionRings — renders colored outline rings + name tags over * elements selected by remote participants. * * Each participant's presence payload may contain a `selection` key with an * opaque descriptor (e.g. a CSS selector). The `resolveRect` callback maps * a descriptor to a DOMRect (or null when the element isn't found). Rings * are rendered as absolutely-positioned outlines anchored to the container. * * Usage: *
* {content} * document.querySelector(selector)?.getBoundingClientRect() ?? null} * containerRef={containerRef} * /> *
*/ import { type RefObject } from "react"; import type { OtherPresence } from "./types.js"; /** * Selection descriptors may be a plain string (treated as the resolver * input) or an object carrying a resolver input plus a human label * ("Editing hero section"). */ export type SelectionDescriptor = string | { selector: string; label?: string; }; export interface RemoteSelectionRingsProps { /** Remote participants. */ others: OtherPresence[]; /** * Key inside presence payload that carries the selection descriptor. * Default: "selection" */ selectionKey?: string; /** * Resolver: maps a selection descriptor to a DOMRect relative to the * viewport. Return null when the element is not found. */ resolveRect: (descriptor: string) => DOMRect | null; /** * Container element ref. Rings are positioned relative to this element's * bounding box. */ containerRef: RefObject; /** Additional CSS class for the overlay div. */ className?: string; } export declare function RemoteSelectionRings({ others, selectionKey, resolveRect, containerRef, className, }: RemoteSelectionRingsProps): import("react").JSX.Element; //# sourceMappingURL=RemoteSelectionRings.d.ts.map