UNPKG

@mapbox/mapbox-gl-style-spec

Version:

a specification for mapbox gl styles

1,151 lines (1,078 loc) 66.1 kB
// Generated code; do not edit. Edit build/generate-typed-style-spec.ts instead. import type {UnionToIntersection} from './union-to-intersection'; 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 }; // Note: doesn't capture interpolatable vs. non-interpolatable types. 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 }; // eslint-disable-next-line @typescript-eslint/no-explicit-any 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 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 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"?: 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. */ "floorplanFeaturesetId"?: ExpressionSpecification, /** * @experimental This property is experimental and subject to change in future versions. */ "buildingFeaturesetId"?: ExpressionSpecification } export type ConfigSpecification = { [_: string]: unknown } export type SchemaSpecification = { [_: string]: OptionSpecification } export type OptionSpecification = { "default": 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 VectorSourceSpecification = { "type": "vector", "url"?: string, "tiles"?: Array<string>, "bounds"?: [number, number, number, number], /** * @experimental This property is experimental and subject to change in future versions. */ "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], /** * @experimental This property is experimental and subject to change in future versions. */ "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], /** * @experimental This property is experimental and subject to change in future versions. */ "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], /** * @experimental This property is experimental and subject to change in future versions. */ "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", "maxzoom"?: number, "minzoom"?: number, "tiles"?: Array<string> } 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 }, "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> } } /** * @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>, /** * @experimental This property is experimental and subject to change in future versions. */ "line-z-offset"?: DataDrivenPropertyValueSpecification<number>, /** * @experimental This property is experimental and subject to change in future versions. */ "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"?: ExpressionSpecification, "visibility"?: "visible" | "none" | ExpressionSpecification, /** * @experimental This property is experimental and subject to change in future versions. */ "line-width-unit"?: PropertyValueSpecification<"pixels" | "meters"> }, "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"?: 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"?: PropertyValueSpecification<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 } } /** * @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"?: ExpressionSpecification, "icon-text-fit"?: DataDrivenPropertyValueSpecification<"none" | "width" | "height" | "both">, "icon-text-fit-padding"?: DataDrivenPropertyValueSpecification<[number, number, number, number]>, "icon-image"?: DataDrivenPropertyValueSpecification<ResolvedImageSpecification>, "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"?: 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"?: ExpressionSpecification, "icon-color-contrast"?: ExpressionSpecification, "icon-color-brightness-min"?: ExpressionSpecification, "icon-color-brightness-max"?: ExpressionSpecification, /** * @experimental This property is experimental and subject to change in future versions. */ "symbol-z-offset"?: DataDrivenPropertyValueSpecification<number>, "symbol-z-offset-transition"?: TransitionSpecification } } /** * @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 } } /** * @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"?: ExpressionSpecification, "heatmap-color-use-theme"?: PropertyValueSpecification<string>, "heatmap-opacity"?: PropertyValueSpecification<number>, "heatmap-opacity-transition"?: TransitionSpecification } } /** * @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"?: 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"?: 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 } } /** * @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, /** * @experimental This property is experimental and subject to change in future versions. */ "building-roof-shape"?: DataDrivenPropertyValueSpecification<"flat" | "hipped" | "gabled" | "parapet" | "mansard" | "skillion" | "pyramidal">, /** * @experimental This property is experimental and subject to change in future versions. */ "building-height"?: DataDrivenPropertyValueSpecification<number>, "building-height-transition"?: TransitionSpecification, /** * @experimental This property is experimental and subject to change in future versions. */ "building-base"?: DataDrivenPropertyValueSpecification<number>, "building-base-transition"?: TransitionSpecification }, "paint"?: { /** * @experimental This property is experimental and subject to change in future versions. */ "building-opacity"?: PropertyValueSpecification<number>, "building-opacity-transition"?: TransitionSpecification, /** * @experimental This property is experimental and subject to change in future versions. */ "building-ambient-occlusion-wall-intensity"?: PropertyValueSpecification<number>, "building-ambient-occlusion-wall-intensity-transition"?: TransitionSpecification, /** * @experimental This property is experimental and subject to change in future versions. */ "building-ambient-occlusion-ground-intensity"?: PropertyValueSpecification<number>, "building-ambient-occlusion-ground-intensity-transition"?: TransitionSpecification, /** * @experimental This property is experimental and subject to change in future versions. */ "building-ambient-occlusion-ground-radius"?: PropertyValueSpecification<number>, "building-ambient-occlusion-ground-radius-transition"?: TransitionSpecification, /** * @experimental This property is experimental and subject to change in future versions. */ "building-ambient-occlusion-ground-attenuation"?: PropertyValueSpecification<number>, "building-ambient-occlusion-ground-attenuation-transition"?: TransitionSpecification, /** * @experimental This property is experimental and subject to change in future versions. */ "building-vertical-scale"?: PropertyValueSpecification<number>, "building-vertical-scale-transition"?: TransitionSpecification, /** * @experimental This property is experimental and subject to change in future versions. */ "building-cast-shadows"?: boolean, /** * @experimental This property is experimental and subject to change in future versions. */ "building-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>, "building-color-use-theme"?: PropertyValueSpecification<string>, /** * @experimental This property is experimental and subject to change in future versions. */ "building-emissive-strength"?: DataDrivenPropertyValueSpecification<number> } } /** * @deprecated Use `BuildingLayerSpecification['layout']` instead. */ export type BuildingLayout = BuildingLayerSpecification['layout']; /** * @deprecated Use `BuildingLayerSpecification['paint']` instead. */ export type BuildingPaint = BuildingLayerSpecif