/** * Push a history entry when modal opens. */ export function pushModalHistoryState(onBackButton: any): void; /** * Clean up history state when modal closes normally. */ export function cleanupModalHistoryState(): void; /** * Synchronize the modal to the visual viewport. * This is the "Best Fix" for satisfying the following requirements: * 1. Open diagram in perfect 1:1 scale even if background is zoomed. * 2. Persist background zoom and scroll position on close. * 3. Work reliably in Firefox, Chrome, Safari, and Brave. * * APPROACH: "Scale-Free" — position:fixed + exact visual viewport dimensions. * * We size the modal to the visual viewport (vv.width × vv.height) and * position it using vv.offsetLeft/offsetTop with translate3d only — NO * scale() transform on the modal. * * Why this matters: * - Panzoom operates in the modal's CSS pixel space. If we counter-scale * the modal (old approach: scale(1/vv.scale)), Panzoom's coordinate * space is inflated, making pan/zoom feel sluggish when the browser * is pinch-zoomed. * - Firefox computes pageLeft/pageTop differently from Chrome when using * position:absolute, causing layout shifts. position:fixed with * offsetLeft/offsetTop is consistent across browsers. */ export function startVisualViewportSync(): void; /** * Stop synchronization and cleanup listeners. */ export function stopVisualViewportSync(): void; /** * Reset all module-level state. */ export function resetViewportState(): void; //# sourceMappingURL=viewport.d.ts.map