import { type PreviewScrollPosition } from '../editor/previewScroll.js'; import { type RoutePreviewShadowArtifact } from '../editor/routePreview.js'; import type { PageModel } from '../editor/store.js'; export declare const ShadowRoutePreview: import("react").FunctionComponent<{ page: PageModel; snapshot?: string; artifact?: RoutePreviewShadowArtifact; /** In-memory viewer positions, scoped by the owner to this exact presentation. */ scrollPositions?: readonly PreviewScrollPosition[]; /** Registers a reader only for this settled artifact and releases it with the mount. */ registerScrollReader?: (artifact: RoutePreviewShadowArtifact | undefined, read: () => readonly PreviewScrollPosition[]) => () => void; height: number; baseUrl: string; revision: string; /** True when the backing artifact no longer matches the source screen — blocks bootless promotion. */ sourceStale?: boolean; /** * How soon this frame's frozen DOM must be on screen when many arrive at * once; see MOUNT_PRIORITY. A mount that fits the frame budget runs at once * regardless. */ mountPriority?: number; onDocumentHeightChange?: (height: number) => void; onReplayIssuesChange?: (issues: string[]) => void; onReachableTestIdsChange?: (testIds: readonly string[]) => void; /** Enables immediate scrolling while the live React document warms. */ interactionEnabled?: boolean; /** * Lets the frozen document scroll inside the frame box, the way the page * scrolls in a browser window of the frame's size. Off by default: a frame * that grows to its document height has nothing to scroll. */ scrollable?: boolean; /** Called once the mounted document has settled: stylesheets, fonts and scroll endpoints applied. */ onSettled?: () => void; /** * Whether this mount is the page's frozen import source: it registers its * handle, and a pending layer import may promote from it. A presentation * surface elsewhere — the storyboard's selected card, drawn under another * camera and scrolled by the viewer — passes false, so measuring it can * never become the page's geometry. */ importSource?: boolean; }>;