@xweather/mapsgl 1.10.1 → 1.10.2-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/mapsgl.css CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * @xweather/mapsgl - 1.10.1
3
+ * @xweather/mapsgl - 1.10.2-beta.1
4
4
  * (c) 2026 Vaisala Xweather
5
5
  * License: BSD
6
6
  * https://www.xweather.com
package/dist/mapsgl.d.ts CHANGED
@@ -2047,6 +2047,9 @@ export declare type CoordinateBounds = {
2047
2047
  south: number;
2048
2048
  east: number;
2049
2049
  };
2050
+
2051
+ /** Any supported regional-model coverage description. */
2052
+ export declare type CoverageSpec = EquirectCoverage | LccCoverage | StereoCoverage | RotatedLatLonCoverage | LaeaCoverage | MercatorCoverage;
2050
2053
 
2051
2054
  export declare type CrossTileID = string;
2052
2055
 
@@ -2248,6 +2251,41 @@ export declare const DataSourceType: {
2248
2251
 
2249
2252
  export declare type DataSourceType = ObjectValue<typeof DataSourceType>;
2250
2253
 
2254
+ /**
2255
+ * Defines the base properties for a MapsGL server dataset.
2256
+ */
2257
+ export declare type DataVariable = {
2258
+ /**
2259
+ * Measurement unit information of the data values.
2260
+ */
2261
+ measurement: {
2262
+ type: Measurement;
2263
+ units: string;
2264
+ } | undefined;
2265
+ /**
2266
+ * Minimum and maximum values for the data.
2267
+ */
2268
+ dataRange: ValueRange;
2269
+ /**
2270
+ * Minimum and maximum values for the output range from 0...255. This controls how the data is spread across
2271
+ * a single color band.
2272
+ */
2273
+ outputRange?: ValueRange;
2274
+ /**
2275
+ * Color-band byte used for no-data (typically `0`). When set, valid encodings start at `noData + 1`
2276
+ * (`outputMin`).
2277
+ *
2278
+ * For multi-band packs of the same dataset code (e.g. precip split across RGB via `splitDataset`),
2279
+ * `noData` applies only to the **first** band — later bands keep the full 0…255 range. Serialization
2280
+ * and request builders strip `noData` from continuation bands; shaders/CPU decode offset only band 0.
2281
+ */
2282
+ noData?: number;
2283
+ /**
2284
+ * Time offset in seconds from the current time to use when requesting the data.
2285
+ */
2286
+ timeOffset?: number;
2287
+ };
2288
+
2251
2289
  export declare interface DayNightOverlayOptions {
2252
2290
  /**
2253
2291
  * Overall opacity of the day/night overlay in the range `[0, 1]`.
@@ -2700,6 +2738,21 @@ protected onLoadProgress(e: any): void;
2700
2738
  */
2701
2739
  declare const equalUnits: (units1: MapUnits, units2: MapUnits) => boolean;
2702
2740
 
2741
+ /**
2742
+ * Native-projection descriptions for regional model grids. These are pure data shapes shared with
2743
+ * the runtime coverage-mask projections (`webgl-maps/src/utils/coverageProjection.ts`), whose CPU
2744
+ * and GLSL implementations consume them.
2745
+ */
2746
+ /** Equirectangular (plate carrée) coverage — grid is linearly spaced in lon/lat. */
2747
+ export declare interface EquirectCoverage {
2748
+ type: 'equirectangular';
2749
+ /** Geographic extent of the grid, in degrees. */
2750
+ lonMin: number;
2751
+ lonMax: number;
2752
+ latMin: number;
2753
+ latMax: number;
2754
+ }
2755
+
2703
2756
  /**
2704
2757
  * Euler angles describe a rotational transformation by rotating an object on its various axes in
2705
2758
  * specified amounts per axis, and a specified axis order. Euler angles consist of three
@@ -2773,6 +2826,12 @@ export declare type EvaluatorContext = {
2773
2826
  paint?: PaintStyle;
2774
2827
  };
2775
2828
 
2829
+ /**
2830
+ * Mapbox-style expression: operator name followed by arguments.
2831
+ * Arguments may be literals or nested expressions (recursive).
2832
+ */
2833
+ export declare type Expression = [ExpressionOperator, ...ExpressionValue[]];
2834
+
2776
2835
  /**
2777
2836
  * Mapbox-style expression array, e.g. ['get', 'opacity'] or ['*', ['get', 'x'], 2].
2778
2837
  * Allowed in style config; converted to DataDrivenStyleValue in the PaintStyle constructor.
@@ -2820,6 +2879,102 @@ export declare interface ExpressionOperation {
2820
2879
  */
2821
2880
  chunk: string;
2822
2881
  }
2882
+
2883
+ /** Supported expression operator names (first element of an expression array). */
2884
+ export declare const ExpressionOperator: {
2885
+ readonly literal: "literal";
2886
+ readonly get: "get";
2887
+ readonly has: "has";
2888
+ readonly var: "var";
2889
+ readonly properties: "properties";
2890
+ readonly zoom: "zoom";
2891
+ readonly coalesce: "coalesce";
2892
+ readonly eq: "==";
2893
+ readonly neq: "!=";
2894
+ readonly lt: "<";
2895
+ readonly lte: "<=";
2896
+ readonly gt: ">";
2897
+ readonly gte: ">=";
2898
+ readonly not: "!";
2899
+ readonly all: "all";
2900
+ readonly any: "any";
2901
+ readonly toNumber: "to-number";
2902
+ readonly toString: "to-string";
2903
+ readonly toDate: "to-date";
2904
+ readonly toLocaleString: "to-locale-string";
2905
+ readonly toUnit: "to-unit";
2906
+ readonly toBoolean: "to-boolean";
2907
+ readonly typeOf: "typeof";
2908
+ readonly number: "number";
2909
+ readonly string: "string";
2910
+ readonly boolean: "boolean";
2911
+ readonly object: "object";
2912
+ readonly add: "+";
2913
+ readonly subtract: "-";
2914
+ readonly mod: "%";
2915
+ readonly pow: "^";
2916
+ readonly multiply: "*";
2917
+ readonly divide: "/";
2918
+ readonly abs: "abs";
2919
+ readonly ceil: "ceil";
2920
+ readonly floor: "floor";
2921
+ readonly round: "round";
2922
+ readonly min: "min";
2923
+ readonly max: "max";
2924
+ readonly sqrt: "sqrt";
2925
+ readonly ln: "ln";
2926
+ readonly ln2: "ln2";
2927
+ readonly log2: "log2";
2928
+ readonly log10: "log10";
2929
+ readonly sin: "sin";
2930
+ readonly cos: "cos";
2931
+ readonly tan: "tan";
2932
+ readonly asin: "asin";
2933
+ readonly acos: "acos";
2934
+ readonly atan: "atan";
2935
+ readonly e: "e";
2936
+ readonly pi: "pi";
2937
+ readonly at: "at";
2938
+ readonly in: "in";
2939
+ readonly regex: "regex";
2940
+ readonly indexOf: "index-of";
2941
+ readonly length: "length";
2942
+ readonly slice: "slice";
2943
+ readonly concat: "concat";
2944
+ readonly downcase: "downcase";
2945
+ readonly upcase: "upcase";
2946
+ readonly step: "step";
2947
+ readonly interpolate: "interpolate";
2948
+ readonly case: "case";
2949
+ readonly match: "match";
2950
+ readonly let: "let";
2951
+ /**
2952
+ * Active map timeline position as **Unix seconds** (from the map controller), not wall clock —
2953
+ * use `now` for that.
2954
+ */
2955
+ readonly mapTime: "map-time";
2956
+ /**
2957
+ * @deprecated Prefer `map-time` — same semantics.
2958
+ */
2959
+ readonly time: "time";
2960
+ /**
2961
+ * Wall-clock time as **Unix seconds** (`Date.now() / 1000` in JS). Distinct from `map-time`,
2962
+ * which is the map timeline playhead.
2963
+ */
2964
+ readonly now: "now";
2965
+ /**
2966
+ * Converts a date or timestamp to Unix seconds so it can be compared with `now` / `map-time`.
2967
+ * Accepts a `Date`, ISO string, millisecond timestamp, or a value already in seconds. Values
2968
+ * already in seconds are left unchanged (not divided by 1000). Duration literals such as
2969
+ * `86400` do not need `to-time`.
2970
+ */
2971
+ readonly toTime: "to-time";
2972
+ };
2973
+
2974
+ export declare type ExpressionOperator = (typeof ExpressionOperator)[keyof typeof ExpressionOperator];
2975
+
2976
+ /** Value that can appear as an expression or as an argument (literal or nested expression). */
2977
+ export declare type ExpressionValue = string | number | boolean | null | object | Expression;
2823
2978
 
2824
2979
  export declare type FeatureQueryResult = {
2825
2980
  value: number;
@@ -2874,6 +3029,13 @@ export declare interface FillStyleSpec {
2874
3029
  sort: string | SortProperty;
2875
3030
  }
2876
3031
 
3032
+ /**
3033
+ * Mapbox-style filter expression array. Evaluates to boolean (feature included when truthy).
3034
+ * Supports decision expressions (==, !=, <, <=, >, >=, all, any, !, in, regex, case, match, etc.)
3035
+ * and property lookups (get, has).
3036
+ */
3037
+ export declare type FilterExpression = ExpressionValue;
3038
+
2877
3039
  /**
2878
3040
  * Bottom-most (lowest in the style stack) admin boundary layer id from a Mapbox/MapLibre
2879
3041
  * style `layers` array. Style order is bottom → top, so the first matching layer is returned.
@@ -3445,6 +3607,16 @@ export declare type InterpolationMode = ObjectValue<typeof InterpolationMode>;
3445
3607
 
3446
3608
  declare const inToM: (ins: number) => number;
3447
3609
 
3610
+ /**
3611
+ * Converts inches to millimeters.
3612
+ */
3613
+ declare const inToMM: (ins: number) => number;
3614
+
3615
+ /**
3616
+ * Converts an inches-based rate (in/hr) to a millimeters-based rate (mm/sec).
3617
+ */
3618
+ declare const inToMMRate: (ins: number) => number;
3619
+
3448
3620
  /**
3449
3621
  * Returns whether a style layer looks like an administrative boundary line.
3450
3622
  * Matches Mapbox Streets (`admin-*-boundary*`, `source-layer: admin`) and common
@@ -3479,6 +3651,21 @@ export declare type LabelItem = {
3479
3651
  span?: number;
3480
3652
  };
3481
3653
 
3654
+ /** Spherical Lambert Azimuthal Equal-Area coverage (OPERA-style). Offsets/spacing in km. */
3655
+ export declare interface LaeaCoverage {
3656
+ type: 'laea';
3657
+ nx: number;
3658
+ ny: number;
3659
+ /** Projection centre, in degrees. */
3660
+ lon0: number;
3661
+ lat0: number;
3662
+ /** Projected position of grid cell (0,0): x of the upper-left column, y of the lower-left row, in km. */
3663
+ xUlKm: number;
3664
+ yLlKm: number;
3665
+ dxKm: number;
3666
+ dyKm: number;
3667
+ }
3668
+
3482
3669
  /**
3483
3670
  * A `Layer` object used to configure a single Aeris Maps layer.
3484
3671
  */
@@ -3874,6 +4061,19 @@ export declare interface LayerSpecification {
3874
4061
  paint: Partial<PaintStyleSpec>;
3875
4062
  }
3876
4063
 
4064
+ /**
4065
+ * Loading progress broken down by map layer identifier, keyed by the same id `getLayer()` takes.
4066
+ *
4067
+ * Derived from the sources each layer consumes, so it always agrees with the combined figure it
4068
+ * accompanies. Two consequences worth knowing:
4069
+ *
4070
+ * - Layers that **share** a source each report that source's progress, so the per-layer totals sum
4071
+ * to more than the combined total. That is intended — each layer really is waiting on that data.
4072
+ * - A composite weather layer contributes one entry per *store* layer it created
4073
+ * (`base.admin_2_boundaries.line`, …), not one for the weather layer code.
4074
+ */
4075
+ export declare type LayersProgress = Record<string, SerializedProgress>;
4076
+
3877
4077
  /**
3878
4078
  * Timing configuration options for a layer.
3879
4079
  */
@@ -3983,6 +4183,25 @@ export declare const LayerType: {
3983
4183
 
3984
4184
  export declare type LayerType = ObjectValue<typeof LayerType>;
3985
4185
 
4186
+ /** Lambert Conformal Conic coverage (HRRR, NAM, NBM, RTMA, …). Offsets/spacing in km. */
4187
+ export declare interface LccCoverage {
4188
+ type: 'lcc';
4189
+ /** Grid dimensions in cells. */
4190
+ nx: number;
4191
+ ny: number;
4192
+ /** Central meridian and origin/standard parallels, in degrees. */
4193
+ lon0: number;
4194
+ lat0: number;
4195
+ lat1: number;
4196
+ lat2: number;
4197
+ /** Projected position of grid cell (0,0), in km. */
4198
+ x0Km: number;
4199
+ y0Km: number;
4200
+ /** Cell spacing in km. */
4201
+ dxKm: number;
4202
+ dyKm: number;
4203
+ }
4204
+
3986
4205
  /**
3987
4206
  * The LeafletMapController is a MapController implementation for Leaflet maps.
3988
4207
  */
@@ -4322,6 +4541,7 @@ export declare type MapboxMap = mapboxgl.Map;
4322
4541
  export declare class MapboxMapController extends MapController<MapboxMap> implements MapProvider {
4323
4542
 
4324
4543
  get container(): HTMLElement;
4544
+
4325
4545
  get libraryInfo(): MapLibraryInfo;
4326
4546
  constructor(map: MapboxMap, opts: MapAdapterOptions);
4327
4547
  initialize(): Promise<void>;
@@ -4455,6 +4675,26 @@ get needsViewportUpdate(): boolean;
4455
4675
  * The frames per second (FPS) of the context.
4456
4676
  */
4457
4677
  get fps(): number;
4678
+ /**
4679
+ * Current data loading progress, in the same shape as the `load:progress` event payload.
4680
+ *
4681
+ * Use this to read loading state at an arbitrary moment — on mount, or when a component
4682
+ * appears partway through a load — rather than waiting for the next `load:progress` tick.
4683
+ * `progress` is every active layer combined; `layers` breaks the same figure down by layer id.
4684
+ *
4685
+ * Layers sharing a data source each report that source's progress, so the per-layer totals can
4686
+ * sum to more than `progress.total`. See `LayersProgress`.
4687
+ * @readonly
4688
+ */
4689
+ get loadingProgress(): {
4690
+ progress: SerializedProgress;
4691
+ layers: LayersProgress;
4692
+ };
4693
+ /**
4694
+ * Whether any data source on the map is currently loading.
4695
+ * @readonly
4696
+ */
4697
+ get isLoading(): boolean;
4458
4698
  /**
4459
4699
  * Returns an array of active data sources that have been added to the map.
4460
4700
  * @readonly
@@ -5218,6 +5458,54 @@ export declare class MapResult {
5218
5458
  headers(): Headers;
5219
5459
  }
5220
5460
 
5461
+ /**
5462
+ * Defines the set of properties used by a dataset when requesting data from the MapsGL API tile server.
5463
+ * Lives in the spec package deliberately: nothing here consumes it, but it is the cross-platform
5464
+ * wire shape every SDK's tile requests must produce from {@link WeatherVariable} data.
5465
+ */
5466
+ export declare type MapsGLDataDescriptor = {
5467
+ /**
5468
+ * The dataset code used by the MapsGL server.
5469
+ */
5470
+ id: string;
5471
+ /**
5472
+ * Measurement unit information of the data values.
5473
+ */
5474
+ measurement?: {
5475
+ type: Measurement;
5476
+ units: string;
5477
+ } | null;
5478
+ /**
5479
+ * Minimum value to return for the data in the data's native units.
5480
+ */
5481
+ dataMin: number;
5482
+ /**
5483
+ * Maximum value to return for the data in the data's native units.
5484
+ */
5485
+ dataMax: number;
5486
+ /**
5487
+ * Value from 0...255 to use for encoding no-data values. Typically this is `0`.
5488
+ *
5489
+ * On multi-band packs of the same `id` (e.g. precip RGB), only the first descriptor should set
5490
+ * `noData`; continuation bands omit it so they encode across the full 0…255 range. Shader skip
5491
+ * and decode check/offset that primary band only.
5492
+ */
5493
+ noData?: number;
5494
+ /**
5495
+ * Value from 0...255 to use for encoding the minimum value in the output range. Typically this is `0` unless a
5496
+ * value is provided for `noData`, in which case it is `1` (on the primary band of a multi-band pack only).
5497
+ */
5498
+ outputMin?: number;
5499
+ /**
5500
+ * Value from 0...255 to use for encoding the maximum value in the output range. Typically this is `255`.
5501
+ */
5502
+ outputMax?: number;
5503
+ /**
5504
+ * Time offset in seconds from the current time to use when requesting the data.
5505
+ */
5506
+ timeOffset?: number;
5507
+ };
5508
+
5221
5509
  /**
5222
5510
  * The units of measurement for the map.
5223
5511
  */
@@ -5429,9 +5717,42 @@ export declare class Matrix4 extends Matrix<mat4> {
5429
5717
  declare const mbToHg: (mb: number) => number;
5430
5718
 
5431
5719
  declare const mbToPa: (mb: number) => number;
5720
+
5721
+ /**
5722
+ * `'temperature-delta'` is a distinct measurement from `'temperature'`: converting a *change* in
5723
+ * temperature (e.g. a 24-hour delta) needs scale-only conversion (`FtoCUnit`-style), not the
5724
+ * offset conversion an absolute temperature needs (`FtoC`-style) — a real, portable distinction
5725
+ * every platform's unit-conversion logic needs to know, not just a webgl-maps implementation
5726
+ * detail. Named to match the native Swift (`UnitTemperatureDelta`) and Kotlin
5727
+ * (`MeasurementType.TEMPERATURE_DELTA`) types already generated for it.
5728
+ */
5729
+ export declare type Measurement = keyof typeof Units | 'height' | 'snowfall' | 'intensity' | 'temperature-delta';
5730
+
5731
+ /**
5732
+ * Spherical Mercator coverage (NBM Hawaii / Puerto Rico / Guam). Standard web-Mercator-style
5733
+ * projection with true scale at the equator: `x = R·(lon−lon0)`, `y = R·ln(tan(π/4 + lat/2))`.
5734
+ * Offsets/spacing in km.
5735
+ */
5736
+ export declare interface MercatorCoverage {
5737
+ type: 'mercator';
5738
+ nx: number;
5739
+ ny: number;
5740
+ /** Reference longitude (degrees) — grid cell (0,0) sits at `lon0` when `x0Km` is 0. */
5741
+ lon0: number;
5742
+ /** Projected position of grid cell (0,0), in km. */
5743
+ x0Km: number;
5744
+ y0Km: number;
5745
+ dxKm: number;
5746
+ dyKm: number;
5747
+ }
5432
5748
 
5433
5749
  export declare type MessageHandler = (result: any) => any;
5434
5750
 
5751
+ /**
5752
+ * Converts miles to meters.
5753
+ */
5754
+ declare const miToM: (mi: number) => number;
5755
+
5435
5756
  /**
5436
5757
  * Converts precipitation rate in mm/hr (or mm/s if perSecond=true) to dBZ.
5437
5758
  * This is the inverse of the dbzToMMRate formula:
@@ -5539,7 +5860,7 @@ export declare class PaintStyle {
5539
5860
  fillSort(data?: StylableData): SortProperty;
5540
5861
  strokeColor(data?: StylableData): Color;
5541
5862
  strokeOpacity(data?: StylableData): number;
5542
- strokeThickness(data?: StylableData): number;
5863
+ strokeThickness(data?: StylableData, fallback?: number): number;
5543
5864
  strokeLineJoin(data?: StylableData): LineJoin;
5544
5865
  strokeLineCap(data?: StylableData): LineCap;
5545
5866
  radius(data?: StylableData): number;
@@ -6200,6 +6521,22 @@ constructor(data: Uint8Array, dimension: number, pad?: number);
6200
6521
  private _idx;
6201
6522
  }
6202
6523
 
6524
+ /** Rotated latitude/longitude coverage (HRDPS). Pole/spacing in degrees. */
6525
+ export declare interface RotatedLatLonCoverage {
6526
+ type: 'rotlat';
6527
+ nx: number;
6528
+ ny: number;
6529
+ /** South-pole location (eccodes convention), in degrees. */
6530
+ poleLon: number;
6531
+ poleLat: number;
6532
+ /** First grid point in rotated coordinates, in degrees. */
6533
+ lon1: number;
6534
+ lat1: number;
6535
+ /** Angular cell spacing in rotated degrees. */
6536
+ dlon: number;
6537
+ dlat: number;
6538
+ }
6539
+
6203
6540
  export declare type SampleChannel = typeof SupportedSampleChannels[number];
6204
6541
 
6205
6542
  /**
@@ -6309,6 +6646,22 @@ export declare interface SampleStyleSpec {
6309
6646
  drawRange: Partial<ValueRange>;
6310
6647
  }
6311
6648
 
6649
+ /**
6650
+ * A serialized representation of the progress of a task.
6651
+ *
6652
+ * Public: this is the shape of `progress` on the `load:progress` event, of every value in
6653
+ * `LayersProgress`, and of `MapController#loadingProgress`. Do not mark it `@internal` —
6654
+ * api-extractor would trim it from the published declarations while the getter still referenced
6655
+ * it, leaving it undeclared for consumers (see XMAPSGLSDK-335).
6656
+ */
6657
+ export declare type SerializedProgress = {
6658
+ total: number;
6659
+ completed: number;
6660
+ failed: number;
6661
+ cancelled: number;
6662
+ progress: number;
6663
+ };
6664
+
6312
6665
  /**
6313
6666
  * The type of shader.
6314
6667
  */
@@ -6644,6 +6997,25 @@ export declare class State<T> extends EventDispatcher {
6644
6997
  */
6645
6998
  export declare type StaticOrFunctionStyleValue<T> = T | ((data: StylableData) => T);
6646
6999
 
7000
+ /**
7001
+ * Spherical polar stereographic coverage (NBM Alaska). Uses `ρ = R·tan(π/4 − sign·lat/2)` with true
7002
+ * scale on the equatorial plane (validated against the model's grid bounds). Offsets/spacing in km.
7003
+ */
7004
+ export declare interface StereoCoverage {
7005
+ type: 'stereo';
7006
+ nx: number;
7007
+ ny: number;
7008
+ /** Central meridian (degrees) — the meridian aligned with the −y axis. */
7009
+ lon0: number;
7010
+ /** Hemisphere: `+1` for the north pole, `-1` for the south pole. */
7011
+ sign: number;
7012
+ /** Projected position of grid cell (0,0), in km. */
7013
+ x0Km: number;
7014
+ y0Km: number;
7015
+ dxKm: number;
7016
+ dyKm: number;
7017
+ }
7018
+
6647
7019
  /**
6648
7020
  * Stroke style properties control how one or more polylines get rendered on a map. These properties also control
6649
7021
  * strokes around circles and other vector shapes.
@@ -8268,6 +8640,68 @@ export declare type TypedArray = Float64Array | Float32Array | Uint16Array | Int
8268
8640
  */
8269
8641
  export declare type UnitConverter = (value: number, from: string, to: string) => number;
8270
8642
 
8643
+ /**
8644
+ * The supported units of measurement.
8645
+ */
8646
+ declare const Units: {
8647
+ readonly temperature: {
8648
+ readonly C: "C";
8649
+ readonly F: "F";
8650
+ };
8651
+ readonly speed: {
8652
+ readonly kmh: "km/h";
8653
+ readonly mph: "mph";
8654
+ readonly ms: "m/s";
8655
+ readonly kts: "kts";
8656
+ };
8657
+ readonly pressure: {
8658
+ readonly mb: "mb";
8659
+ readonly pa: "Pa";
8660
+ readonly hPa: "hPa";
8661
+ readonly hg: "inHg";
8662
+ };
8663
+ readonly distance: {
8664
+ readonly m: "m";
8665
+ readonly km: "km";
8666
+ readonly ft: "ft";
8667
+ readonly mi: "mi";
8668
+ };
8669
+ readonly precipitation: {
8670
+ readonly mm: "mm";
8671
+ readonly cm: "cm";
8672
+ readonly in: "in";
8673
+ readonly m: "m";
8674
+ readonly ft: "ft";
8675
+ };
8676
+ readonly direction: {
8677
+ readonly deg: "°";
8678
+ };
8679
+ readonly time: {
8680
+ readonly hr: "hr";
8681
+ readonly min: "min";
8682
+ readonly sec: "sec";
8683
+ readonly ms: "ms";
8684
+ };
8685
+ readonly rate: {
8686
+ readonly mmhr: "mm/hr";
8687
+ readonly inhr: "in/hr";
8688
+ readonly mms: "mm/sec";
8689
+ readonly dbz: "dBZ";
8690
+ };
8691
+ readonly concentration: {
8692
+ readonly ppm: "ppm";
8693
+ readonly ugm3: "ug/m^3";
8694
+ };
8695
+ readonly ratio: {
8696
+ readonly percent: "%";
8697
+ };
8698
+ readonly index: {
8699
+ readonly uvi: "uvi";
8700
+ readonly aqi: "aqi";
8701
+ readonly aqhi: "aqhi";
8702
+ };
8703
+ };
8704
+
8271
8705
  export declare const units: {
8272
8706
  Units: {
8273
8707
  readonly temperature: {
@@ -8463,6 +8897,11 @@ export declare const utils: {
8463
8897
  */
8464
8898
  export declare type UVOffset = [number, number, number, number];
8465
8899
 
8900
+ export declare type ValueRange = {
8901
+ min: number;
8902
+ max: number;
8903
+ };
8904
+
8466
8905
  /**
8467
8906
  * Base class for all vectors.
8468
8907
  */
@@ -8697,6 +9136,19 @@ export declare class VectorTileSource extends TileSource<VectorTileData, VectorS
8697
9136
 
8698
9137
  }
8699
9138
 
9139
+ /**
9140
+ * Defines the properties for a vector weather variable.
9141
+ */
9142
+ export declare type VectorWeatherVariable = DataVariable & {
9143
+ /**
9144
+ * The dataset codes used by the MapsGL server for the U and V vector components.
9145
+ */
9146
+ code: {
9147
+ u: string;
9148
+ v: string;
9149
+ };
9150
+ };
9151
+
8700
9152
  export declare const version: string;
8701
9153
 
8702
9154
  export declare interface ViewBounds {
@@ -8973,6 +9425,16 @@ export declare type WeatherLayerStyle = `${WeatherLayerType}` | 'composite';
8973
9425
 
8974
9426
  export declare type WeatherLayerType = Exclude<LayerType, 'particles' | 'query' | 'voronoi' | 'data' | 'debug'>;
8975
9427
 
9428
+ /**
9429
+ * Defines the properties for a weather variable.
9430
+ */
9431
+ export declare type WeatherVariable = DataVariable & {
9432
+ /**
9433
+ * The dataset code used by the MapsGL server.
9434
+ */
9435
+ code: string;
9436
+ };
9437
+
8976
9438
  export declare type WebGLContext = WebGLRenderingContext | WebGL2RenderingContext;
8977
9439
 
8978
9440
  /**