import { CartesianChart } from "../cartesian/cartesian"; import type { Glyph } from "../cartesian/glyph"; import type { WebGLContextManager } from "../../webgl/context-manager"; import type { PlotLayout } from "../../layout/plot-layout"; import type { Theme } from "../../theme/theme"; import type { Canvas2D } from "../canvas-types"; import type { ZoomConfig } from "../../interaction/zoom-controller"; import type { PluginConfig } from "../chart"; /** * Map-mode base for cartesian charts. Reuses the entire cartesian * pipeline (build, hit-test, zoom controller, lazy tooltips, faceting, * theme, gradient texture) and swaps three behaviors: * * - `projectPoint(lon, lat)` Mercator-projects incoming columns so * the rest of the pipeline operates in meter-space (linear * projection matrix, screen-space splat radius, hit-test grid all * "just work"). * - `_renderMode = "map"` flips the render-frame branches to skip * cartesian gridlines and axes, insert a basemap layer before the * glyph draw, and use the map-specific chrome (attribution). * - `getZoomConfig()` returns `lockAspect: true` so wheel zoom keeps * `dataPerPixel` uniform on both axes (required: Mercator * preserves angle, glyphs distort otherwise). * * Concrete map plugin tags (`map-scatter`, `map-line`, `map-density`) * pin a glyph in their nullary constructor exactly like the cartesian * convenience subclasses. */ export declare class MapChart extends CartesianChart { _renderMode: "map"; private _tileLayer; constructor(glyph: Glyph); projectPoint(lon: number, lat: number): [number, number]; protected getZoomConfig(): ZoomConfig; setPluginConfig(cfg: PluginConfig): void; renderBackground(glManager: WebGLContextManager, layout: PlotLayout, projection: Float32Array, domain: { xMin: number; xMax: number; yMin: number; yMax: number; }, xOrigin: number, yOrigin: number): void; renderMapChrome(canvas: Canvas2D | null, layout: PlotLayout, theme: Theme, dpr: number): void; protected destroyInternal(): void; } /** * Map Scatter — Mercator scatter on a raster basemap. Same glyph as * `X/Y Scatter`; only projection and chrome differ. */ export declare class MapScatterChart extends MapChart { constructor(); } /** * Map Line — Mercator polyline on a raster basemap. Same glyph as * `X/Y Line`. */ export declare class MapLineChart extends MapChart { constructor(); } /** * Map Density — Mercator KDE on a raster basemap. Same glyph as * `Density`; the four `gradient_color_mode` variants * (density/mean/extreme/signed) are all available on the map too * because the glyph reads `_pluginConfig` directly. */ export declare class MapDensityChart extends MapChart { constructor(); }