UNPKG

@mapbox/mapbox-gl-style-spec

Version:

a specification for mapbox gl styles

1,380 lines (1,379 loc) 95 kB
import Point from '@mapbox/point-geometry'; type StyleReference = Record<any, any>; declare const _default: StyleReference; /** * Format a Mapbox GL Style. Returns a stringified style with its keys * sorted in the same order as the reference style. * * The optional `space` argument is passed to * [`JSON.stringify`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) * to generate formatted output. * * If `space` is unspecified, a default of `2` spaces will be used. * * @private * @param {Object} style a Mapbox GL Style * @param {number} [space] space argument to pass to `JSON.stringify` * @returns {string} stringified formatted JSON * @example * var fs = require('fs'); * var format = require('mapbox-gl-style-spec').format; * var style = fs.readFileSync('./source.json', 'utf8'); * fs.writeFileSync('./dest.json', format(style)); * fs.writeFileSync('./dest.min.json', format(style, 0)); */ export declare function format(style: any, space?: number): string; type UnionToIntersection<U> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? { [K in keyof I]: I[K]; } : never; export type ColorSpecification = string; export type FormattedSpecification = string; export type ResolvedImageSpecification = string; export type PromoteIdSpecification = { [_: string]: string | ExpressionSpecification; } | string | ExpressionSpecification; export type FilterSpecification = ExpressionSpecification | [ "has", string ] | [ "!has", string ] | [ "==", string, string | number | boolean ] | [ "!=", string, string | number | boolean ] | [ ">", string, string | number | boolean ] | [ ">=", string, string | number | boolean ] | [ "<", string, string | number | boolean ] | [ "<=", string, string | number | boolean ] | Array<string | FilterSpecification>; export type TransitionSpecification = { duration?: number; delay?: number; }; export type PropertyFunctionStop<T> = [ number, T ]; export type ZoomAndPropertyFunctionStop<T> = [ { zoom: number; value: string | number | boolean; }, T ]; /** * @deprecated Use [Expressions](https://docs.mapbox.com/style-spec/reference/expressions/) syntax instead. */ export type FunctionSpecification<T> = { stops: Array<PropertyFunctionStop<T> | ZoomAndPropertyFunctionStop<T>>; base?: number; property?: string; type?: "identity" | "exponential" | "interval" | "categorical"; colorSpace?: "rgb" | "lab" | "hcl"; default?: T; }; export type CameraFunctionSpecification<T> = { type: "exponential"; stops: Array<[ number, T ]>; } | { type: "interval"; stops: Array<[ number, T ]>; }; export type SourceFunctionSpecification<T> = { type: "exponential"; stops: Array<[ number, T ]>; property: string; default?: T; } | { type: "interval"; stops: Array<[ number, T ]>; property: string; default?: T; } | { type: "categorical"; stops: Array<[ string | number | boolean, T ]>; property: string; default?: T; } | { type: "identity"; property: string; default?: T; }; export type CompositeFunctionSpecification<T> = { type: "exponential"; stops: Array<[ { zoom: number; value: number; }, T ]>; property: string; default?: T; } | { type: "interval"; stops: Array<[ { zoom: number; value: number; }, T ]>; property: string; default?: T; } | { type: "categorical"; stops: Array<[ { zoom: number; value: string | number | boolean; }, T ]>; property: string; default?: T; }; export type ExpressionSpecification = [ string, ...any[] ]; export type PropertyValueSpecification<T> = T | CameraFunctionSpecification<T> | ExpressionSpecification; export type DataDrivenPropertyValueSpecification<T> = T | FunctionSpecification<T> | CameraFunctionSpecification<T> | SourceFunctionSpecification<T> | CompositeFunctionSpecification<T> | ExpressionSpecification | (T extends Array<infer U> ? Array<U | ExpressionSpecification> : never); export type StyleSpecification = { "version": 8; "fragment"?: boolean; "name"?: string; "metadata"?: unknown; "center"?: Array<number>; "zoom"?: number; "bearing"?: number; "pitch"?: number; "light"?: LightSpecification; "lights"?: Array<LightsSpecification>; "terrain"?: TerrainSpecification | null | undefined; "fog"?: FogSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "snow"?: SnowSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "rain"?: RainSpecification; "camera"?: CameraSpecification; "color-theme"?: ColorThemeSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "indoor"?: IndoorSpecification; "imports"?: Array<ImportSpecification>; /** * @experimental This property is experimental and subject to change in future versions. */ "iconsets"?: IconsetsSpecification; "schema"?: SchemaSpecification; "sources": SourcesSpecification; "sprite"?: string; "glyphs"?: string; "transition"?: TransitionSpecification; "projection"?: ProjectionSpecification; "layers": Array<LayerSpecification>; "models"?: ModelsSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "featuresets"?: FeaturesetsSpecification; }; export type SourcesSpecification = { [_: string]: SourceSpecification; }; export type ModelsSpecification = { [_: string]: ModelSpecification; }; export type ModelNodeOverrideSpecification = { "orientation"?: [ number, number, number ]; }; export type ModelNodeOverridesSpecification = { [_: string]: ModelNodeOverrideSpecification; }; export type ModelMaterialOverrideSpecification = { "model-color"?: ColorSpecification; "model-color-mix-intensity"?: number; "model-opacity"?: number; "model-emissive-strength"?: number; }; export type ModelMaterialOverridesSpecification = { [_: string]: ModelMaterialOverrideSpecification; }; export type ModelSourceModelsSpecification = { [_: string]: ModelSourceModelSpecification; }; export type ModelSourceModelSpecification = { "uri": string; "position"?: [ number, number ]; "orientation"?: [ number, number, number ]; "nodeOverrides"?: ModelNodeOverridesSpecification; "materialOverrides"?: ModelMaterialOverridesSpecification; "nodeOverrideNames"?: Array<string>; "materialOverrideNames"?: Array<string>; "featureProperties"?: unknown; }; export type IconsetsSpecification = { [_: string]: IconsetSpecification; }; export type LightSpecification = { "anchor"?: PropertyValueSpecification<"map" | "viewport">; "position"?: PropertyValueSpecification<[ number, number, number ]>; "position-transition"?: TransitionSpecification; "color"?: PropertyValueSpecification<ColorSpecification>; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification<string>; "intensity"?: PropertyValueSpecification<number>; "intensity-transition"?: TransitionSpecification; }; export type TerrainSpecification = { "source": string; "exaggeration"?: PropertyValueSpecification<number>; "exaggeration-transition"?: TransitionSpecification; }; export type TerrainSpecificationUpdate = { "exaggeration"?: PropertyValueSpecification<number>; "exaggeration-transition"?: TransitionSpecification; }; export type FogSpecification = { "range"?: PropertyValueSpecification<[ number, number ]>; "range-transition"?: TransitionSpecification; "color"?: PropertyValueSpecification<ColorSpecification>; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification<string>; "high-color"?: PropertyValueSpecification<ColorSpecification>; "high-color-transition"?: TransitionSpecification; "high-color-use-theme"?: PropertyValueSpecification<string>; "space-color"?: PropertyValueSpecification<ColorSpecification>; "space-color-transition"?: TransitionSpecification; "space-color-use-theme"?: PropertyValueSpecification<string>; "horizon-blend"?: PropertyValueSpecification<number>; "horizon-blend-transition"?: TransitionSpecification; "star-intensity"?: PropertyValueSpecification<number>; "star-intensity-transition"?: TransitionSpecification; "vertical-range"?: PropertyValueSpecification<[ number, number ]>; "vertical-range-transition"?: TransitionSpecification; }; export type SnowSpecification = { /** * @experimental This property is experimental and subject to change in future versions. */ "density"?: PropertyValueSpecification<number>; "density-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "intensity"?: PropertyValueSpecification<number>; "intensity-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "color"?: PropertyValueSpecification<ColorSpecification>; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification<string>; /** * @experimental This property is experimental and subject to change in future versions. */ "opacity"?: PropertyValueSpecification<number>; "opacity-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "vignette"?: PropertyValueSpecification<number>; "vignette-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "vignette-color"?: PropertyValueSpecification<ColorSpecification>; "vignette-color-transition"?: TransitionSpecification; "vignette-color-use-theme"?: PropertyValueSpecification<string>; /** * @experimental This property is experimental and subject to change in future versions. */ "center-thinning"?: PropertyValueSpecification<number>; "center-thinning-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "direction"?: PropertyValueSpecification<[ number, number ]>; "direction-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "flake-size"?: PropertyValueSpecification<number>; "flake-size-transition"?: TransitionSpecification; }; export type RainSpecification = { /** * @experimental This property is experimental and subject to change in future versions. */ "density"?: PropertyValueSpecification<number>; "density-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "intensity"?: PropertyValueSpecification<number>; "intensity-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "color"?: PropertyValueSpecification<ColorSpecification>; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification<string>; /** * @experimental This property is experimental and subject to change in future versions. */ "opacity"?: PropertyValueSpecification<number>; "opacity-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "vignette"?: PropertyValueSpecification<number>; "vignette-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "vignette-color"?: PropertyValueSpecification<ColorSpecification>; "vignette-color-transition"?: TransitionSpecification; "vignette-color-use-theme"?: PropertyValueSpecification<string>; /** * @experimental This property is experimental and subject to change in future versions. */ "center-thinning"?: PropertyValueSpecification<number>; "center-thinning-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "direction"?: PropertyValueSpecification<[ number, number ]>; "direction-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "droplet-size"?: PropertyValueSpecification<[ number, number ]>; "droplet-size-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "distortion-strength"?: PropertyValueSpecification<number>; "distortion-strength-transition"?: TransitionSpecification; }; export type CameraSpecification = { "camera-projection"?: PropertyValueSpecification<"perspective" | "orthographic">; "camera-projection-transition"?: TransitionSpecification; }; export type ColorThemeSpecification = { "data"?: string | ExpressionSpecification; }; export type ProjectionSpecification = { "name": "albers" | "equalEarth" | "equirectangular" | "lambertConformalConic" | "mercator" | "naturalEarth" | "winkelTripel" | "globe"; "center"?: [ number, number ]; "parallels"?: [ number, number ]; }; export type ImportSpecification = { "id": string; "url": string; "config"?: ConfigSpecification; "data"?: StyleSpecification; "color-theme"?: ColorThemeSpecification | null | undefined; }; export type IndoorSpecification = { /** * @experimental This property is experimental and subject to change in future versions. */ [_: string]: IndoorSourceSpecification; }; export type IndoorSourceSpecification = { /** * @experimental This property is experimental and subject to change in future versions. */ "sourceId"?: string; /** * @experimental This property is experimental and subject to change in future versions. */ "sourceLayers"?: Array<string>; }; export type ConfigSpecification = { [_: string]: unknown; }; export type SchemaSpecification = { [_: string]: OptionSpecification; }; export type OptionSpecification = { "default": unknown | ExpressionSpecification; "type"?: "string" | "number" | "boolean" | "color"; "array"?: boolean; "minValue"?: number; "maxValue"?: number; "stepValue"?: number; "values"?: Array<unknown>; "metadata"?: unknown; }; /** * @experimental This is experimental and subject to change in future versions. */ export type FeaturesetsSpecification = { [_: string]: FeaturesetSpecification; }; /** * @experimental This is experimental and subject to change in future versions. */ export type FeaturesetSpecification = { /** * @experimental This property is experimental and subject to change in future versions. */ "metadata"?: unknown; /** * @experimental This property is experimental and subject to change in future versions. */ "selectors"?: Array<SelectorSpecification>; }; /** * @experimental This is experimental and subject to change in future versions. */ export type SelectorSpecification = { /** * @experimental This property is experimental and subject to change in future versions. */ "layer": string; /** * @experimental This property is experimental and subject to change in future versions. */ "properties"?: SelectorPropertySpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "featureNamespace"?: string; /** * @experimental This property is experimental and subject to change in future versions. */ "_uniqueFeatureID"?: boolean; }; /** * @experimental This is experimental and subject to change in future versions. */ export type SelectorPropertySpecification = { /** * @experimental This property is experimental and subject to change in future versions. */ [_: string]: unknown; }; export type AppearanceSpecification = { "condition"?: DataDrivenPropertyValueSpecification<boolean>; "name"?: string; "properties"?: unknown; }; export type VectorSourceSpecification = { "type": "vector"; "url"?: string; "tiles"?: Array<string>; "bounds"?: [ number, number, number, number ]; "extra_bounds"?: Array<[ number, number, number, number ]>; "scheme"?: "xyz" | "tms"; "minzoom"?: number; "maxzoom"?: number; "attribution"?: string; "promoteId"?: PromoteIdSpecification; "volatile"?: boolean; [_: string]: unknown; }; export type RasterSourceSpecification = { "type": "raster"; "url"?: string; "tiles"?: Array<string>; "bounds"?: [ number, number, number, number ]; "extra_bounds"?: Array<[ number, number, number, number ]>; "minzoom"?: number; "maxzoom"?: number; "tileSize"?: number; "scheme"?: "xyz" | "tms"; "attribution"?: string; "volatile"?: boolean; [_: string]: unknown; }; export type RasterDEMSourceSpecification = { "type": "raster-dem"; "url"?: string; "tiles"?: Array<string>; "bounds"?: [ number, number, number, number ]; "extra_bounds"?: Array<[ number, number, number, number ]>; "minzoom"?: number; "maxzoom"?: number; "tileSize"?: number; "attribution"?: string; "encoding"?: "terrarium" | "mapbox"; "volatile"?: boolean; [_: string]: unknown; }; /** * @experimental This is experimental and subject to change in future versions. */ export type RasterArraySourceSpecification = { "type": "raster-array"; "url"?: string; "tiles"?: Array<string>; "bounds"?: [ number, number, number, number ]; "extra_bounds"?: Array<[ number, number, number, number ]>; "minzoom"?: number; "maxzoom"?: number; "tileSize"?: number; "attribution"?: string; "rasterLayers"?: unknown; "volatile"?: boolean; [_: string]: unknown; }; export type GeoJSONSourceSpecification = { "type": "geojson"; "data"?: GeoJSON.GeoJSON | string; "maxzoom"?: number; "minzoom"?: number; "attribution"?: string; "buffer"?: number; "filter"?: unknown; "tolerance"?: number; "cluster"?: boolean; "clusterRadius"?: number; "clusterMaxZoom"?: number; "clusterMinPoints"?: number; "clusterProperties"?: unknown; "lineMetrics"?: boolean; "generateId"?: boolean; "promoteId"?: PromoteIdSpecification; "dynamic"?: boolean; }; export type VideoSourceSpecification = { "type": "video"; "urls": Array<string>; "coordinates": [ [ number, number ], [ number, number ], [ number, number ], [ number, number ] ]; }; export type ImageSourceSpecification = { "type": "image"; "url"?: string; "coordinates": [ [ number, number ], [ number, number ], [ number, number ], [ number, number ] ]; }; export type ModelSourceSpecification = { "type": "model" | "batched-model"; "url"?: string; "maxzoom"?: number; "minzoom"?: number; "tiles"?: Array<string>; "models"?: ModelSourceModelsSpecification; }; export type SourceSpecification = VectorSourceSpecification | RasterSourceSpecification | RasterDEMSourceSpecification | RasterArraySourceSpecification | GeoJSONSourceSpecification | VideoSourceSpecification | ImageSourceSpecification | ModelSourceSpecification; export type IconsetSpecification = { "type": "sprite"; "url": string; } | { "type": "source"; "source": string; }; export type ModelSpecification = string; export type AmbientLightSpecification = { "id": string; "properties"?: { "color"?: PropertyValueSpecification<ColorSpecification>; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification<string>; "intensity"?: PropertyValueSpecification<number>; "intensity-transition"?: TransitionSpecification; }; "type": "ambient"; }; export type DirectionalLightSpecification = { "id": string; "properties"?: { "direction"?: PropertyValueSpecification<[ number, number ]>; "direction-transition"?: TransitionSpecification; "color"?: PropertyValueSpecification<ColorSpecification>; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification<string>; "intensity"?: PropertyValueSpecification<number>; "intensity-transition"?: TransitionSpecification; "cast-shadows"?: boolean; /** * @experimental This property is experimental and subject to change in future versions. */ "shadow-quality"?: PropertyValueSpecification<number>; "shadow-intensity"?: PropertyValueSpecification<number>; "shadow-intensity-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "shadow-draw-before-layer"?: string; }; "type": "directional"; }; export type FlatLightSpecification = { "id": string; "properties"?: { "anchor"?: PropertyValueSpecification<"map" | "viewport">; "position"?: PropertyValueSpecification<[ number, number, number ]>; "position-transition"?: TransitionSpecification; "color"?: PropertyValueSpecification<ColorSpecification>; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification<string>; "intensity"?: PropertyValueSpecification<number>; "intensity-transition"?: TransitionSpecification; }; "type": "flat"; }; export type LightsSpecification = AmbientLightSpecification | DirectionalLightSpecification | FlatLightSpecification; export type FillLayerSpecification = { "id": string; "type": "fill"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "fill-sort-key"?: DataDrivenPropertyValueSpecification<number>; "visibility"?: "visible" | "none" | ExpressionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-elevation-reference"?: "none" | "hd-road-base" | "hd-road-markup" | ExpressionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-construct-bridge-guard-rail"?: DataDrivenPropertyValueSpecification<boolean>; }; "paint"?: { "fill-antialias"?: PropertyValueSpecification<boolean>; "fill-opacity"?: DataDrivenPropertyValueSpecification<number>; "fill-opacity-transition"?: TransitionSpecification; "fill-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "fill-color-transition"?: TransitionSpecification; "fill-color-use-theme"?: PropertyValueSpecification<string>; "fill-outline-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "fill-outline-color-transition"?: TransitionSpecification; "fill-outline-color-use-theme"?: PropertyValueSpecification<string>; "fill-translate"?: PropertyValueSpecification<[ number, number ]>; "fill-translate-transition"?: TransitionSpecification; "fill-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">; "fill-pattern"?: DataDrivenPropertyValueSpecification<ResolvedImageSpecification>; "fill-pattern-cross-fade"?: PropertyValueSpecification<number>; "fill-emissive-strength"?: PropertyValueSpecification<number>; "fill-emissive-strength-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-z-offset"?: DataDrivenPropertyValueSpecification<number>; "fill-z-offset-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-bridge-guard-rail-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "fill-bridge-guard-rail-color-transition"?: TransitionSpecification; "fill-bridge-guard-rail-color-use-theme"?: PropertyValueSpecification<string>; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-tunnel-structure-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "fill-tunnel-structure-color-transition"?: TransitionSpecification; "fill-tunnel-structure-color-use-theme"?: PropertyValueSpecification<string>; }; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array<AppearanceSpecification>; }; /** * @deprecated Use `FillLayerSpecification['layout']` instead. */ export type FillLayout = FillLayerSpecification["layout"]; /** * @deprecated Use `FillLayerSpecification['paint']` instead. */ export type FillPaint = FillLayerSpecification["paint"]; export type LineLayerSpecification = { "id": string; "type": "line"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "line-cap"?: DataDrivenPropertyValueSpecification<"butt" | "round" | "square">; "line-join"?: DataDrivenPropertyValueSpecification<"bevel" | "round" | "miter" | "none">; "line-miter-limit"?: PropertyValueSpecification<number>; "line-round-limit"?: PropertyValueSpecification<number>; "line-sort-key"?: DataDrivenPropertyValueSpecification<number>; "line-z-offset"?: DataDrivenPropertyValueSpecification<number>; "line-elevation-reference"?: "none" | "sea" | "ground" | "hd-road-markup" | ExpressionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "line-cross-slope"?: number | ExpressionSpecification; "visibility"?: "visible" | "none" | ExpressionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "line-width-unit"?: PropertyValueSpecification<"pixels" | "meters">; "line-elevation-ground-scale"?: DataDrivenPropertyValueSpecification<number>; "line-elevation-ground-scale-transition"?: TransitionSpecification; }; "paint"?: { "line-opacity"?: DataDrivenPropertyValueSpecification<number>; "line-opacity-transition"?: TransitionSpecification; "line-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "line-color-transition"?: TransitionSpecification; "line-color-use-theme"?: PropertyValueSpecification<string>; "line-translate"?: PropertyValueSpecification<[ number, number ]>; "line-translate-transition"?: TransitionSpecification; "line-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">; "line-width"?: DataDrivenPropertyValueSpecification<number>; "line-width-transition"?: TransitionSpecification; "line-gap-width"?: DataDrivenPropertyValueSpecification<number>; "line-gap-width-transition"?: TransitionSpecification; "line-offset"?: DataDrivenPropertyValueSpecification<number>; "line-offset-transition"?: TransitionSpecification; "line-blur"?: DataDrivenPropertyValueSpecification<number>; "line-blur-transition"?: TransitionSpecification; "line-dasharray"?: DataDrivenPropertyValueSpecification<Array<number>>; "line-pattern"?: DataDrivenPropertyValueSpecification<ResolvedImageSpecification>; "line-pattern-cross-fade"?: PropertyValueSpecification<number>; "line-gradient"?: ColorSpecification | ExpressionSpecification; "line-gradient-use-theme"?: PropertyValueSpecification<string>; "line-trim-offset"?: [ number, number ]; /** * @experimental This property is experimental and subject to change in future versions. */ "line-trim-fade-range"?: PropertyValueSpecification<[ number, number ]>; /** * @experimental This property is experimental and subject to change in future versions. */ "line-trim-color"?: PropertyValueSpecification<ColorSpecification>; "line-trim-color-transition"?: TransitionSpecification; "line-trim-color-use-theme"?: PropertyValueSpecification<string>; "line-emissive-strength"?: DataDrivenPropertyValueSpecification<number>; "line-emissive-strength-transition"?: TransitionSpecification; "line-border-width"?: DataDrivenPropertyValueSpecification<number>; "line-border-width-transition"?: TransitionSpecification; "line-border-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "line-border-color-transition"?: TransitionSpecification; "line-border-color-use-theme"?: PropertyValueSpecification<string>; "line-occlusion-opacity"?: PropertyValueSpecification<number>; "line-occlusion-opacity-transition"?: TransitionSpecification; }; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array<AppearanceSpecification>; }; /** * @deprecated Use `LineLayerSpecification['layout']` instead. */ export type LineLayout = LineLayerSpecification["layout"]; /** * @deprecated Use `LineLayerSpecification['paint']` instead. */ export type LinePaint = LineLayerSpecification["paint"]; export type SymbolLayerSpecification = { "id": string; "type": "symbol"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "symbol-placement"?: PropertyValueSpecification<"point" | "line" | "line-center">; "symbol-spacing"?: PropertyValueSpecification<number>; "symbol-avoid-edges"?: PropertyValueSpecification<boolean>; "symbol-sort-key"?: DataDrivenPropertyValueSpecification<number>; "symbol-z-order"?: PropertyValueSpecification<"auto" | "viewport-y" | "source">; "symbol-z-elevate"?: PropertyValueSpecification<boolean>; /** * @experimental This property is experimental and subject to change in future versions. */ "symbol-elevation-reference"?: PropertyValueSpecification<"sea" | "ground" | "hd-road-markup">; "icon-allow-overlap"?: PropertyValueSpecification<boolean>; "icon-ignore-placement"?: PropertyValueSpecification<boolean>; "icon-optional"?: PropertyValueSpecification<boolean>; "icon-rotation-alignment"?: PropertyValueSpecification<"map" | "viewport" | "auto">; "icon-size"?: DataDrivenPropertyValueSpecification<number>; /** * @experimental This property is experimental and subject to change in future versions. */ "icon-size-scale-range"?: [ number, number ] | ExpressionSpecification; "icon-text-fit"?: DataDrivenPropertyValueSpecification<"none" | "width" | "height" | "both">; "icon-text-fit-padding"?: DataDrivenPropertyValueSpecification<[ number, number, number, number ]>; "icon-image"?: DataDrivenPropertyValueSpecification<ResolvedImageSpecification>; "icon-image-use-theme"?: PropertyValueSpecification<string>; "icon-rotate"?: DataDrivenPropertyValueSpecification<number>; "icon-padding"?: PropertyValueSpecification<number>; "icon-keep-upright"?: PropertyValueSpecification<boolean>; "icon-offset"?: DataDrivenPropertyValueSpecification<[ number, number ]>; "icon-anchor"?: DataDrivenPropertyValueSpecification<"center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right">; "icon-pitch-alignment"?: PropertyValueSpecification<"map" | "viewport" | "auto">; "text-pitch-alignment"?: PropertyValueSpecification<"map" | "viewport" | "auto">; "text-rotation-alignment"?: PropertyValueSpecification<"map" | "viewport" | "auto">; "text-field"?: DataDrivenPropertyValueSpecification<FormattedSpecification>; "text-font"?: DataDrivenPropertyValueSpecification<Array<string>>; "text-size"?: DataDrivenPropertyValueSpecification<number>; /** * @experimental This property is experimental and subject to change in future versions. */ "text-size-scale-range"?: [ number, number ] | ExpressionSpecification; "text-max-width"?: DataDrivenPropertyValueSpecification<number>; "text-line-height"?: DataDrivenPropertyValueSpecification<number>; "text-letter-spacing"?: DataDrivenPropertyValueSpecification<number>; "text-justify"?: DataDrivenPropertyValueSpecification<"auto" | "left" | "center" | "right">; "text-radial-offset"?: DataDrivenPropertyValueSpecification<number>; "text-variable-anchor"?: PropertyValueSpecification<Array<"center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right">>; "text-anchor"?: DataDrivenPropertyValueSpecification<"center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right">; "text-max-angle"?: PropertyValueSpecification<number>; "text-writing-mode"?: PropertyValueSpecification<Array<"horizontal" | "vertical">>; "text-rotate"?: DataDrivenPropertyValueSpecification<number>; "text-padding"?: PropertyValueSpecification<number>; "text-keep-upright"?: PropertyValueSpecification<boolean>; "text-transform"?: DataDrivenPropertyValueSpecification<"none" | "uppercase" | "lowercase">; "text-offset"?: DataDrivenPropertyValueSpecification<[ number, number ]>; "text-allow-overlap"?: PropertyValueSpecification<boolean>; "text-ignore-placement"?: PropertyValueSpecification<boolean>; "text-optional"?: PropertyValueSpecification<boolean>; "visibility"?: "visible" | "none" | ExpressionSpecification; }; "paint"?: { "icon-opacity"?: DataDrivenPropertyValueSpecification<number>; "icon-opacity-transition"?: TransitionSpecification; "icon-occlusion-opacity"?: DataDrivenPropertyValueSpecification<number>; "icon-occlusion-opacity-transition"?: TransitionSpecification; "icon-emissive-strength"?: DataDrivenPropertyValueSpecification<number>; "icon-emissive-strength-transition"?: TransitionSpecification; "text-emissive-strength"?: DataDrivenPropertyValueSpecification<number>; "text-emissive-strength-transition"?: TransitionSpecification; "icon-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "icon-color-transition"?: TransitionSpecification; "icon-color-use-theme"?: PropertyValueSpecification<string>; "icon-halo-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "icon-halo-color-transition"?: TransitionSpecification; "icon-halo-color-use-theme"?: PropertyValueSpecification<string>; "icon-halo-width"?: DataDrivenPropertyValueSpecification<number>; "icon-halo-width-transition"?: TransitionSpecification; "icon-halo-blur"?: DataDrivenPropertyValueSpecification<number>; "icon-halo-blur-transition"?: TransitionSpecification; "icon-translate"?: PropertyValueSpecification<[ number, number ]>; "icon-translate-transition"?: TransitionSpecification; "icon-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">; "icon-image-cross-fade"?: PropertyValueSpecification<number>; "text-opacity"?: DataDrivenPropertyValueSpecification<number>; "text-opacity-transition"?: TransitionSpecification; "text-occlusion-opacity"?: DataDrivenPropertyValueSpecification<number>; "text-occlusion-opacity-transition"?: TransitionSpecification; "text-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "text-color-transition"?: TransitionSpecification; "text-color-use-theme"?: PropertyValueSpecification<string>; "text-halo-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "text-halo-color-transition"?: TransitionSpecification; "text-halo-color-use-theme"?: PropertyValueSpecification<string>; "text-halo-width"?: DataDrivenPropertyValueSpecification<number>; "text-halo-width-transition"?: TransitionSpecification; "text-halo-blur"?: DataDrivenPropertyValueSpecification<number>; "text-halo-blur-transition"?: TransitionSpecification; "text-translate"?: PropertyValueSpecification<[ number, number ]>; "text-translate-transition"?: TransitionSpecification; "text-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">; "icon-color-saturation"?: number | ExpressionSpecification; "icon-color-contrast"?: number | ExpressionSpecification; "icon-color-brightness-min"?: number | ExpressionSpecification; "icon-color-brightness-max"?: number | ExpressionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "symbol-z-offset"?: DataDrivenPropertyValueSpecification<number>; "symbol-z-offset-transition"?: TransitionSpecification; }; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array<AppearanceSpecification>; }; /** * @deprecated Use `SymbolLayerSpecification['layout']` instead. */ export type SymbolLayout = SymbolLayerSpecification["layout"]; /** * @deprecated Use `SymbolLayerSpecification['paint']` instead. */ export type SymbolPaint = SymbolLayerSpecification["paint"]; export type CircleLayerSpecification = { "id": string; "type": "circle"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "circle-sort-key"?: DataDrivenPropertyValueSpecification<number>; /** * @experimental This property is experimental and subject to change in future versions. */ "circle-elevation-reference"?: "none" | "hd-road-markup" | ExpressionSpecification; "visibility"?: "visible" | "none" | ExpressionSpecification; }; "paint"?: { "circle-radius"?: DataDrivenPropertyValueSpecification<number>; "circle-radius-transition"?: TransitionSpecification; "circle-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "circle-color-transition"?: TransitionSpecification; "circle-color-use-theme"?: PropertyValueSpecification<string>; "circle-blur"?: DataDrivenPropertyValueSpecification<number>; "circle-blur-transition"?: TransitionSpecification; "circle-opacity"?: DataDrivenPropertyValueSpecification<number>; "circle-opacity-transition"?: TransitionSpecification; "circle-translate"?: PropertyValueSpecification<[ number, number ]>; "circle-translate-transition"?: TransitionSpecification; "circle-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">; "circle-pitch-scale"?: PropertyValueSpecification<"map" | "viewport">; "circle-pitch-alignment"?: PropertyValueSpecification<"map" | "viewport">; "circle-stroke-width"?: DataDrivenPropertyValueSpecification<number>; "circle-stroke-width-transition"?: TransitionSpecification; "circle-stroke-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "circle-stroke-color-transition"?: TransitionSpecification; "circle-stroke-color-use-theme"?: PropertyValueSpecification<string>; "circle-stroke-opacity"?: DataDrivenPropertyValueSpecification<number>; "circle-stroke-opacity-transition"?: TransitionSpecification; "circle-emissive-strength"?: PropertyValueSpecification<number>; "circle-emissive-strength-transition"?: TransitionSpecification; }; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array<AppearanceSpecification>; }; /** * @deprecated Use `CircleLayerSpecification['layout']` instead. */ export type CircleLayout = CircleLayerSpecification["layout"]; /** * @deprecated Use `CircleLayerSpecification['paint']` instead. */ export type CirclePaint = CircleLayerSpecification["paint"]; export type HeatmapLayerSpecification = { "id": string; "type": "heatmap"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "visibility"?: "visible" | "none" | ExpressionSpecification; }; "paint"?: { "heatmap-radius"?: DataDrivenPropertyValueSpecification<number>; "heatmap-radius-transition"?: TransitionSpecification; "heatmap-weight"?: DataDrivenPropertyValueSpecification<number>; "heatmap-intensity"?: PropertyValueSpecification<number>; "heatmap-intensity-transition"?: TransitionSpecification; "heatmap-color"?: ColorSpecification | ExpressionSpecification; "heatmap-color-use-theme"?: PropertyValueSpecification<string>; "heatmap-opacity"?: PropertyValueSpecification<number>; "heatmap-opacity-transition"?: TransitionSpecification; }; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array<AppearanceSpecification>; }; /** * @deprecated Use `HeatmapLayerSpecification['layout']` instead. */ export type HeatmapLayout = HeatmapLayerSpecification["layout"]; /** * @deprecated Use `HeatmapLayerSpecification['paint']` instead. */ export type HeatmapPaint = HeatmapLayerSpecification["paint"]; export type FillExtrusionLayerSpecification = { "id": string; "type": "fill-extrusion"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "visibility"?: "visible" | "none" | ExpressionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-edge-radius"?: number | ExpressionSpecification; }; "paint"?: { "fill-extrusion-opacity"?: PropertyValueSpecification<number>; "fill-extrusion-opacity-transition"?: TransitionSpecification; "fill-extrusion-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "fill-extrusion-color-transition"?: TransitionSpecification; "fill-extrusion-color-use-theme"?: PropertyValueSpecification<string>; "fill-extrusion-translate"?: PropertyValueSpecification<[ number, number ]>; "fill-extrusion-translate-transition"?: TransitionSpecification; "fill-extrusion-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">; "fill-extrusion-pattern"?: DataDrivenPropertyValueSpecification<ResolvedImageSpecification>; "fill-extrusion-pattern-cross-fade"?: PropertyValueSpecification<number>; "fill-extrusion-height"?: DataDrivenPropertyValueSpecification<number>; "fill-extrusion-height-transition"?: TransitionSpecification; "fill-extrusion-base"?: DataDrivenPropertyValueSpecification<number>; "fill-extrusion-base-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-height-alignment"?: "terrain" | "flat"; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-base-alignment"?: "terrain" | "flat"; "fill-extrusion-vertical-gradient"?: PropertyValueSpecification<boolean>; "fill-extrusion-ambient-occlusion-intensity"?: PropertyValueSpecification<number>; "fill-extrusion-ambient-occlusion-intensity-transition"?: TransitionSpecification; "fill-extrusion-ambient-occlusion-radius"?: PropertyValueSpecification<number>; "fill-extrusion-ambient-occlusion-radius-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-ambient-occlusion-wall-radius"?: PropertyValueSpecification<number>; "fill-extrusion-ambient-occlusion-wall-radius-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-ambient-occlusion-ground-radius"?: PropertyValueSpecification<number>; "fill-extrusion-ambient-occlusion-ground-radius-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-ambient-occlusion-ground-attenuation"?: PropertyValueSpecification<number>; "fill-extrusion-ambient-occlusion-ground-attenuation-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-flood-light-color"?: PropertyValueSpecification<ColorSpecification>; "fill-extrusion-flood-light-color-transition"?: TransitionSpecification; "fill-extrusion-flood-light-color-use-theme"?: PropertyValueSpecification<string>; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-flood-light-intensity"?: PropertyValueSpecification<number>; "fill-extrusion-flood-light-intensity-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-flood-light-wall-radius"?: DataDrivenPropertyValueSpecification<number>; "fill-extrusion-flood-light-wall-radius-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-flood-light-ground-radius"?: DataDrivenPropertyValueSpecification<number>; "fill-extrusion-flood-light-ground-radius-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-flood-light-ground-attenuation"?: PropertyValueSpecification<number>; "fill-extrusion-flood-light-ground-attenuation-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-vertical-scale"?: PropertyValueSpecification<number>; "fill-extrusion-vertical-scale-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-rounded-roof"?: PropertyValueSpecification<boolean>; "fill-extrusion-cutoff-fade-range"?: number | ExpressionSpecification; "fill-extrusion-emissive-strength"?: DataDrivenPropertyValueSpecification<number>; "fill-extrusion-emissive-strength-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-line-width"?: DataDrivenPropertyValueSpecification<number>; "fill-extrusion-line-width-transition"?: TransitionSpecification; "fill-extrusion-cast-shadows"?: boolean; }; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array<AppearanceSpecification>; }; /** * @deprecated Use `FillExtrusionLayerSpecification['layout']` instead. */ export type FillExtrusionLayout = FillExtrusionLayerSpecification["layout"]; /** * @deprecated Use `FillExtrusionLayerSpecification['paint']` instead. */ export type FillExtrusionPaint = FillExtrusionLayerSpecification["paint"]; export type BuildingLayerSpecification = { "id": string; "type": "building"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "visibility"?: "visible" | "none" | ExpressionSpecification; "building-facade"?: DataDrivenPropertyValueSpecification<boolean>; "building-facade-floors"?: DataDrivenPropertyValueSpecification<number>; "building-facade-unit-width"?: DataDrivenPropertyValueSpecification<number>; "building-facade-window"?: DataDrivenPropertyValueSpecification<[ number, number ]>; "building-roof-shape"?: DataDrivenPropertyValueSpecification<"flat" | "hipped" | "gabled" | "parapet" | "mansard" | "skillion" | "pyramidal">; "building-height"?: DataDrivenPropertyValueSpecification<number>; "building-height-transition"?: TransitionSpecification; "building-base"?: DataDrivenPropertyValueSpecification<number>; "building-base-transition"?: TransitionSpecification; "building-flood-light-wall-radius"?: DataDrivenPropertyValueSpecification<number>; "building-flood-light-wall-radius-transition"?: TransitionSpecification; "building-flood-light-ground-radius"?: DataDrivenPropertyValueSpecification<number>; "building-flood-light-ground-radius-transition"?: TransitionSpecification; "building-flip-roof-orientation"?: DataDrivenPropertyValueSpecification<boolean>; "building-flip-roof-orientation-transition"?: TransitionSpecification; }; "paint"?: { "building-opacity"?: PropertyValueSpecification<number>; "building-opacity-transition"?: TransitionSpecification; "building-ambient-occlusion-intensity"?: number | ExpressionSpecification; "building-ambient-occlusion-intensity-transition"?: TransitionSpecification; "building-ambient-occlusion-ground-intensity"?: PropertyValueSpecification<number>; "building-ambient-occlusion-ground-intensity-transition"?: TransitionSpecification; "building-ambient-occlusion-ground-radius"?: PropertyValueSpecification<number>; "building-ambient-occlusion-ground-radius-transition"?: TransitionSpecification; "building-ambient-occlusion-ground-attenuation"?: PropertyValueSpecification<number>; "building-ambient-occlusion-ground-attenuation-transition"?: TransitionSpecification; "building-vertical-scale"?: PropertyValueSpecification<number>; "building-vertical-scale-transition"?: TransitionSpecification; "building-cast-shadows"?: boolean; "building-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>; "building-color-use-theme"?: PropertyValueSpecification<string>; "building-emissive-strength"?: DataDrivenPropertyValueSpecification<number>; "building-facade-emissive-chance"?: PropertyValueSpecification<number>; "building-cutoff-fade-range"?: number | ExpressionSpecification; "building-flood-light-color"?: PropertyValueSpecification<ColorSpecification>; "building-flood-light-color-transition"?: TransitionSpecification; "building-flood-light-color-use-theme"?: PropertyValueSpecification<string>; "building-flood-light-intensity"?: PropertyValueSpecification<number>; "building-flood-light-intensity-transition"?: TransitionSpecification; "building-flood-light-ground-attenuation"?: PropertyValueSpecification<number>; "building-flood-light-ground-attenuation-transition"?: TransitionSpecification; }; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array<AppearanceSpecification>; }; /** * @deprecated Use `BuildingLayerSpecification['layout']` instead. */ export type BuildingLayout = BuildingLayerSpecification["lay