import type { GeoProjection } from '@mui/x-charts-vendor/d3-geo'; import type { ChartUsedStore } from '@mui/x-charts/internals'; import type { MapRotationAxis, MapTranslationAxis } from "./useGeoProjectionZoom.types.mjs"; import type { GeoProjectionInput } from "../useGeoProjection/index.mjs"; /** Multiplicative zoom step applied per wheel tick. */ export declare const WHEEL_ZOOM_STEP = 1.1; /** Multiplicative zoom step applied per `zoomIn`/`zoomOut` call. */ export declare const BUTTON_ZOOM_STEP = 1.3; type ProjectionFamily = 'azimuthal' | 'conic' | 'cylindrical' | 'albersUsa'; export declare function getProjectionFamily(projection: GeoProjectionInput | null): ProjectionFamily; export declare function getDefaultMapInteraction(projection: GeoProjectionInput | null): { rotationAllowed: MapRotationAxis; translationAllowed: MapTranslationAxis; }; /** * For a given projection, apply a zoom factor to the scale and return the rotation that renders * `geoPoint` at the `to` pixel coordinates, as `[longitude, latitude, roll]` (the view `center` plus * the third d3 rotation angle). * * - With `rotationAllowed: 'both+roll'`, the roll is free to move but kept as stable as possible: the * shortest-arc rotation dragging `geoPoint` onto `to` is composed with the current orientation, so * the roll only drifts as much as strictly required. * - With `rotationAllowed: 'both'`, both longitude and latitude are free but the roll is kept fixed at * the current value. * - With `rotationAllowed: 'longitude'`, only the longitude is solved; the latitude and roll are kept fixed. * - With `rotationAllowed: 'none'`, `null` is returned so the caller keeps the current rotation. */ export declare function getRotation(projection: GeoProjection, geoPoint: [number, number], to: [number, number], zoomFactor?: number, rotationAllowed?: MapRotationAxis): [number, number, number] | null; export declare function clampTranslationAxis(value: number, init: number, boundingBox0: number, boundingBox1: number, areaStart: number, areaEnd: number, gap: number): number; export declare function getTranslation(store: ChartUsedStore, projection: GeoProjection, geoPoint: [number, number], to: [number, number], translationAllowed?: MapTranslationAxis, maxEmptySpace?: number, currentTranslation?: [number, number]): [number, number] | null; export {};