import { type Renderer } from '@expofp/renderer';
import { type Map as MaplibreMap } from 'maplibre-gl';
import { type RefObject } from 'react';
import { type GeoConfig } from './utils/geo-config';
/**
 * Renders the outdoor PoI markers (hotels, parking, transit) as native
 * MapLibre layers: a GeoJSON source with `cluster: true` plus symbol/circle
 * layers on top of it. Geo map only — the hook is mounted from
 * MaplibreAdapter, and runs once the renderer's `3d` custom layer exists so
 * the marker stack draws above the floor plan.
 *
 * The marker feed is `store.poiMarkerStore`: `config-outdoor-poi` builds the
 * marker records (including the rasterized pins, registered here via
 * `map.addImage`), and the store derives selection (`selectedMarkerId`), the
 * active filter (`outdoorFilter`) and dimming suppression from them. These
 * layers are the *only* rendering outdoor PoIs get — see
 * `configOutdoorPoiLayer`. Clicks are claimed from the renderer path via
 * `poiMarkerHitTest`.
 *
 * Gated behind `enableExperimentalOutdoorMarkers`: with the flag off no layers,
 * images or handlers are created at all. The feed is empty in that case too
 * (`configOutdoorPoiLayer` never publishes), so this is belt-and-braces — it
 * keeps the map untouched even if markers reach the store another way.
 */
export declare function usePoiMarkers(renderer: Renderer | null, mapRef: RefObject<MaplibreMap | null>, geoConfig: GeoConfig | null): void;
//# sourceMappingURL=usePoiMarkers.d.ts.map