/** * Anchor resolution (#141). * * Anchors are a declarative DOM convention, not a ref registry: any element that * wants to be spotlightable carries `data-xp-anchor=""`. Built-in chrome and * apps set it; custom apps add it too — so authoring a lesson for a custom app * needs only the attribute + lesson JSON, no engine change. The overlay resolves * the current step's anchor to a live rect (polled each frame, so it tracks * window drag/resize). Queries are scoped to a desktop-root element to stay * embedding-safe (never reaches into the host page). */ export declare const ANCHOR_ATTR = "data-xp-anchor"; /** The desktop-root element enclosing `from` (falls back to document). */ export declare const findDesktopRoot: (from: Element | null) => ParentNode; /** Resolve an anchor id to its live element within `root`, or null. */ export declare const resolveAnchorEl: (root: ParentNode, id: string) => Element | null; /** Resolve an anchor id to its live bounding rect within `root`, or null. */ export declare const resolveAnchorRect: (root: ParentNode, id: string) => DOMRect | null;