import React from 'react'; import type { MapDataLayer } from '../map/map-layers-model'; import type { MapOverlayPosition } from '../map/map.types'; export interface MapLayerPanelProps extends React.HTMLAttributes { /** The same array passed to ``. */ layers: MapDataLayer[]; onToggle: (id: string, visible: boolean) => void; title?: string; /** * `'overlay'` floats over the map and needs a positioned ancestor; * `'inline'` flows in normal layout. * @default 'inline' */ variant?: 'overlay' | 'inline'; /** @default 'top-right' */ position?: MapOverlayPosition; /** @default "Map layers" */ ariaLabel?: string; } /** * Shows and hides the named layers of a map. * * @description * With four overlays on screen at once — heat underneath, areas, lines, points * on top — the stack stops being a detail and becomes the thing the user * operates. Each row carries the layer's label, its color swatch and a switch, * grouped by `group`. * * Built on `Switch` and `Label` so the control is operable by keyboard and * announced correctly, instead of a hand-rolled checkbox. * * @ai-rules * 1. Pass the same `layers` array to `` and to this panel. * 2. Toggle by updating that array's `visible` field — the panel is controlled and holds no state. * 3. For `variant="overlay"`, wrap the map and the panel in a `relative` container. */ export declare const MapLayerPanel: React.ForwardRefExoticComponent>;