import { type Entity } from "@trackunit/react-map-adapter-shared"; import type { MapApi } from "../core/types"; import type { UseLayersReturn } from "./useLayers"; type LayersProps = Readonly<{ /** The result from `useLayers()` */ layers: UseLayersReturn; /** Map API for viewport-aware features (e.g. edge labels). Optional for backward compat. */ api?: MapApi; /** * Called when the user directly clicks an entity on the map. * * Fires before the entity is selected, and **only** for genuine pointer * clicks — programmatic `layers.select()` calls (e.g. from a list * selection) do not trigger this callback. Use it to distinguish real * map clicks from other selection sources, for example for analytics. */ onEntityClick?: (entity: Entity) => void; /** * Called when the user directly double-clicks an entity on the map. * * Fires before the default fit behavior and **only** for genuine pointer * double-clicks — programmatic interactions do not trigger this callback. * Use it to distinguish real map double-clicks from other interaction * sources, for example for analytics. */ onEntityDblClick?: (entity: Entity) => void; }>; /** * `` -- rendering bridge between layer handles and the map adapter. * * Rendered as a child of ``. Reads the `LayerPort` from context * (provided by `createMapComponent`) and pushes a full `LayerSnapshot` to * the adapter on every change. The adapter owns the diff. * * This component is renderless -- it produces no DOM output. It exists * solely to manage the lifecycle of layer sources on the adapter. * * @example * ```tsx * const layers = useLayers(api, [markers, zones]); * * return ( * * * * * ); * ``` */ export declare const Layers: ({ layers, api, onEntityClick, onEntityDblClick }: LayersProps) => import("react/jsx-runtime").JSX.Element | null; export {};