/** * Ambient type declarations for leaflet.heat (no @types package available). * * This file must be a MODULE (has a top-level export) so that `declare module 'leaflet'` * is treated as an AUGMENTATION of the existing leaflet types, not a replacement. * Without the export, the `declare module 'leaflet'` block would shadow all of @types/leaflet. */ // This empty export makes the file a module, enabling proper augmentation semantics. export {} // Augment the 'leaflet' module to add heatLayer and HeatLayer types. declare module 'leaflet' { type HeatLatLngTuple = [number, number] | [number, number, number] interface HeatLayerOptions { minOpacity?: number maxZoom?: number max?: number radius?: number blur?: number gradient?: Record } class HeatLayer extends Layer { setLatLngs(latlngs: HeatLatLngTuple[]): this addLatLng(latlng: HeatLatLngTuple): this setOptions(options: HeatLayerOptions): this redraw(): this } function heatLayer(latlngs: HeatLatLngTuple[], options?: HeatLayerOptions): HeatLayer } // Declare leaflet.heat as a side-effect-only module. declare module 'leaflet.heat' { // Side-effect: augments the Leaflet global with the heatLayer plugin. const _: undefined export default _ }