import type { FrameLifecycleTier } from '../editor/frameLod.js'; /** * The lifecycle tier of one frame, read from the frame LOD controller's keyed * store. Pinned frames (active, selected, preview-intended, or holding a live * preview grant) always read as full — losing their DOM would kill a running * producer or the surface the user is working on. The server snapshot is full * so SSR markup stays the complete preview surface. */ export declare function useFrameLod(frameId: string, pinned: boolean): FrameLifecycleTier; /** * Whether the camera currently draws this frame beyond its screenshot's pixel * density, from the same keyed store as the tier. False on the server — SSR * markup keeps the screenshot surface, and hydration corrects it on the first * recompute if the saved camera is already magnifying. */ export declare function useFrameMagnification(frameId: string): boolean; /** * The URL a frame screenshot should display right now. Native resolution * while the camera magnifies past one device pixel per CSS pixel (or while * the downscale still generates); the CSS-resolution downscale otherwise, so * an overview does not keep every frame's full bitmap decoded. The server * snapshot always uses the native URL. */ export declare function useScreenshotDisplayUrl(cacheKey: string, screenshot: { dataUrl: string; width: number; height: number; } | null, cssWidth: number, cssHeight: number): string | null; /** * Dev-only remount cost probe: marks the render that reattaches a detached * frame and measures once the commit's mount effects (including the shadow * preview mount, which flushes before this parent effect) have run. Off in * production builds unless `globalThis.PYGMALION_PROFILE_FRAME_LOD` is true. */ export declare function useFrameLodRemountProfile(frameId: string, tier: FrameLifecycleTier): void;