import type { Map as MapboxMap, LngLatLike } from 'mapbox-gl';
type SmartFitBoundsOptions = {
    padding?: number;
    duration?: number;
};
/**
 * Normalize any LngLatLike shape to [lng, lat].
 */
export declare const normalizeLngLat: (center: LngLatLike) => [number, number];
export declare const MIN_ZOOM_DELTA = 0.01;
/**
 * Computes the minimum zoom level that keeps visible tile count within limit.
 * Starts from at least unclusteredMinZoom and iteratively increases if needed.
 */
export declare const computeTileSafeZoom: (center: [number, number], baseZoom: number, containerWidth: number, containerHeight: number) => number;
/**
 * Computes tile-safe zoom for the map's current center/zoom/canvas size.
 */
export declare const computeCurrentTileSafeZoom: (map: MapboxMap) => number | null;
/**
 * Fits the map to bounds using a single camera transition.
 *
 * 1. Computes target camera with cameraForBounds (pure read, no events).
 * 2. Computes tile-safe zoom via computeTileSafeZoom.
 * 3. Executes one flyTo.
 *
 * Falls back to map.fitBounds if cameraForBounds returns null.
 */
export declare const smartFitBounds: (map: MapboxMap, bounds: [number, number, number, number], options?: SmartFitBoundsOptions) => void;
export {};
//# sourceMappingURL=smartFitBounds.d.ts.map