import Konva from 'konva'; import { type CoordinateTransform, type LiveEffect, type ViewportBounds } from 'mudlet-map-renderer'; import type { SceneHandle } from '../scene'; /** * Draws the active route (store.route.summary.path) on top of the map: a glowing * poly-line following the same geometry the renderer uses for paths (via * computePathData), plus start/end rings and dots for up/down/in/out * transitions. Only the portion of the path on the current area/z is drawn — * computePathData filters by area/z and stubs cross-boundary hops, so a * multi-area route still shows correctly as you switch areas. */ export declare class RouteEffect implements LiveEffect { private readonly sceneRef; private layer?; private unsubscribe?; private nodes; /** Lines whose width must track zoom (node + width multiplier). */ private widthLines; private rings; private scale; /** Last-drawn signature, so pointer-move store churn doesn't rebuild the path. */ private lastSummary; private lastArea; private lastZ; private lastDataVersion; constructor(sceneRef: { current: SceneHandle | null; }); attach(layer: Konva.Layer): void; updateViewport(_bounds: ViewportBounds, scale: number, _transform: CoordinateTransform): void; syncPositions(): void; destroy(): void; private clear; private addLine; private addRing; private sync; }