import * as L from "leaflet";
import type { LandscapeDataProvider } from "../../components/landscape/landscape-provider";
import type { ViralViewerApi } from "../../viral-viewer-api";
export type MapPickerSearchResult = {
    name: string;
    description: string;
    lat: number;
    lng: number;
};
export type MapPickerSearchProvider = (query: string) => Promise<MapPickerSearchResult[]>;
export type MapPickerMapStyle = {
    id: string;
    label: string;
    url: string;
    options?: L.TileLayerOptions;
};
export declare class MapPickerModal {
    viralViewerApi: ViralViewerApi;
    private _overlay;
    private _map;
    private _marker;
    private _circle;
    private _radiusMeters;
    private _searchTimeout;
    private _isGenerating;
    private _visible;
    private _mapClickBound;
    private _provider;
    private _customTileUrl;
    private _customTileOptions;
    private _mapContainer;
    private _searchInput;
    private _searchResults;
    private _radiusSlider;
    private _radiusLabel;
    private _generateBtn;
    private _progressSection;
    private _progressLabel;
    private _progressFill;
    private _errorSection;
    private _errorMsg;
    private _actionsSection;
    private _placeholderSection;
    private _detailsSection;
    private _tileLayer;
    private _minimap;
    private _minimapTileLayer;
    private _minimapRect;
    private _coordsSection;
    private _addressLabel;
    private _lastAddress;
    private _crosshairIcon;
    private _searchProvider;
    private _mapStyles;
    private _activeStyleId;
    private _stylePicker;
    constructor(viralViewerApi: ViralViewerApi);
    private _injectLeafletCSS;
    private get _rawModal();
    private get _rawModalStyle();
    private _inject;
    setProvider(provider: LandscapeDataProvider): void;
    setSearchProvider(provider: MapPickerSearchProvider): void;
    setMapStyles(styles: MapPickerMapStyle[]): void;
    setTileUrl(url: string, options?: L.TileLayerOptions): void;
    private _applyTileLayer;
    private _getProvider;
    private _getTileUrl;
    private _getTileOptions;
    private _getCrosshairIcon;
    private _renderStylePicker;
    show(): void;
    private _initMinimap;
    private _updateMinimap;
    hide(): void;
    toggle(): void;
    get isVisible(): boolean;
    private _setMarker;
    private _updateCoordsDisplay;
    private _searchAddress;
    private _nominatimSearch;
    private _generate;
    private _updateProgress;
    private _showError;
    private _resetToPickState;
}
