/** * Canvas zoom is the *displayed* scale (canvasScale × 100), not the internal * occupancy percentage. Occupancy is derived so 200% means 200% of the slide * pixel size — independent of how large the editor pane is. */ export declare const MIN_CANVAS_ZOOM = 10; export declare const MAX_CANVAS_ZOOM = 200; export declare const CANVAS_ZOOM_STEP = 5; /** Wheel pixels that correspond to one CANVAS_ZOOM_STEP. */ export declare const WHEEL_ZOOM_PX_PER_STEP = 40; /** * Chrome PDF viewer / Chromium page-zoom ladder, clipped to 10–200%. * +/- jumps to the next (or previous) stop; values between stops snap directionally. */ export declare const CANVAS_ZOOM_PRESETS: readonly [10, 25, 33, 50, 67, 75, 80, 90, 100, 110, 125, 150, 175, 200]; export declare function displayedZoomPercent(canvasScale: number): number; export declare function clampCanvasZoom(zoom: number): number; /** * Step displayed zoom like Chrome PDF: walk `CANVAS_ZOOM_PRESETS`. * Off-ladder values (wheel) snap to the next stop in that direction. */ export declare function stepCanvasZoom(current: number, direction: 1 | -1): number; export declare function addCanvasZoom(current: number, delta: number): number; export declare function wheelDeltaToZoom(deltaPx: number): number; /** * Occupancy % that realizes `targetZoom` displayed percent given the current * scale and occupancy. Fallback when the canvas element is not available. */ export declare function occupancyForDisplayedZoom(targetZoom: number, canvasScale: number, canvasPercentage: number): number; /** * Occupancy % from pane + slide geometry so 200% is 200% of the slide pixel * size regardless of a stale canvasScale (rapid +/- and wheel). */ export declare function occupancyForTargetZoom(targetZoom: number, canvasWidth: number, canvasHeight: number, viewportSize: number, viewportRatio: number): number; export declare function getPendingZoom(): number | null; export declare function setPendingZoom(zoom: number | null): void;