import * as L from 'leaflet'; interface TooltipCircleOptions extends L.CircleOptions { tooltipContent?: string; } export class TipCircle extends L.Circle { constructor(latlng: L.LatLngExpression, options: TooltipCircleOptions) { super(latlng, options); if (options?.tooltipContent) { this.bindTooltip(options.tooltipContent, { permanent: false, direction: 'top', }); } } override setRadius(radius: number): this { super.setRadius(radius); if (this.getTooltip()) { this.setTooltipContent(`New radius: ${radius}m`); } return this; } } export const tipCircle = (latlng: L.LatLngExpression, options: TooltipCircleOptions) => { return new TipCircle(latlng, options); }