/** * Small-screen / portrait viewport strategy (#215). * * The shell is authored against a fixed baseline (1024×768). On a container that * can't fit it — a phone — we render at the baseline and CSS-scale the whole * stage to fit, letterboxed, so nothing reflows (fidelity is the product spine; * the decision record is `docs/VIEWPORT.md`). This hook owns the policy → scale * resolution only; it is engine-pure (no styling, no color). The letterbox and * the `transform` live in the view layer. */ export type ViewportPolicy = 'auto' | 'scale' | 'native' | 'warn'; /** The XP baseline the shell is designed against. */ export declare const VIEWPORT_BASE_WIDTH = 1024; export declare const VIEWPORT_BASE_HEIGHT = 768; export interface ViewportScale { /** Whether a scale transform should be applied (false ⇒ the untouched layout). */ active: boolean; /** The scale factor (1 when inactive). */ scale: number; baseWidth: number; baseHeight: number; orientation: 'portrait' | 'landscape'; /** Portrait + scaled — landscape would scale larger, so nudge to rotate. */ showRotateHint: boolean; } export declare function useViewportScale(policy?: ViewportPolicy, containerRef?: React.RefObject): ViewportScale;