import type { UnionToIntersection } from './union-to-intersection'; export type ColorSpecification = string; export type FormattedSpecification = string; export type ResolvedImageSpecification = string; export type PromoteIdSpecification = { [_: string]: string; } | string; 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; export type TransitionSpecification = { duration?: number; delay?: number; }; export type PropertyFunctionStop = [number, T]; export type ZoomAndPropertyFunctionStop = [{ zoom: number; value: string | number | boolean; }, T]; /** * @deprecated Use [Expressions](https://docs.mapbox.com/style-spec/reference/expressions/) syntax instead. */ export type FunctionSpecification = { stops: Array | ZoomAndPropertyFunctionStop>; base?: number; property?: string; type?: 'identity' | 'exponential' | 'interval' | 'categorical'; colorSpace?: 'rgb' | 'lab' | 'hcl'; default?: T; }; export type CameraFunctionSpecification = { type: 'exponential'; stops: Array<[number, T]>; } | { type: 'interval'; stops: Array<[number, T]>; }; export type SourceFunctionSpecification = { 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 = { 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 | CameraFunctionSpecification | ExpressionSpecification; export type DataDrivenPropertyValueSpecification = T | FunctionSpecification | CameraFunctionSpecification | SourceFunctionSpecification | CompositeFunctionSpecification | ExpressionSpecification | (T extends Array ? Array : never); export type StyleSpecification = { "version": 8; "fragment"?: boolean; "name"?: string; "metadata"?: unknown; "center"?: Array; "zoom"?: number; "bearing"?: number; "pitch"?: number; "light"?: LightSpecification; "lights"?: Array; "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; "schema"?: SchemaSpecification; "sources": SourcesSpecification; "sprite"?: string; "glyphs"?: string; "transition"?: TransitionSpecification; "projection"?: ProjectionSpecification; "layers": Array; "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 LightSpecification = { "anchor"?: PropertyValueSpecification<"map" | "viewport">; "position"?: PropertyValueSpecification<[number, number, number]>; "position-transition"?: TransitionSpecification; "color"?: PropertyValueSpecification; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification; "intensity"?: PropertyValueSpecification; "intensity-transition"?: TransitionSpecification; }; export type TerrainSpecification = { "source": string; "exaggeration"?: PropertyValueSpecification; "exaggeration-transition"?: TransitionSpecification; }; export type FogSpecification = { "range"?: PropertyValueSpecification<[number, number]>; "range-transition"?: TransitionSpecification; "color"?: PropertyValueSpecification; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification; "high-color"?: PropertyValueSpecification; "high-color-transition"?: TransitionSpecification; "high-color-use-theme"?: PropertyValueSpecification; "space-color"?: PropertyValueSpecification; "space-color-transition"?: TransitionSpecification; "space-color-use-theme"?: PropertyValueSpecification; "horizon-blend"?: PropertyValueSpecification; "horizon-blend-transition"?: TransitionSpecification; "star-intensity"?: PropertyValueSpecification; "star-intensity-transition"?: TransitionSpecification; "vertical-range"?: PropertyValueSpecification<[number, number]>; "vertical-range-transition"?: TransitionSpecification; }; export type SnowSpecification = { "density"?: PropertyValueSpecification; "density-transition"?: TransitionSpecification; "intensity"?: PropertyValueSpecification; "intensity-transition"?: TransitionSpecification; "color"?: PropertyValueSpecification; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification; "opacity"?: PropertyValueSpecification; "opacity-transition"?: TransitionSpecification; "vignette"?: PropertyValueSpecification; "vignette-transition"?: TransitionSpecification; "vignette-color"?: PropertyValueSpecification; "vignette-color-transition"?: TransitionSpecification; "vignette-color-use-theme"?: PropertyValueSpecification; "center-thinning"?: PropertyValueSpecification; "center-thinning-transition"?: TransitionSpecification; "direction"?: PropertyValueSpecification<[number, number]>; "direction-transition"?: TransitionSpecification; "flake-size"?: PropertyValueSpecification; "flake-size-transition"?: TransitionSpecification; }; export type RainSpecification = { "density"?: PropertyValueSpecification; "density-transition"?: TransitionSpecification; "intensity"?: PropertyValueSpecification; "intensity-transition"?: TransitionSpecification; "color"?: PropertyValueSpecification; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification; "opacity"?: PropertyValueSpecification; "opacity-transition"?: TransitionSpecification; "vignette"?: PropertyValueSpecification; "vignette-transition"?: TransitionSpecification; "vignette-color"?: PropertyValueSpecification; "vignette-color-transition"?: TransitionSpecification; "vignette-color-use-theme"?: PropertyValueSpecification; "center-thinning"?: PropertyValueSpecification; "center-thinning-transition"?: TransitionSpecification; "direction"?: PropertyValueSpecification<[number, number]>; "direction-transition"?: TransitionSpecification; "droplet-size"?: PropertyValueSpecification<[number, number]>; "droplet-size-transition"?: TransitionSpecification; "distortion-strength"?: PropertyValueSpecification; "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; "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 = { "metadata"?: unknown; "selectors"?: Array; }; /** * @experimental This is experimental and subject to change in future versions. */ export type SelectorSpecification = { "layer": string; "properties"?: SelectorPropertySpecification; "featureNamespace"?: string; }; /** * @experimental This is experimental and subject to change in future versions. */ export type SelectorPropertySpecification = { [_: string]: unknown; }; export type VectorSourceSpecification = { "type": "vector"; "url"?: string; "tiles"?: Array; "bounds"?: [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; "bounds"?: [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; "bounds"?: [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; "bounds"?: [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; "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; }; export type SourceSpecification = VectorSourceSpecification | RasterSourceSpecification | RasterDEMSourceSpecification | RasterArraySourceSpecification | GeoJSONSourceSpecification | VideoSourceSpecification | ImageSourceSpecification | ModelSourceSpecification; export type ModelSpecification = string; export type AmbientLightSpecification = { "id": string; "properties"?: { "color"?: PropertyValueSpecification; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification; "intensity"?: PropertyValueSpecification; "intensity-transition"?: TransitionSpecification; }; "type": "ambient"; }; export type DirectionalLightSpecification = { "id": string; "properties"?: { "direction"?: PropertyValueSpecification<[number, number]>; "direction-transition"?: TransitionSpecification; "color"?: PropertyValueSpecification; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification; "intensity"?: PropertyValueSpecification; "intensity-transition"?: TransitionSpecification; "cast-shadows"?: boolean; /** * @experimental This property is experimental and subject to change in future versions. */ "shadow-quality"?: PropertyValueSpecification; "shadow-intensity"?: PropertyValueSpecification; "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; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification; "intensity"?: PropertyValueSpecification; "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; "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; }; "paint"?: { "fill-antialias"?: PropertyValueSpecification; "fill-opacity"?: DataDrivenPropertyValueSpecification; "fill-opacity-transition"?: TransitionSpecification; "fill-color"?: DataDrivenPropertyValueSpecification; "fill-color-transition"?: TransitionSpecification; "fill-color-use-theme"?: PropertyValueSpecification; "fill-outline-color"?: DataDrivenPropertyValueSpecification; "fill-outline-color-transition"?: TransitionSpecification; "fill-outline-color-use-theme"?: PropertyValueSpecification; "fill-translate"?: PropertyValueSpecification<[number, number]>; "fill-translate-transition"?: TransitionSpecification; "fill-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">; "fill-pattern"?: DataDrivenPropertyValueSpecification; "fill-emissive-strength"?: PropertyValueSpecification; "fill-emissive-strength-transition"?: TransitionSpecification; "fill-z-offset"?: DataDrivenPropertyValueSpecification; "fill-z-offset-transition"?: TransitionSpecification; }; }; /** * @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; "line-round-limit"?: PropertyValueSpecification; "line-sort-key"?: DataDrivenPropertyValueSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "line-z-offset"?: DataDrivenPropertyValueSpecification; /** * @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; "line-opacity-transition"?: TransitionSpecification; "line-color"?: DataDrivenPropertyValueSpecification; "line-color-transition"?: TransitionSpecification; "line-color-use-theme"?: PropertyValueSpecification; "line-translate"?: PropertyValueSpecification<[number, number]>; "line-translate-transition"?: TransitionSpecification; "line-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">; "line-width"?: DataDrivenPropertyValueSpecification; "line-width-transition"?: TransitionSpecification; "line-gap-width"?: DataDrivenPropertyValueSpecification; "line-gap-width-transition"?: TransitionSpecification; "line-offset"?: DataDrivenPropertyValueSpecification; "line-offset-transition"?: TransitionSpecification; "line-blur"?: DataDrivenPropertyValueSpecification; "line-blur-transition"?: TransitionSpecification; "line-dasharray"?: DataDrivenPropertyValueSpecification>; "line-pattern"?: DataDrivenPropertyValueSpecification; "line-gradient"?: ExpressionSpecification; "line-gradient-use-theme"?: PropertyValueSpecification; "line-trim-offset"?: [number, number]; /** * @experimental This property is experimental and subject to change in future versions. */ "line-trim-fade-range"?: PropertyValueSpecification<[number, number]>; "line-trim-color"?: PropertyValueSpecification; "line-trim-color-transition"?: TransitionSpecification; "line-trim-color-use-theme"?: PropertyValueSpecification; "line-emissive-strength"?: PropertyValueSpecification; "line-emissive-strength-transition"?: TransitionSpecification; "line-border-width"?: DataDrivenPropertyValueSpecification; "line-border-width-transition"?: TransitionSpecification; "line-border-color"?: DataDrivenPropertyValueSpecification; "line-border-color-transition"?: TransitionSpecification; "line-border-color-use-theme"?: PropertyValueSpecification; "line-occlusion-opacity"?: PropertyValueSpecification; "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; "symbol-avoid-edges"?: PropertyValueSpecification; "symbol-sort-key"?: DataDrivenPropertyValueSpecification; "symbol-z-order"?: PropertyValueSpecification<"auto" | "viewport-y" | "source">; "symbol-z-elevate"?: PropertyValueSpecification; /** * @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; "icon-ignore-placement"?: PropertyValueSpecification; "icon-optional"?: PropertyValueSpecification; "icon-rotation-alignment"?: PropertyValueSpecification<"map" | "viewport" | "auto">; "icon-size"?: DataDrivenPropertyValueSpecification; /** * @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; "icon-rotate"?: DataDrivenPropertyValueSpecification; "icon-padding"?: PropertyValueSpecification; "icon-keep-upright"?: PropertyValueSpecification; "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; "text-font"?: DataDrivenPropertyValueSpecification>; "text-size"?: DataDrivenPropertyValueSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "text-size-scale-range"?: ExpressionSpecification; "text-max-width"?: DataDrivenPropertyValueSpecification; "text-line-height"?: DataDrivenPropertyValueSpecification; "text-letter-spacing"?: DataDrivenPropertyValueSpecification; "text-justify"?: DataDrivenPropertyValueSpecification<"auto" | "left" | "center" | "right">; "text-radial-offset"?: DataDrivenPropertyValueSpecification; "text-variable-anchor"?: PropertyValueSpecification>; "text-anchor"?: DataDrivenPropertyValueSpecification<"center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right">; "text-max-angle"?: PropertyValueSpecification; "text-writing-mode"?: PropertyValueSpecification>; "text-rotate"?: DataDrivenPropertyValueSpecification; "text-padding"?: PropertyValueSpecification; "text-keep-upright"?: PropertyValueSpecification; "text-transform"?: DataDrivenPropertyValueSpecification<"none" | "uppercase" | "lowercase">; "text-offset"?: DataDrivenPropertyValueSpecification<[number, number]>; "text-allow-overlap"?: PropertyValueSpecification; "text-ignore-placement"?: PropertyValueSpecification; "text-optional"?: PropertyValueSpecification; "visibility"?: "visible" | "none" | ExpressionSpecification; }; "paint"?: { "icon-opacity"?: DataDrivenPropertyValueSpecification; "icon-opacity-transition"?: TransitionSpecification; "icon-occlusion-opacity"?: DataDrivenPropertyValueSpecification; "icon-occlusion-opacity-transition"?: TransitionSpecification; "icon-emissive-strength"?: DataDrivenPropertyValueSpecification; "icon-emissive-strength-transition"?: TransitionSpecification; "text-emissive-strength"?: DataDrivenPropertyValueSpecification; "text-emissive-strength-transition"?: TransitionSpecification; "icon-color"?: DataDrivenPropertyValueSpecification; "icon-color-transition"?: TransitionSpecification; "icon-color-use-theme"?: PropertyValueSpecification; "icon-halo-color"?: DataDrivenPropertyValueSpecification; "icon-halo-color-transition"?: TransitionSpecification; "icon-halo-color-use-theme"?: PropertyValueSpecification; "icon-halo-width"?: DataDrivenPropertyValueSpecification; "icon-halo-width-transition"?: TransitionSpecification; "icon-halo-blur"?: DataDrivenPropertyValueSpecification; "icon-halo-blur-transition"?: TransitionSpecification; "icon-translate"?: PropertyValueSpecification<[number, number]>; "icon-translate-transition"?: TransitionSpecification; "icon-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">; "icon-image-cross-fade"?: DataDrivenPropertyValueSpecification; "icon-image-cross-fade-transition"?: TransitionSpecification; "text-opacity"?: DataDrivenPropertyValueSpecification; "text-opacity-transition"?: TransitionSpecification; "text-occlusion-opacity"?: DataDrivenPropertyValueSpecification; "text-occlusion-opacity-transition"?: TransitionSpecification; "text-color"?: DataDrivenPropertyValueSpecification; "text-color-transition"?: TransitionSpecification; "text-color-use-theme"?: PropertyValueSpecification; "text-halo-color"?: DataDrivenPropertyValueSpecification; "text-halo-color-transition"?: TransitionSpecification; "text-halo-color-use-theme"?: PropertyValueSpecification; "text-halo-width"?: DataDrivenPropertyValueSpecification; "text-halo-width-transition"?: TransitionSpecification; "text-halo-blur"?: DataDrivenPropertyValueSpecification; "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; "symbol-z-offset"?: DataDrivenPropertyValueSpecification; "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; "visibility"?: "visible" | "none" | ExpressionSpecification; }; "paint"?: { "circle-radius"?: DataDrivenPropertyValueSpecification; "circle-radius-transition"?: TransitionSpecification; "circle-color"?: DataDrivenPropertyValueSpecification; "circle-color-transition"?: TransitionSpecification; "circle-color-use-theme"?: PropertyValueSpecification; "circle-blur"?: DataDrivenPropertyValueSpecification; "circle-blur-transition"?: TransitionSpecification; "circle-opacity"?: DataDrivenPropertyValueSpecification; "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; "circle-stroke-width-transition"?: TransitionSpecification; "circle-stroke-color"?: DataDrivenPropertyValueSpecification; "circle-stroke-color-transition"?: TransitionSpecification; "circle-stroke-color-use-theme"?: PropertyValueSpecification; "circle-stroke-opacity"?: DataDrivenPropertyValueSpecification; "circle-stroke-opacity-transition"?: TransitionSpecification; "circle-emissive-strength"?: PropertyValueSpecification; "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; "heatmap-radius-transition"?: TransitionSpecification; "heatmap-weight"?: DataDrivenPropertyValueSpecification; "heatmap-intensity"?: PropertyValueSpecification; "heatmap-intensity-transition"?: TransitionSpecification; "heatmap-color"?: ExpressionSpecification; "heatmap-color-use-theme"?: PropertyValueSpecification; "heatmap-opacity"?: PropertyValueSpecification; "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; "fill-extrusion-opacity-transition"?: TransitionSpecification; "fill-extrusion-color"?: DataDrivenPropertyValueSpecification; "fill-extrusion-color-transition"?: TransitionSpecification; "fill-extrusion-color-use-theme"?: PropertyValueSpecification; "fill-extrusion-translate"?: PropertyValueSpecification<[number, number]>; "fill-extrusion-translate-transition"?: TransitionSpecification; "fill-extrusion-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">; "fill-extrusion-pattern"?: DataDrivenPropertyValueSpecification; "fill-extrusion-height"?: DataDrivenPropertyValueSpecification; "fill-extrusion-height-transition"?: TransitionSpecification; "fill-extrusion-base"?: DataDrivenPropertyValueSpecification; "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; "fill-extrusion-ambient-occlusion-intensity"?: PropertyValueSpecification; "fill-extrusion-ambient-occlusion-intensity-transition"?: TransitionSpecification; "fill-extrusion-ambient-occlusion-radius"?: PropertyValueSpecification; "fill-extrusion-ambient-occlusion-radius-transition"?: TransitionSpecification; "fill-extrusion-ambient-occlusion-wall-radius"?: PropertyValueSpecification; "fill-extrusion-ambient-occlusion-wall-radius-transition"?: TransitionSpecification; "fill-extrusion-ambient-occlusion-ground-radius"?: PropertyValueSpecification; "fill-extrusion-ambient-occlusion-ground-radius-transition"?: TransitionSpecification; "fill-extrusion-ambient-occlusion-ground-attenuation"?: PropertyValueSpecification; "fill-extrusion-ambient-occlusion-ground-attenuation-transition"?: TransitionSpecification; "fill-extrusion-flood-light-color"?: PropertyValueSpecification; "fill-extrusion-flood-light-color-transition"?: TransitionSpecification; "fill-extrusion-flood-light-color-use-theme"?: PropertyValueSpecification; "fill-extrusion-flood-light-intensity"?: PropertyValueSpecification; "fill-extrusion-flood-light-intensity-transition"?: TransitionSpecification; "fill-extrusion-flood-light-wall-radius"?: DataDrivenPropertyValueSpecification; "fill-extrusion-flood-light-wall-radius-transition"?: TransitionSpecification; "fill-extrusion-flood-light-ground-radius"?: DataDrivenPropertyValueSpecification; "fill-extrusion-flood-light-ground-radius-transition"?: TransitionSpecification; "fill-extrusion-flood-light-ground-attenuation"?: PropertyValueSpecification; "fill-extrusion-flood-light-ground-attenuation-transition"?: TransitionSpecification; "fill-extrusion-vertical-scale"?: PropertyValueSpecification; "fill-extrusion-vertical-scale-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-rounded-roof"?: PropertyValueSpecification; "fill-extrusion-cutoff-fade-range"?: ExpressionSpecification; "fill-extrusion-emissive-strength"?: DataDrivenPropertyValueSpecification; "fill-extrusion-emissive-strength-transition"?: TransitionSpecification; "fill-extrusion-line-width"?: DataDrivenPropertyValueSpecification; "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 RasterLayerSpecification = { "id": string; "type": "raster"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "visibility"?: "visible" | "none" | ExpressionSpecification; }; "paint"?: { "raster-opacity"?: PropertyValueSpecification; "raster-opacity-transition"?: TransitionSpecification; "raster-color"?: ExpressionSpecification; "raster-color-use-theme"?: PropertyValueSpecification; "raster-color-mix"?: PropertyValueSpecification<[number, number, number, number]>; "raster-color-mix-transition"?: TransitionSpecification; "raster-color-range"?: PropertyValueSpecification<[number, number]>; "raster-color-range-transition"?: TransitionSpecification; "raster-hue-rotate"?: PropertyValueSpecification; "raster-hue-rotate-transition"?: TransitionSpecification; "raster-brightness-min"?: PropertyValueSpecification; "raster-brightness-min-transition"?: TransitionSpecification; "raster-brightness-max"?: PropertyValueSpecification; "raster-brightness-max-transition"?: TransitionSpecification; "raster-saturation"?: PropertyValueSpecification; "raster-saturation-transition"?: TransitionSpecification; "raster-contrast"?: PropertyValueSpecification; "raster-contrast-transition"?: TransitionSpecification; "raster-resampling"?: PropertyValueSpecification<"linear" | "nearest">; "raster-fade-duration"?: PropertyValueSpecification; "raster-emissive-strength"?: PropertyValueSpecification; "raster-emissive-strength-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "raster-array-band"?: string; "raster-elevation"?: PropertyValueSpecification; "raster-elevation-transition"?: TransitionSpecification; }; }; /** * @deprecated Use `RasterLayerSpecification['layout']` instead. */ export type RasterLayout = RasterLayerSpecification['layout']; /** * @deprecated Use `RasterLayerSpecification['paint']` instead. */ export type RasterPaint = RasterLayerSpecification['paint']; export type RasterParticleLayerSpecification = { "id": string; "type": "raster-particle"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "visibility"?: "visible" | "none" | ExpressionSpecification; }; "paint"?: { "raster-particle-array-band"?: string; "raster-particle-count"?: number; "raster-particle-color"?: ExpressionSpecification; "raster-particle-color-use-theme"?: PropertyValueSpecification; "raster-particle-max-speed"?: number; "raster-particle-speed-factor"?: PropertyValueSpecification; "raster-particle-speed-factor-transition"?: TransitionSpecification; "raster-particle-fade-opacity-factor"?: PropertyValueSpecification; "raster-particle-fade-opacity-factor-transition"?: TransitionSpecification; "raster-particle-reset-rate-factor"?: number; "raster-particle-elevation"?: PropertyValueSpecification; "raster-particle-elevation-transition"?: TransitionSpecification; }; }; /** * @deprecated Use `RasterParticleLayerSpecification['layout']` instead. */ export type RasterParticleLayout = RasterParticleLayerSpecification['layout']; /** * @deprecated Use `RasterParticleLayerSpecification['paint']` instead. */ export type RasterParticlePaint = RasterParticleLayerSpecification['paint']; export type HillshadeLayerSpecification = { "id": string; "type": "hillshade"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "visibility"?: "visible" | "none" | ExpressionSpecification; }; "paint"?: { "hillshade-illumination-direction"?: PropertyValueSpecification; "hillshade-illumination-anchor"?: PropertyValueSpecification<"map" | "viewport">; "hillshade-exaggeration"?: PropertyValueSpecification; "hillshade-exaggeration-transition"?: TransitionSpecification; "hillshade-shadow-color"?: PropertyValueSpecification; "hillshade-shadow-color-transition"?: TransitionSpecification; "hillshade-shadow-color-use-theme"?: PropertyValueSpecification; "hillshade-highlight-color"?: PropertyValueSpecification; "hillshade-highlight-color-transition"?: TransitionSpecification; "hillshade-highlight-color-use-theme"?: PropertyValueSpecification; "hillshade-accent-color"?: PropertyValueSpecification; "hillshade-accent-color-transition"?: TransitionSpecification; "hillshade-accent-color-use-theme"?: PropertyValueSpecification; "hillshade-emissive-strength"?: PropertyValueSpecification; "hillshade-emissive-strength-transition"?: TransitionSpecification; }; }; /** * @deprecated Use `HillshadeLayerSpecification['layout']` instead. */ export type HillshadeLayout = HillshadeLayerSpecification['layout']; /** * @deprecated Use `HillshadeLayerSpecification['paint']` instead. */ export type HillshadePaint = HillshadeLayerSpecification['paint']; export type ModelLayerSpecification = { "id": string; "type": "model"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "visibility"?: "visible" | "none" | ExpressionSpecification; "model-id"?: DataDrivenPropertyValueSpecification; }; "paint"?: { "model-opacity"?: DataDrivenPropertyValueSpecification; "model-opacity-transition"?: TransitionSpecification; "model-rotation"?: DataDrivenPropertyValueSpecification<[number, number, number]>; "model-rotation-transition"?: TransitionSpecification; "model-scale"?: DataDrivenPropertyValueSpecification<[number, number, number]>; "model-scale-transition"?: TransitionSpecification; "model-translation"?: DataDrivenPropertyValueSpecification<[number, number, number]>; "model-translation-transition"?: TransitionSpecification; "model-color"?: DataDrivenPropertyValueSpecification; "model-color-transition"?: TransitionSpecification; "model-color-use-theme"?: PropertyValueSpecification; "model-color-mix-intensity"?: DataDrivenPropertyValueSpecification; "model-color-mix-intensity-transition"?: TransitionSpecification; "model-type"?: "common-3d" | "location-indicator"; "model-cast-shadows"?: boolean; "model-receive-shadows"?: boolean; "model-ambient-occlusion-intensity"?: PropertyValueSpecification; "model-ambient-occlusion-intensity-transition"?: TransitionSpecification; "model-emissive-strength"?: DataDrivenPropertyValueSpecification; "model-emissive-strength-transition"?: TransitionSpecification; "model-roughness"?: DataDrivenPropertyValueSpecification; "model-roughness-transition"?: TransitionSpecification; "model-height-based-emissive-strength-multiplier"?: DataDrivenPropertyValueSpecification<[number, number, number, number, number]>; "model-height-based-emissive-strength-multiplier-transition"?: TransitionSpecification; "model-cutoff-fade-range"?: ExpressionSpecification; "model-front-cutoff"?: PropertyValueSpecification<[number, number, number]>; }; }; /** * @deprecated Use `ModelLayerSpecification['layout']` instead. */ export type ModelLayout = ModelLayerSpecification['layout']; /** * @deprecated Use `ModelLayerSpecification['paint']` instead. */ export type ModelPaint = ModelLayerSpecification['paint']; export type BackgroundLayerSpecification = { "id": string; "type": "background"; "metadata"?: unknown; "source"?: never; "source-layer"?: never; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: never; "layout"?: { "visibility"?: "visible" | "none" | ExpressionSpecification; }; "paint"?: { /** * @experimental This property is experimental and subject to change in future versions. */ "background-pitch-alignment"?: "map" | "viewport" | ExpressionSpecification; "background-color"?: PropertyValueSpecification; "background-color-transition"?: TransitionSpecification; "background-color-use-theme"?: PropertyValueSpecification; "background-pattern"?: PropertyValueSpecification; "background-opacity"?: PropertyValueSpecification; "background-opacity-transition"?: TransitionSpecification; "background-emissive-strength"?: PropertyValueSpecification; "background-emissive-strength-transition"?: TransitionSpecification; }; }; /** * @deprecated Use `BackgroundLayerSpecification['layout']` instead. */ export type BackgroundLayout = BackgroundLayerSpecification['layout']; /** * @deprecated Use `BackgroundLayerSpecification['paint']` instead. */ export type BackgroundPaint = BackgroundLayerSpecification['paint']; export type SkyLayerSpecification = { "id": string; "type": "sky"; "metadata"?: unknown; "source"?: never; "source-layer"?: never; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: never; "layout"?: { "visibility"?: "visible" | "none" | ExpressionSpecification; }; "paint"?: { "sky-type"?: PropertyValueSpecification<"gradient" | "atmosphere">; "sky-atmosphere-sun"?: PropertyValueSpecification<[number, number]>; "sky-atmosphere-sun-intensity"?: number; "sky-gradient-center"?: PropertyValueSpecification<[number, number]>; "sky-gradient-radius"?: PropertyValueSpecification; "sky-gradient"?: ExpressionSpecification; "sky-gradient-use-theme"?: PropertyValueSpecification; "sky-atmosphere-halo-color"?: ColorSpecification; "sky-atmosphere-halo-color-use-theme"?: PropertyValueSpecification; "sky-atmosphere-color"?: ColorSpecification; "sky-atmosphere-color-use-theme"?: PropertyValueSpecification; "sky-opacity"?: PropertyValueSpecification; "sky-opacity-transition"?: TransitionSpecification; }; }; /** * @deprecated Use `SkyLayerSpecification['layout']` instead. */ export type SkyLayout = SkyLayerSpecification['layout']; /** * @deprecated Use `SkyLayerSpecification['paint']` instead. */ export type SkyPaint = SkyLayerSpecification['paint']; export type SlotLayerSpecification = { "id": string; "type": "slot"; "metadata"?: unknown; "source"?: never; "source-layer"?: never; "slot"?: string; "minzoom"?: never; "maxzoom"?: never; "filter"?: never; "layout"?: never; "paint"?: never; }; export type ClipLayerSpecification = { "id": string; "type": "clip"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "clip-layer-types"?: ExpressionSpecification; "clip-layer-scope"?: ExpressionSpecification; }; "paint"?: never; }; /** * @deprecated Use `ClipLayerSpecification['layout']` instead. */ export type ClipLayout = ClipLayerSpecification['layout']; export type LayerSpecification = FillLayerSpecification | LineLayerSpecification | SymbolLayerSpecification | CircleLayerSpecification | HeatmapLayerSpecification | FillExtrusionLayerSpecification | RasterLayerSpecification | RasterParticleLayerSpecification | HillshadeLayerSpecification | ModelLayerSpecification | BackgroundLayerSpecification | SkyLayerSpecification | SlotLayerSpecification | ClipLayerSpecification; export type LayoutSpecification = UnionToIntersection>; export type PaintSpecification = UnionToIntersection>; export type Layer = Pick; /** * @deprecated Use `StyleSpecification` instead. */ export type Style = StyleSpecification; /** * @deprecated Use `LayerSpecification` instead. */ export type AnyLayer = LayerSpecification; /** * @deprecated Use `FillLayerSpecification` instead. */ export type FillLayer = FillLayerSpecification; /** * @deprecated Use `LineLayerSpecification` instead. */ export type LineLayer = LineLayerSpecification; /** * @deprecated Use `SymbolLayerSpecification` instead. */ export type SymbolLayer = SymbolLayerSpecification; /** * @deprecated Use `CircleLayerSpecification` instead. */ export type CircleLayer = CircleLayerSpecification; /** * @deprecated Use `HeatmapLayerSpecification` instead. */ export type HeatmapLayer = HeatmapLayerSpecification; /** * @deprecated Use `FillExtrusionLayerSpecification` instead. */ export type FillExtrusionLayer = FillExtrusionLayerSpecification; /** * @deprecated Use `RasterLayerSpecification` instead. */ export type RasterLayer = RasterLayerSpecification; /** * @deprecated Use `RasterParticleLayerSpecification` instead. */ export type RasterParticleLayer = RasterParticleLayerSpecification; /** * @deprecated Use `HillshadeLayerSpecification` instead. */ export type HillshadeLayer = HillshadeLayerSpecification; /** * @deprecated Use `ModelLayerSpecification` instead. */ export type ModelLayer = ModelLayerSpecification; /** * @deprecated Use `BackgroundLayerSpecification` instead. */ export type BackgroundLayer = BackgroundLayerSpecification; /** * @deprecated Use `SkyLayerSpecification` instead. */ export type SkyLayer = SkyLayerSpecification; /** * @deprecated Use `SlotLayerSpecification` instead. */ export type SlotLayer = SlotLayerSpecification; /** * @deprecated Use `ClipLayerSpecification` instead. */ export type ClipLayer = ClipLayerSpecification; /** * @deprecated Use `LayoutSpecification` instead. */ export type AnyLayout = LayoutSpecification; /** * @deprecated Use `PaintSpecification` instead. */ export type AnyPaint = PaintSpecification; /** * @deprecated Use `ExpressionSpecification` instead. */ export type Expression = ExpressionSpecification; /** * @deprecated Use `TransitionSpecification` instead. */ export type Transition = TransitionSpecification; /** * @deprecated Use `SourceSpecification` instead. */ export type AnySourceData = SourceSpecification; /** * @deprecated Use `SourcesSpecification` instead. */ export type Sources = SourcesSpecification; /** * @deprecated Use `ProjectionSpecification` instead. */ export type Projection = ProjectionSpecification; //# sourceMappingURL=types.d.ts.map