import type { MapMarkerData } from './map-marker'; import type { MapFeatureRef } from './map.types'; export declare function buildMarkerFeatureRef(marker: MapMarkerData, index: number): MapFeatureRef; export interface UseMapSelectionOptions { markers: MapMarkerData[]; selectedId?: string | null; onFeatureSelect?: (id: string | null, feature: MapFeatureRef | null) => void; onFeatureHover?: (id: string | null, feature: MapFeatureRef | null) => void; } /** * Selection and hover state for a set of markers. * * @description * Shared by both renderers — the Google-backed map and the keyless one — so a * marker behaves identically whether or not the Maps script ever loaded. * * Supports controlled and uncontrolled use: a `selectedId` prop wins when * present, otherwise the hook tracks its own index. That is what keeps the * pre-existing click-to-open-InfoWindow behavior working for consumers who * never adopt the selection API. */ export declare function useMapSelection({ markers, selectedId, onFeatureSelect, onFeatureHover, }: UseMapSelectionOptions): { selectionEnabled: boolean; selectedIndex: number | null; selectFeature: (index: number | null) => void; hoverFeature: (index: number, hovering: boolean) => void; };