import { type Structure } from '../../domain/index.js'; /** * BlueMap marker writer (#530, Phase 3). * * Converts extracted {@link Structure}s into BlueMap's native marker format and * writes them to each map's `live/markers.json` — the file the BlueMap webapp * polls — so structure markers appear directly in the embedded viewer with * per-category toggle and click popups. This needs no tile re-render. */ /** A single BlueMap POI marker. */ export interface BlueMapMarker { type: 'poi'; position: { x: number; y: number; z: number; }; label: string; detail: string; anchor: { x: number; y: number; }; classes: string[]; minDistance: number; maxDistance: number; sorting: number; listed: boolean; } /** A toggleable set of markers (one per structure category). */ export interface BlueMapMarkerSet { label: string; toggleable: boolean; defaultHidden: boolean; sorting: number; markers: Record; } /** * Group structures into one toggleable marker-set per category, in BlueMap's * native `live/markers.json` schema. */ export declare function buildMarkerSets(structures: Structure[]): Record; export declare class BlueMapMarkerWriter { /** * Write structure markers into the rendered webroot. Only dimensions whose * map directory exists (i.e. were rendered) are written. Returns the number * of markers written per map id. * * @param webroot Absolute path to the rendered BlueMap webroot. * @param structures Structures across all dimensions. */ writeMarkers(webroot: string, structures: Structure[]): Promise>; } //# sourceMappingURL=BlueMapMarkerWriter.d.ts.map