import { MapConfig, MapMarker, MapRegion } from './types';
export type { MapConfig, MapMarker, MapRegion } from './types';
export declare class ThreatMap {
    private readonly id;
    private readonly container;
    private readonly config;
    private readonly tileUrl;
    private readonly minZoom;
    private readonly maxZoom;
    private readonly markers;
    private readonly regions;
    private wrapperEl;
    private tileLayerEl;
    private markerLayerEl;
    private popupEl;
    private centerLat;
    private centerLng;
    private zoom;
    /** Pixel offset of the center relative to the world origin */
    private offsetX;
    private offsetY;
    /** Viewport dimensions */
    private viewportWidth;
    private viewportHeight;
    /** Pan state */
    private isDragging;
    private dragStartX;
    private dragStartY;
    private dragOffsetX;
    private dragOffsetY;
    /** Bound event handlers for cleanup */
    private readonly boundMouseDown;
    private readonly boundMouseMove;
    private readonly boundMouseUp;
    private readonly boundWheel;
    private readonly boundResize;
    /** Cache for loaded tile images */
    private readonly tileCache;
    constructor(config: MapConfig);
    /** Set map center and re-render */
    setCenter(lat: number, lng: number): void;
    /** Set zoom level and re-render */
    setZoom(zoom: number): void;
    /** Add a marker to the map */
    addMarker(marker: MapMarker): void;
    /** Remove a marker by id */
    removeMarker(id: string): void;
    /** Get all stored regions (regions are data-only, not visually rendered) */
    getRegions(): readonly MapRegion[];
    /** Clean up the component and remove from DOM */
    destroy(): void;
    /** Create the main DOM structure */
    private render;
    /** Compute the pixel offset of the current center */
    private computeOffset;
    /** Render visible tiles for the current viewport and zoom */
    private renderTiles;
    /** Render markers over the tile layer */
    private renderMarkers;
    /** Display a popup for a marker */
    private showPopup;
    /** Close any open popup */
    private closePopup;
    /** Update zoom button disabled state */
    private updateZoomButtons;
    /** Attach mouse/wheel events for pan and zoom */
    private attachEvents;
    /** Detach all events */
    private detachEvents;
    /** Handle mousedown to start panning */
    private handleMouseDown;
    /** Handle mousemove for panning */
    private handleMouseMove;
    /** Handle mouseup to stop panning */
    private handleMouseUp;
    /** Handle wheel for zoom */
    private handleWheel;
    /** Handle viewport resize */
    private handleResize;
    /** Add a tile to the cache with LRU eviction */
    private addToTileCache;
    /** Derive center lat/lng from the current pixel offset */
    private updateCenterFromOffset;
}
//# sourceMappingURL=index.d.ts.map