export type Point = { x: number; y: number; }; export type Camera = { zoom: number; offsetX: number; offsetY: number; }; export declare function worldToScreen(p: Point, camera: Camera): Point; export declare function screenToWorld(p: Point, camera: Camera): Point; /** * Clamp a zoom value to sane defaults (10%..500%). * You can override min/max if needed. */ export declare function clampZoom(zoom: number, min?: number, max?: number): number; /** * Apply pan in WORLD units. Positive dx moves the camera right (content appears to move left). */ export declare function applyPan(camera: Camera, dx: number, dy: number): Camera; /** * Zoom at a specific SCREEN point, keeping that point visually stationary. * factor > 1 zooms in; factor < 1 zooms out. */ export declare function zoomAtPoint(camera: Camera, screenPoint: Point, factor: number, min?: number, max?: number): Camera; /** * Compute a CSS transform for a content layer representing WORLD space. * Usage example: style={{ transform: cameraToCssTransform(camera) }} */ export declare function cameraToCssTransform(camera: Camera): string;