import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs'; import { B as Bridge } from '../types-D_H2f-wF.cjs'; import '../types-ITRQFAir.cjs'; type LatLng = { lat: number; lng: number; }; type MapView = { center: LatLng; zoom: number; bearing?: number; pitch?: number; }; type MapMarker = { id: string; position: LatLng; label?: string; color?: string; icon?: string; draggable?: boolean; data?: Record; }; /** * Adapter the host provides — getters/setters over the SAME controlled state it * passes to fancy-map's `` (view, markers, selection), plus optional * `fitBounds` (from the map's onReady handle) and `setFollow` (drives the map's * `follow` prop so an agent can make the camera track a moving marker). */ type MapBridgeAdapter = { getView: () => MapView; setView: (next: MapView) => void; getMarkers: () => MapMarker[]; setMarkers: (next: MapMarker[] | ((prev: MapMarker[]) => MapMarker[])) => void; getSelected: () => string | null; setSelected: (id: string | null) => void; /** Fit the camera to points (wire to the `MapHandle.fitBounds` from ``). */ fitBounds?: (points: LatLng[], padding?: number) => void; /** Make the camera follow a marker as it moves (drives the map's `follow` prop). */ setFollow?: (id: string | null) => void; }; type MapBridgeOptions = { adapter: MapBridgeAdapter; /** Identity tagged onto agent-authored markers. */ agent?: { id: string; name?: string; color?: string; }; }; /** * registerMapBridge — an MCP tool set over a fancy-map ``'s controlled * state, so a human and an agent cohabit one map. The agent moves the camera, * drops/updates/removes markers, selects, fits bounds, and follows a live * track; every mutation broadcasts AgentActivity (for presence) and pushes an * undo entry (so the human can step the agent back). Mirrors the whiteboard / * flow bridges in shape. */ declare function registerMapBridge(host: ToolHost, options: MapBridgeOptions): Bridge; export { type MapBridgeAdapter, type MapBridgeOptions, registerMapBridge };