/** Snapshot of page + table scroll before a focus/layout side-effect (e.g. opening a Sheet). */ interface PageScrollSnapshot { windowX: number; windowY: number; mainScrollTop: number; tableScrollLeft: number; mainEl: HTMLElement | null; tableEl: HTMLElement | null; } declare function capturePageScrollSnapshot(tableEl?: HTMLElement | null): PageScrollSnapshot; declare function restorePageScrollSnapshot(snapshot: PageScrollSnapshot): void; /** * Run `fn` then restore window / `#main-content` / table horizontal scroll after * Radix menu close + Sheet focus run (double rAF covers the focus frame). */ declare function runWithPreservedPageScroll(fn: () => void, tableEl?: HTMLElement | null): void; export { type PageScrollSnapshot, capturePageScrollSnapshot, restorePageScrollSnapshot, runWithPreservedPageScroll };