import { CanvasSize } from 'pptx-viewer-shared'; /** Pull-based dependencies for {@link LayoutState}; read fresh on every access. */ export interface LayoutStateDeps { getCanvasSize(): CanvasSize; isFullscreen(): boolean; /** Manual zoom percent, or `null` for fit-to-viewport. */ getZoomPercent(): number | null; } /** * LayoutState: the viewer's viewport-tracking + zoom maths, extracted from * `PowerPointViewer.svelte` to keep the SFC within the file-size budget. The * template writes {@link setViewport} from its stage resize callback; the * getters derive the effective stage scale from the reactive viewport size, * canvas size, fullscreen flag, and manual zoom (all tracked through the * runes signals they read). */ export declare class LayoutState { #private; viewportWidth: number; viewportHeight: number; constructor(deps: LayoutStateDeps); setViewport(width: number, height: number): void; /** Scale that fits the slide into the viewport (24px padding when windowed). */ get fittedScale(): number; /** Effective stage scale: fit-to-viewport unless a manual zoom is active. */ get scale(): number; /** The zoom percent shown in the toolbar (rounded, min 1). */ get effectivePercent(): number; } //# sourceMappingURL=layout-state.svelte.d.ts.map