import { type GeoJsonBbox, type GeoJsonFeature } from "@trackunit/geo-json-utils"; import type { MapInteractionState } from "@trackunit/react-map-adapter-shared"; import type { ShapeLabelResolutionContext } from "./shapeLabelResolution"; /** * Build the per-feature, per-frame context passed to viewport-aware shape * callbacks. Pure: no React, no `api` reads — caller supplies the already- * projected viewport bits, the precomputed `shapesInViewport` count for the * layer, a lazy overlap count, and the current interaction state. * * Lives next to `shapeLabelResolution.ts` and is consumed by * `useShapeDecorations` once per feature, before any placement work runs. */ export declare const buildShapeLabelResolutionContext: (feature: GeoJsonFeature, args: Readonly<{ handleId: string; featureKey: string; viewportBounds: Readonly; zoom: number; tileSize: number; shapesInViewport: number; getOverlappingShapesCount: () => number; interaction: MapInteractionState; }>) => ShapeLabelResolutionContext | null;