@mapbox/mapbox-gl-style-spec
Version:
a specification for mapbox gl styles
1,151 lines (1,078 loc) • 66.1 kB
text/typescript
// 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