export interface MapMarkerData {
    /** Unique marker identifier */
    id: string | number;
    /** Latitude */
    lat: number;
    /** Longitude */
    lng: number;
    /** Label shown in popup */
    label?: string;
    /** Optional category for styling */
    category?: string;
}
export interface MapViewProps {
    /** Array of markers to display */
    markers?: MapMarkerData[];
    /** Map center latitude */
    centerLat?: number;
    /** Map center longitude */
    centerLng?: number;
    /** Zoom level (1-18, default 13) */
    zoom?: number;
    /** Height of the map container (default "400px") */
    height?: string;
    /** Callback when a marker is clicked (programmatic use) */
    onMarkerClick?: (marker: MapMarkerData) => void;
    /** Callback when the map is clicked (programmatic use) */
    onMapClick?: (lat: number, lng: number) => void;
    /** Event name dispatched via event bus when the map is clicked. Payload: { latitude, longitude } */
    mapClickEvent?: string;
    /** Event name dispatched via event bus when a marker is clicked. Payload: marker data */
    markerClickEvent?: string;
    /** Whether to show a pin at the clicked location */
    showClickedPin?: boolean;
    /** Additional CSS classes */
    className?: string;
    /** Show attribution (default true) */
    showAttribution?: boolean;
}
/**
 * Server-safe wrapper. Renders an empty Box on the server (or until the
 * lazy implementation finishes loading on the client) so SSR never reaches
 * the leaflet code.
 */
export declare function MapView(props: MapViewProps): import("react/jsx-runtime").JSX.Element;
