import Point from '@mapbox/point-geometry'; type StyleReference = Record; declare const _default: StyleReference; /** * Format a Mapbox GL Style. Returns a stringified style with its keys * sorted in the same order as the reference style. * * The optional `space` argument is passed to * [`JSON.stringify`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) * to generate formatted output. * * If `space` is unspecified, a default of `2` spaces will be used. * * @private * @param {Object} style a Mapbox GL Style * @param {number} [space] space argument to pass to `JSON.stringify` * @returns {string} stringified formatted JSON * @example * var fs = require('fs'); * var format = require('mapbox-gl-style-spec').format; * var style = fs.readFileSync('./source.json', 'utf8'); * fs.writeFileSync('./dest.json', format(style)); * fs.writeFileSync('./dest.min.json', format(style, 0)); */ export declare function format(style: any, space?: number): string; type ColorSpecification = string; type FormattedSpecification = string; type ResolvedImageSpecification = string; type PromoteIdSpecification = { [_: string]: string | ExpressionSpecification; } | string | ExpressionSpecification; 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; type TransitionSpecification = { duration?: number; delay?: number; }; type PropertyFunctionStop = [ number, T ]; type ZoomAndPropertyFunctionStop = [ { zoom: number; value: string | number | boolean; }, T ]; type FunctionSpecification = { stops: Array | ZoomAndPropertyFunctionStop>; base?: number; property?: string; type?: "identity" | "exponential" | "interval" | "categorical"; colorSpace?: "rgb" | "lab" | "hcl"; default?: T; }; type CameraFunctionSpecification = { type: "exponential"; stops: Array<[ number, T ]>; } | { type: "interval"; stops: Array<[ number, T ]>; }; 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; }; 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; }; type ExpressionSpecification = [ string, ...any[] ]; type PropertyValueSpecification = T | CameraFunctionSpecification | ExpressionSpecification; type DataDrivenPropertyValueSpecification = T | FunctionSpecification | CameraFunctionSpecification | SourceFunctionSpecification | CompositeFunctionSpecification | ExpressionSpecification | (T extends Array ? Array : never); 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; /** * @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; "models"?: ModelsSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "featuresets"?: FeaturesetsSpecification; }; type SourcesSpecification = { [_: string]: SourceSpecification; }; type ModelsSpecification = { [_: string]: ModelSpecification; }; type ModelNodeOverrideSpecification = { "orientation"?: [ number, number, number ]; }; type ModelNodeOverridesSpecification = { [_: string]: ModelNodeOverrideSpecification; }; type ModelMaterialOverrideSpecification = { "model-color"?: ColorSpecification; "model-color-mix-intensity"?: number; "model-opacity"?: number; "model-emissive-strength"?: number; }; type ModelMaterialOverridesSpecification = { [_: string]: ModelMaterialOverrideSpecification; }; type ModelSourceModelsSpecification = { [_: string]: ModelSourceModelSpecification; }; type ModelSourceModelSpecification = { "uri": string; "position"?: [ number, number ]; "orientation"?: [ number, number, number ]; "nodeOverrides"?: ModelNodeOverridesSpecification; "materialOverrides"?: ModelMaterialOverridesSpecification; "nodeOverrideNames"?: Array; "materialOverrideNames"?: Array; "featureProperties"?: unknown; }; type IconsetsSpecification = { [_: string]: IconsetSpecification; }; 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; }; type TerrainSpecification = { "source": string; "exaggeration"?: PropertyValueSpecification; "exaggeration-transition"?: TransitionSpecification; }; 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; }; type SnowSpecification = { /** * @experimental This property is experimental and subject to change in future versions. */ "density"?: PropertyValueSpecification; "density-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "intensity"?: PropertyValueSpecification; "intensity-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "color"?: PropertyValueSpecification; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "opacity"?: PropertyValueSpecification; "opacity-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "vignette"?: PropertyValueSpecification; "vignette-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "vignette-color"?: PropertyValueSpecification; "vignette-color-transition"?: TransitionSpecification; "vignette-color-use-theme"?: PropertyValueSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "center-thinning"?: PropertyValueSpecification; "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; "flake-size-transition"?: TransitionSpecification; }; type RainSpecification = { /** * @experimental This property is experimental and subject to change in future versions. */ "density"?: PropertyValueSpecification; "density-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "intensity"?: PropertyValueSpecification; "intensity-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "color"?: PropertyValueSpecification; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "opacity"?: PropertyValueSpecification; "opacity-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "vignette"?: PropertyValueSpecification; "vignette-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "vignette-color"?: PropertyValueSpecification; "vignette-color-transition"?: TransitionSpecification; "vignette-color-use-theme"?: PropertyValueSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "center-thinning"?: PropertyValueSpecification; "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; "distortion-strength-transition"?: TransitionSpecification; }; type CameraSpecification = { "camera-projection"?: PropertyValueSpecification<"perspective" | "orthographic">; "camera-projection-transition"?: TransitionSpecification; }; type ColorThemeSpecification = { "data"?: ExpressionSpecification; }; type ProjectionSpecification = { "name": "albers" | "equalEarth" | "equirectangular" | "lambertConformalConic" | "mercator" | "naturalEarth" | "winkelTripel" | "globe"; "center"?: [ number, number ]; "parallels"?: [ number, number ]; }; type ImportSpecification = { "id": string; "url": string; "config"?: ConfigSpecification; "data"?: StyleSpecification; "color-theme"?: ColorThemeSpecification | null | undefined; }; type IndoorSpecification = { /** * @experimental This property is experimental and subject to change in future versions. */ [_: string]: IndoorSourceSpecification; }; type IndoorSourceSpecification = { /** * @experimental This property is experimental and subject to change in future versions. */ "sourceId"?: string; /** * @experimental This property is experimental and subject to change in future versions. */ "sourceLayers"?: Array; }; type ConfigSpecification = { [_: string]: unknown; }; type SchemaSpecification = { [_: string]: OptionSpecification; }; type OptionSpecification = { "default": ExpressionSpecification; "type"?: "string" | "number" | "boolean" | "color"; "array"?: boolean; "minValue"?: number; "maxValue"?: number; "stepValue"?: number; "values"?: Array; "metadata"?: unknown; }; type FeaturesetsSpecification = { [_: string]: FeaturesetSpecification; }; 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; }; 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; }; type SelectorPropertySpecification = { /** * @experimental This property is experimental and subject to change in future versions. */ [_: string]: unknown; }; type AppearanceSpecification = { "condition"?: DataDrivenPropertyValueSpecification; "name"?: string; "properties"?: unknown; }; type VectorSourceSpecification = { "type": "vector"; "url"?: string; "tiles"?: Array; "bounds"?: [ number, number, number, number ]; "extra_bounds"?: Array<[ number, number, number, number ]>; "scheme"?: "xyz" | "tms"; "minzoom"?: number; "maxzoom"?: number; "attribution"?: string; "promoteId"?: PromoteIdSpecification; "volatile"?: boolean; [_: string]: unknown; }; type RasterSourceSpecification = { "type": "raster"; "url"?: string; "tiles"?: Array; "bounds"?: [ number, number, number, number ]; "extra_bounds"?: Array<[ number, number, number, number ]>; "minzoom"?: number; "maxzoom"?: number; "tileSize"?: number; "scheme"?: "xyz" | "tms"; "attribution"?: string; "volatile"?: boolean; [_: string]: unknown; }; type RasterDEMSourceSpecification = { "type": "raster-dem"; "url"?: string; "tiles"?: Array; "bounds"?: [ number, number, number, number ]; "extra_bounds"?: Array<[ number, number, number, number ]>; "minzoom"?: number; "maxzoom"?: number; "tileSize"?: number; "attribution"?: string; "encoding"?: "terrarium" | "mapbox"; "volatile"?: boolean; [_: string]: unknown; }; type RasterArraySourceSpecification = { "type": "raster-array"; "url"?: string; "tiles"?: Array; "bounds"?: [ number, number, number, number ]; "extra_bounds"?: Array<[ number, number, number, number ]>; "minzoom"?: number; "maxzoom"?: number; "tileSize"?: number; "attribution"?: string; "rasterLayers"?: unknown; "volatile"?: boolean; [_: string]: unknown; }; 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; }; type VideoSourceSpecification = { "type": "video"; "urls": Array; "coordinates": [ [ number, number ], [ number, number ], [ number, number ], [ number, number ] ]; }; type ImageSourceSpecification = { "type": "image"; "url"?: string; "coordinates": [ [ number, number ], [ number, number ], [ number, number ], [ number, number ] ]; }; type ModelSourceSpecification = { "type": "model" | "batched-model"; "maxzoom"?: number; "minzoom"?: number; "tiles"?: Array; "models"?: ModelSourceModelsSpecification; }; type SourceSpecification = VectorSourceSpecification | RasterSourceSpecification | RasterDEMSourceSpecification | RasterArraySourceSpecification | GeoJSONSourceSpecification | VideoSourceSpecification | ImageSourceSpecification | ModelSourceSpecification; type IconsetSpecification = { "type": "sprite"; "url": string; } | { "type": "source"; "source": string; }; type ModelSpecification = string; type AmbientLightSpecification = { "id": string; "properties"?: { "color"?: PropertyValueSpecification; "color-transition"?: TransitionSpecification; "color-use-theme"?: PropertyValueSpecification; "intensity"?: PropertyValueSpecification; "intensity-transition"?: TransitionSpecification; }; "type": "ambient"; }; 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"; }; 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"; }; type LightsSpecification = AmbientLightSpecification | DirectionalLightSpecification | FlatLightSpecification; 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; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-construct-bridge-guard-rail"?: DataDrivenPropertyValueSpecification; }; "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-pattern-cross-fade"?: PropertyValueSpecification; "fill-emissive-strength"?: PropertyValueSpecification; "fill-emissive-strength-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-z-offset"?: DataDrivenPropertyValueSpecification; "fill-z-offset-transition"?: TransitionSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-bridge-guard-rail-color"?: DataDrivenPropertyValueSpecification; "fill-bridge-guard-rail-color-transition"?: TransitionSpecification; "fill-bridge-guard-rail-color-use-theme"?: PropertyValueSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-tunnel-structure-color"?: DataDrivenPropertyValueSpecification; "fill-tunnel-structure-color-transition"?: TransitionSpecification; "fill-tunnel-structure-color-use-theme"?: PropertyValueSpecification; }; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array; }; 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-pattern-cross-fade"?: PropertyValueSpecification; "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 ]>; /** * @experimental This property is experimental and subject to change in future versions. */ "line-trim-color"?: PropertyValueSpecification; "line-trim-color-transition"?: TransitionSpecification; "line-trim-color-use-theme"?: PropertyValueSpecification; "line-emissive-strength"?: DataDrivenPropertyValueSpecification; "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; }; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array; }; 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-image-use-theme"?: PropertyValueSpecification; "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"?: PropertyValueSpecification; "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; /** * @experimental This property is experimental and subject to change in future versions. */ "symbol-z-offset"?: DataDrivenPropertyValueSpecification; "symbol-z-offset-transition"?: TransitionSpecification; }; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array; }; 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; /** * @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; "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; }; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array; }; 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; }; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array; }; 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-pattern-cross-fade"?: PropertyValueSpecification; "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; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-ambient-occlusion-wall-radius"?: PropertyValueSpecification; "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; "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; "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; "fill-extrusion-flood-light-color-transition"?: TransitionSpecification; "fill-extrusion-flood-light-color-use-theme"?: PropertyValueSpecification; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-flood-light-intensity"?: PropertyValueSpecification; "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; "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; "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; "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; "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; /** * @experimental This property is experimental and subject to change in future versions. */ "fill-extrusion-line-width"?: DataDrivenPropertyValueSpecification; "fill-extrusion-line-width-transition"?: TransitionSpecification; "fill-extrusion-cast-shadows"?: boolean; }; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array; }; type BuildingLayerSpecification = { "id": string; "type": "building"; "metadata"?: unknown; "source": string; "source-layer"?: string; "slot"?: string; "minzoom"?: number; "maxzoom"?: number; "filter"?: FilterSpecification; "layout"?: { "visibility"?: "visible" | "none" | ExpressionSpecification; "building-facade"?: DataDrivenPropertyValueSpecification; "building-facade-floors"?: DataDrivenPropertyValueSpecification; "building-facade-unit-width"?: DataDrivenPropertyValueSpecification; "building-facade-window"?: DataDrivenPropertyValueSpecification<[ number, number ]>; "building-roof-shape"?: DataDrivenPropertyValueSpecification<"flat" | "hipped" | "gabled" | "parapet" | "mansard" | "skillion" | "pyramidal">; "building-height"?: DataDrivenPropertyValueSpecification; "building-height-transition"?: TransitionSpecification; "building-base"?: DataDrivenPropertyValueSpecification; "building-base-transition"?: TransitionSpecification; "building-flood-light-wall-radius"?: DataDrivenPropertyValueSpecification; "building-flood-light-wall-radius-transition"?: TransitionSpecification; "building-flood-light-ground-radius"?: DataDrivenPropertyValueSpecification; "building-flood-light-ground-radius-transition"?: TransitionSpecification; "building-flip-roof-orientation"?: DataDrivenPropertyValueSpecification; "building-flip-roof-orientation-transition"?: TransitionSpecification; }; "paint"?: { "building-opacity"?: PropertyValueSpecification; "building-opacity-transition"?: TransitionSpecification; "building-ambient-occlusion-intensity"?: ExpressionSpecification; "building-ambient-occlusion-intensity-transition"?: TransitionSpecification; "building-ambient-occlusion-ground-intensity"?: PropertyValueSpecification; "building-ambient-occlusion-ground-intensity-transition"?: TransitionSpecification; "building-ambient-occlusion-ground-radius"?: PropertyValueSpecification; "building-ambient-occlusion-ground-radius-transition"?: TransitionSpecification; "building-ambient-occlusion-ground-attenuation"?: PropertyValueSpecification; "building-ambient-occlusion-ground-attenuation-transition"?: TransitionSpecification; "building-vertical-scale"?: PropertyValueSpecification; "building-vertical-scale-transition"?: TransitionSpecification; "building-cast-shadows"?: boolean; "building-color"?: DataDrivenPropertyValueSpecification; "building-color-use-theme"?: PropertyValueSpecification; "building-emissive-strength"?: DataDrivenPropertyValueSpecification; "building-facade-emissive-chance"?: PropertyValueSpecification; "building-cutoff-fade-range"?: ExpressionSpecification; "building-flood-light-color"?: PropertyValueSpecification; "building-flood-light-color-transition"?: TransitionSpecification; "building-flood-light-color-use-theme"?: PropertyValueSpecification; "building-flood-light-intensity"?: PropertyValueSpecification; "building-flood-light-intensity-transition"?: TransitionSpecification; "building-flood-light-ground-attenuation"?: PropertyValueSpecification; "building-flood-light-ground-attenuation-transition"?: TransitionSpecification; }; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array; }; 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; /** * @experimental This property is experimental and subject to change in future versions. */ "raster-elevation"?: PropertyValueSpecification; "raster-elevation-transition"?: TransitionSpecification; }; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array; }; 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; }; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array; }; 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; }; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array; }; 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 ]>; "model-elevation-reference"?: "sea" | "ground" | "hd-road-markup" | ExpressionSpecification; }; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array; }; 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; }; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array; }; 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; }; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array; }; type SlotLayerSpecification = { "id": string; "type": "slot"; "metadata"?: unknown; "source"?: never; "source-layer"?: never; "slot"?: string; "minzoom"?: never; "maxzoom"?: never; "filter"?: never; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array; "layout"?: never; "paint"?: never; }; 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; }; /** * @experimental This property is experimental and subject to change in future versions. */ "appearances"?: Array; "paint"?: never; }; type LayerSpecification = FillLayerSpecification | LineLayerSpecification | SymbolLayerSpecification | CircleLayerSpecification | HeatmapLayerSpecification | FillExtrusionLayerSpecification | BuildingLayerSpecification | RasterLayerSpecification | RasterParticleLayerSpecification | HillshadeLayerSpecification | ModelLayerSpecification | BackgroundLayerSpecification | SkyLayerSpecification | SlotLayerSpecification | ClipLayerSpecification; /** * Migrate a Mapbox GL Style to the latest version. * * @private * @alias migrate * @param {object} style a Mapbox GL Style * @returns {Object} a migrated style * @example * var fs = require('fs'); * var migrate = require('mapbox-gl-style-spec').migrate; * var style = fs.readFileSync('./style.json', 'utf8'); * fs.writeFileSync('./style.json', JSON.stringify(migrate(style))); */ declare function _default$1(style: { version: 7; } | StyleSpecification): StyleSpecification; declare function _default$2(style: StyleSpecification): StyleSpecification; /** * Given an array of layers, some of which may contain `ref` properties * whose value is the `id` of another property, return a new array where * such layers have been augmented with the 'type', 'source', etc. properties * from the parent layer, and the `ref` property has been removed. * * The input is not modified. The output may contain references to portions * of the input. * * @private * @param {Array} layers * @returns {Array} */ export function derefLayers(layers: Array): Array; type Command = { command: string; args: unknown[]; }; /** * Diff two stylesheet * * Creates semanticly aware diffs that can easily be applied at runtime. * Operations produced by the diff closely resemble the mapbox-gl-js API. Any * error creating the diff will fall back to the 'setStyle' operation. * * Example diff: * [ * { command: 'setConstant', args: ['@water', '#0000FF'] }, * { command: 'setPaintProperty', args: ['background', 'background-color', 'black'] } * ] * * @private * @param {*} [before] stylesheet to compare from * @param {*} after stylesheet to compare to * @returns Array list of changes */ declare function diffStyles(before: StyleSpecification, after: StyleSpecification): Array; export declare class ValidationError { message: string; identifier: string | null | undefined; line: number | null | undefined; constructor(key: string | null | undefined, value: unknown, message: string, identifier?: string | null); } export declare class ParsingError { message: string; error: Error; line: number; constructor(error: Error); } declare class ParsingError$1 extends Error { key: string; message: string; constructor(key: string, message: string); } type LUT = { image: { width: number; height: number; data: Uint8Array; }; }; /** * An RGBA color value. Create instances from color strings using the static * method `Color.parse`. The constructor accepts RGB channel values in the range * `[0, 1]`, premultiplied by A. * * @param {number} r The red channel. * @param {number} g The green channel. * @param {number} b The blue channel. * @param {number} a The alpha channel. * @private */ export declare class Color { r: number; g: number; b: number; a: number; constructor(r: number, g: number, b: number, a?: number); static black: Color; static white: Color; static transparent: Color; static red: Color; static blue: Color; /** * Parses valid CSS color strings and returns a `Color` instance. * @returns A `Color` instance, or `undefined` if the input is not a valid color string. */ static parse(input?: string | Color | null): Color | undefined; /** * Returns an RGBA string representing the color value. * * @returns An RGBA string. * @example * var purple = new Color.parse('purple'); * purple.toString; // = "rgba(128,0,128,1)" * var translucentGreen = new Color.parse('rgba(26, 207, 26, .73)'); * translucentGreen.toString(); // = "rgba(26,207,26,0.73)" */ toString(): string; toNonPremultipliedRenderColor(lut: LUT | null): NonPremultipliedRenderColor; toPremultipliedRenderColor(lut: LUT | null): NonPremultipliedRenderColor; clone(): Color; } declare abstract class RenderColor { premultiplied: boolean; r: number; g: number; b: number; a: number; constructor(lut: LUT | null, r: number, g: number, b: number, a: number, premultiplied?: boolean); /** * Returns an RGBA array of values representing the color. * @returns An array of RGBA color values in the range [0, 255]. */ toArray(): [ number, number, number, number ]; /** * Returns an HSLA array of values representing the color, unpremultiplied by A. * @returns An array of HSLA color values. */ toHslaArray(): [ number, number, number, number ]; /** * Returns a RGBA array of float values representing the color. * * @returns An array of RGBA color values in the range [0, 1]. */ toArray01(): [ number, number, number, number ]; /** * Returns an RGB array of values representing the color, unpremultiplied by A and multiplied by a scalar. * * @param {number} scale A scale to apply to the unpremultiplied-alpha values. * @returns An array of RGB color values in the range [0, 1]. */ toArray01Scaled(scale: number): [ number, number, number ]; /** * Returns an RGBA array of values representing the color converted to linear color space. * The color is defined by sRGB primaries, but the sRGB transfer function * is reversed to obtain linear energy. * @returns An array of RGBA color values in the range [0, 1]. */ toArray01Linear(): [ number, number, number, number ]; } declare class NonPremultipliedRenderColor extends RenderColor { constructor(lut: LUT | null, r: number, g: number, b: number, a: number); } declare class Collator { locale: string | null; sensitivity: "base" | "accent" | "case" | "variant"; collator: Intl.Collator; constructor(caseSensitive: boolean, diacriticSensitive: boolean, locale: string | null); compare(lhs: string, rhs: string): number; resolvedLocale(): string; } type Brand = T & { __brand: U; }; type ImageIdSpec = { name: string; iconsetId?: string; }; type StringifiedImageId = Brand; declare class ImageId { name: string; iconsetId?: string; constructor(id: string | ImageId | ImageIdSpec); static from(id: string | ImageId | ImageIdSpec): ImageId; static toString(id: ImageId | ImageIdSpec): StringifiedImageId; static parse(str: StringifiedImageId): ImageId | null; static isEqual(a: ImageId | ImageIdSpec, b: ImageId | ImageIdSpec): boolean; toString(): StringifiedImageId; serialize(): ImageIdSpec; } type StringifiedImageVariant = Brand; type RasterizationOptions = { params?: Record; sx?: number; sy?: number; }; declare class ImageVariant implements RasterizationOptions { id: ImageId; params?: Record; sx: number; sy: number; constructor(id: string | ImageIdSpec, options?: RasterizationOptions); toString(): StringifiedImageVariant; static parse(str: StringifiedImageVariant): ImageVariant | null; scaleSelf(factor: number, yFactor?: number): this; } declare class ResolvedImage { primaryId: ImageId; primaryOptions?: RasterizationOptions; secondaryId?: ImageId; secondaryOptions?: RasterizationOptions; available: boolean; constructor(primaryId: string | ImageIdSpec, primaryOptions?: RasterizationOptions, secondaryId?: string | ImageIdSpec, secondaryOptions?: RasterizationOptions, available?: boolean); toString(): string; hasPrimary(): boolean; getPrimary(): ImageVariant; hasSecondary(): boolean; getSecondary(): ImageVariant | null; static from(image: string | ResolvedImage): ResolvedImage; static build(primaryId: string | ImageIdSpec, secondaryId?: string | ImageIdSpec, primaryOptions?: RasterizationOptions, secondaryOptions?: RasterizationOptions): ResolvedImage | null; } declare class FormattedSection { text: string; image: ResolvedImage | null; scale: number | null; fontStack: string | null; textColor: Color | null; constructor(text: string, image: ResolvedImage | null, scale: number | null, fontStack: string | null, textColor: Color | null); } declare class Formatted { sections: Array; constructor(sections: Array); static fromString(unformatted: string): Formatted; isEmpty(): boolean; static factory(text: Formatted | string): Formatted; toString(): string; serialize(): Array; } type NullTypeT = { kind: "null"; }; type NumberTypeT = { kind: "number"; }; type StringTypeT = { kind: "string"; }; type BooleanTypeT = { kind: "boolean"; }; type ColorTypeT = { kind: "color"; }; type ObjectTypeT = { kind: "object"; }; type ValueTypeT = { kind: "value"; }; type ErrorTypeT = { kind: "error"; }; type CollatorTypeT = { kind: "collator"; }; type FormattedTypeT = { kind: "formatted"; }; type ResolvedImageTypeT = { kind: "resolvedImage"; }; type EvaluationKind = "constant" | "source" | "camera" | "composite"; type Type = NullTypeT | NumberTypeT | StringTypeT | BooleanTypeT | ColorTypeT | ObjectTypeT | ValueTypeT | ArrayType | ErrorTypeT | CollatorTypeT | FormattedTypeT | ResolvedImageTypeT; type ArrayType = { kind: "array"; itemType: Type; N: number | null | undefined; }; type Value = null | string | boolean | number | Color | Collator | Formatted | ResolvedImage | ReadonlyArray | { readonly [key: string]: Value; }; type CanonicalTileID = { z: number; x: number; y: number; }; type SerializedExpression = Array | Array | string | number | boolean | null; interface Expression { readonly type: Type; value?: any; evaluate: (ctx: EvaluationContext) => any; eachChild: (fn: (arg1: Expression) => void) => void; /** * Statically analyze the expression, attempting to enumerate possible outputs. Returns * false if the complete set of outputs is statically undecidable, otherwise true. */ outputDefined: () => boolean; serialize: () => SerializedExpression; } type ConfigOptionValue = { default: Expression; value?: Expression; values?: Array; minValue?: number; maxValue?: number; stepValue?: number; type?: "string" | "number" | "boolean" | "color"; }; type ConfigOptions = Map; type FeatureDistanceData = { bearing: [ number, number ]; center: [ number, number ]; scale: number; }; type FilterExpression = (globalProperties: GlobalProperties, feature: Feature, canonical?: CanonicalTileID, featureTileCoord?: Point, featureDistanceData?: FeatureDistanceData) => boolean; type FeatureFilter = { filter: FilterExpression; dynamicFilter?: FilterExpression; needGeometry: boolean; needFeature: boolean; }; declare function isExpressionFilter(filter: unknown): boolean; /** * Given a filter expressed as nested arrays, return a new function * that evaluates whether a given feature (with a .properties or .tags property) * passes its test. * * @private * @param {Array} filter mapbox gl filter * @param {string} layerType the type of the layer this filter will be applied to. * @returns {Function} filter-evaluating function */ declare function createFilter(filter?: FilterSpecification, scope?: string, options?: ConfigOptions | null, layerType?: string): FeatureFilter; declare class EvaluationContext { globals: GlobalProperties; feature: Feature | null | undefined; featureState: FeatureState | null | undefined; formattedSection: FormattedSection | null | undefined; availableImages: ImageId[] | null | undefined; canonical: null | CanonicalTileID; featureTileCoord: Point | null | undefined; featureDistanceData: FeatureDistanceData | null | undefined; scope: string | null | undefined; options: ConfigOptions | null | undefined; iconImageUseTheme: string | null | undefined; _parseColorCache: { [_: string]: Color | null | undefined; }; constructor(scope?: string | null, options?: ConfigOptions | null, iconImageUseTheme?: string); id(): string | number | null; geometryType(): null | string; geometry(): Array> | null | undefined; canonicalID(): null | CanonicalTileID; properties(): { readonly [key: string]: unknown; }; measureLight(_: string): number; distanceFromCenter(): number; parseColor(input: string): Color | undefined; getConfig(id: string): ConfigOptionValue | null | undefined; } type Result = { result: "success"; value: T; } | { result: "error"; value: E; }; type InterpolationType = { name: "linear"; } | { name: "exponential"; base: number; } | { name: "cubic-bezier"; controlPoints: [ number, number, number, number ]; }; interface Feature { readonly type: 0 | 1 | 2 | 3 | "Unknown" | "Point" | "LineString" | "Polygon"; readonly id?: string | number | null; readonly properties: Record; readonly patterns?: Record; readonly geometry?: Array>; } type FeatureState = { [_: string]: unknown; }; interface GlobalProperties { zoom: number; pitch?: number; heatmapDensity?: number; lineProgress?: number; rasterValue?: number; rasterParticleSpeed?: number; skyRadialProgress?: number; readonly isSupportedScript?: (_: string) => boolean; accumulated?: Value; brightness?: number; worldview?: string; activeFloors?: Set; } declare class StyleExpression { expression: Expression; _scope?: string; _options?: ConfigOptions; _iconImageUseTheme?: string; _evaluator?: EvaluationContext; _defaultValue: Value; _warningHistory: { [key: string]: boolean; }; _enumValues?: { [_: string]: unknown; }; configDependencies: Set; isIndoorDependent: boolean; constructor(expression: Expression, propertySpec?: StylePropertySpecification, scope?: string, options?: ConfigOptions, iconImageUseTheme?: string); evaluateWithoutErrorHandling(globals: GlobalProperties, feature?: Feature, featureState?: FeatureState, canonical?: CanonicalTileID, availableImages?: ImageId[], formattedSection?: FormattedSection, featureTileCoord?: Point, featureDistanceData?: FeatureDistanceData): any; evaluate(globals: GlobalProperties, feature?: Feature, featureState?: FeatureState, canonical?: CanonicalTileID, availableImages?: ImageId[], formattedSection?: FormattedSection, featureTileCoord?: Point, featureDistanceData?: FeatureDistanceData, iconImageUseTheme?: string): any; } declare function isExpression(expression: unknown): boolean; declare function createExpression(expression: unknown, propertySpec?: StylePropertySpecification | null, scope?: string | null, options?: ConfigOptions | null, iconImageUseTheme?: string | null): Result>; declare class ZoomConstantExpression { kind: Kind; isStateDependent: boolean; configDependencies: Set; isIndoorDependent: boolean; _styleExpression: StyleExpression; isLightConstant: boolean | null | undefined; isLineProgressConstant: boolean | null | undefined; constructor(kind: Kind, expression: StyleExpression, isLightConstant?: boolean | null, isLineProgressConstant?: boolean | null); evaluateWithoutErrorHandling(globals: GlobalProperties, feature?: Feature, featureState?: FeatureState, canonical?: CanonicalTileID, availableImages?: ImageId[], formattedSection?: FormattedSection): any; evaluate(globals: GlobalProperties, feature?: Feature, featureState?: FeatureState, canonical?: CanonicalTileID, availableImages?: ImageId[], formattedSection?: FormattedSection, iconImageUseTheme?: string): any; } declare class ZoomDependentExpression { kind: Kind; zoomStops: Array; isStateDependent: boolean; isIndoorDependent: boolean; isLightConstant: boolean | null | undefined; isLineProgressConstant: boolean | null | undefined; configDependencies: Set; _styleExpression: StyleExpression; interpolationType: InterpolationType | null | undefined; constructor(kind: Kind, expression: StyleExpression, zoomStops: Array, interpolationType?: InterpolationType, isLightConstant?: boolean | null, isLineProgressConstant?: boolean | null); evaluateWithoutErrorHandling(globals: GlobalProperties, feature?: Feature, featureState?: FeatureState, canonical?: CanonicalTileID, availableImages?: ImageId[], formattedSection?: FormattedSection): any; evaluate(globals: GlobalProperties, feature?: Feature, featureState?: FeatureState, canonical?: CanonicalTileID, availableImages?: ImageId[], formattedSection?: FormattedSection): any; interpolationFactor(input: number, lower: number, upper: number): number; } type ConstantExpression = { kind: "constant"; configDependencies: Set; isIndoorDependent: boolean; readonly evaluate: (globals: GlobalProperties, feature?: Feature, featureState?: FeatureState, canonical?: CanonicalTileID, availableImages?: ImageId[], formattedSection?: FormattedSection, iconImageUseTheme?: string) => T; }; type SourceExpression = { kind: "source"; isStateDependent: boolean; isIndoorDependent: boolean; isLightConstant: boolean | null | undefined; isLineProgressConstant: boolean | null | undefined; configDependencies: Set; readonly evaluate: (globals: GlobalProperties, feature?: Feature, featureState?: FeatureState, canonical?: CanonicalTileID, availableImages?: ImageId[], formattedSection?: FormattedSection) => T; }; type CameraExpression = { kind: "camera"; isStateDependent: boolean; isIndoorDependent: boolean; configDependencies: Set; readonly evaluate: (globals: GlobalProperties, feature?: Feature, featureState?: FeatureState, canonical?: CanonicalTileID, availableImages?: ImageId[]) => T; readonly interpolationFactor: (input: number, lower: number, upper: number) => number; zoomStops: Array; interpolationType: InterpolationType | null | undefined; }; interface CompositeExpression { kind: "composite"; isStateDependent: boolean; isIndoorDependent: boolean; isLightConstant: boolean | null | undefined; isLineProgressConstant: boolean | null | undefined; configDependencies: Set; readonly evaluate: (globals: GlobalProperties, feature?: Feature, featureState?: FeatureState, canonical?: CanonicalTileID, availableImages?: ImageId[], formattedSection?: FormattedSection, iconImageUseTheme?: string) => T; readonly interpolationFactor: (input: number, lower: number, upper: number) => number; zoomStops: Array; interpolationType: InterpolationType | null | undefined; } type StylePropertyExpression = ConstantExpression | SourceExpression | CameraExpression | CompositeExpression; declare function createPropertyExpression(expression: any, propertySpec: StylePropertySpecification, scope?: string | null, options?: ConfigOptions | null, iconImageUseTheme?: string | null): Result>; declare class StylePropertyFunction { _parameters: PropertyValueSpecification; _specification: StylePropertySpecification; kind: EvaluationKind; evaluate: (globals: GlobalProperties, feature?: Feature) => T; interpolationFactor: (input: number, lower: number, upper: number) => number | null | undefined; zoomStops: Array | null | undefined; constructor(parameters: PropertyValueSpecification, specification: StylePropertySpecification); static deserialize(serialized: { _parameters: PropertyValueSpecification; _specification: StylePropertySpecification; }): StylePropertyFunction; static serialize(input: StylePropertyFunction): { _parameters: PropertyValueSpecification; _specification: StylePropertySpecification; }; } declare function normalizePropertyExpression(value: PropertyValueSpecification, specification: StylePropertySpecification, scope?: string | null, options?: ConfigOptions | null, iconImageUseTheme?: string | null): StylePropertyExpression; /** * Convert the given legacy filter to (the JSON representation of) an * equivalent expression * @private */ export function convertFilter(filter: FilterSpecification): unknown; declare function isFunction(value: any): boolean; declare function createFunction(parameters: any, propertySpec: any): { kind: string; interpolationType: { name: string; }; interpolationFactor: (input: number, lower: number, upper: number) => number; zoomStops: any[]; evaluate({ zoom }: { zoom: any; }, properties: any): any; } | { kind: string; interpolationType: { name: string; base: any; }; interpolationFactor: (input: number, lower: number, upper: number) => number; zoomStops: any; evaluate: ({ zoom }: { zoom: any; }) => any; } | { kind: string; evaluate(_: any, feature: any): any; interpolationType?: undefined; interpolationFactor?: undefined; zoomStops?: undefined; }; declare function convertFunction(parameters: FunctionSpecification, propertySpec: StylePropertySpecification): ExpressionSpecification; declare function eachSource(style: StyleSpecification, callback: (_: SourceSpecification) => void): void; declare function eachLayer(style: StyleSpecification, callback: (_: LayerSpecification) => void): void; type PropertyCallback = (arg1: { path: [ string, "paint" | "layout", string ]; key: string; value: PropertyValueSpecification; reference: StylePropertySpecification; set: (arg1: PropertyValueSpecification) => void; }) => void; declare function eachProperty(style: StyleSpecification, options: { paint?: boolean; layout?: boolean; }, callback: PropertyCallback): void; type ValidationError$1 = { message: string; identifier?: string | null | undefined; line?: number | null | undefined; }; type ValidationErrors = ReadonlyArray; /** * Validate a Mapbox GL style against the style specification. * * @private * @alias validate * @param {Object|String|Buffer} style The style to be validated. If a `String` * or `Buffer` is provided, the returned errors will contain line numbers. * @param {Object} [styleSpec] The style specification to validate against. * If omitted, the spec version is inferred from the stylesheet. * @returns {Array} * @example * var validate = require('mapbox-gl-style-spec').validate; * var style = fs.readFileSync('./style.json', 'utf8'); * var errors = validate(style); */ declare function validateStyle(style: StyleSpecification | string | Buffer, styleSpec?: StyleReference): ValidationErrors; type MapboxStyleSpecification = StyleSpecification & { visibility?: "public" | "private"; protected?: boolean; }; /** * Validate a Mapbox GL style against the style specification and check for * compatibility with the Mapbox Styles API. * * @param {Object} style The style to be validated. * @returns {Array} * @example * var validateMapboxApiSupported = require('mapbox-gl-style-spec/lib/validate_style_mapbox_api_supported.js'); * var errors = validateMapboxApiSupported(style); */ export function validateMapboxApiSupported(style: MapboxStyleSpecification, styleSpec?: StyleReference): ValidationErrors; type ExpressionType = "data-driven" | "color-ramp" | "data-constant" | "constant"; type ExpressionParameter = "zoom" | "pitch" | "feature" | "raster-value" | "feature-state" | "line-progress" | "measure-light" | "heatmap-density" | "sky-radial-progress" | "distance-from-center" | "raster-particle-speed"; type ExpressionSpecification$1 = { interpolated: boolean; parameters?: ExpressionParameter[]; relaxZoomRestriction?: boolean; }; export type ArrayPropertySpecification = { type: "array"; "property-type": ExpressionType; value: "enum"; expression?: ExpressionSpecification$1; transition?: boolean; default?: string[]; length?: number; values?: { [_: string]: unknown; }; experimental?: boolean; private?: boolean; requires?: unknown; appearance?: boolean; tokens?: never; minimum?: never; maximum?: never; } | { type: "array"; "property-type": ExpressionType; value: "number"; expression?: ExpressionSpecification$1; transition?: boolean; default?: number[]; minimum?: number; maximum?: number; length?: number; period?: number; units?: string; experimental?: boolean; private?: boolean; requires?: unknown; appearance?: boolean; tokens?: never; values?: never; } | { type: "array"; "property-type": ExpressionType; value: "string"; expression?: ExpressionSpecification$1; transition?: boolean; default?: string[]; length?: number; experimental?: boolean; private?: boolean; requires?: unknown; appearance?: boolean; tokens?: never; minimum?: never; maximum?: never; values?: never; }; export type BooleanPropertySpecification = { type: "boolean"; "property-type": ExpressionType; expression?: ExpressionSpecification$1; transition?: boolean; default?: boolean; overridable?: boolean; experimental?: boolean; private?: boolean; requires?: unknown; appearance?: boolean; tokens?: never; }; export type ColorPropertySpecification = { type: "color"; "property-type": ExpressionType; expression?: ExpressionSpecification$1; transition?: boolean; default?: string; "use-theme"?: boolean; overridable?: boolean; experimental?: boolean; private?: boolean; requires?: unknown; appearance?: boolean; tokens?: never; }; export type EnumPropertySpecification = { type: "enum"; "property-type": ExpressionType; expression?: ExpressionSpecification$1; transition?: boolean; default?: string; values?: { [_: string]: unknown; }; experimental?: boolean; private?: boolean; requires?: unknown; appearance?: boolean; tokens?: never; }; export type FormattedPropertySpecification = { type: "formatted"; "property-type": ExpressionType; expression?: ExpressionSpecification$1; transition?: boolean; default?: string; tokens?: boolean; experimental?: boolean; private?: boolean; requires?: unknown; appearance?: boolean; }; export type NumberPropertySpecification = { type: "number"; "property-type": ExpressionType; expression?: ExpressionSpecification$1; transition?: boolean; default?: number; minimum?: number; maximum?: number; period?: number; units?: string; experimental?: boolean; private?: boolean; requires?: unknown; appearance?: boolean; tokens?: never; }; export type ResolvedImagePropertySpecification = { type: "resolvedImage"; "property-type": ExpressionType; expression?: ExpressionSpecification$1; transition?: boolean; default?: string; tokens?: boolean; "use-theme"?: boolean; experimental?: boolean; private?: boolean; requires?: unknown; appearance?: boolean; }; export type StringPropertySpecification = { type: "string"; "property-type": ExpressionType; expression?: ExpressionSpecification$1; transition?: boolean; default?: string; tokens?: boolean; experimental?: boolean; private?: boolean; requires?: unknown; appearance?: boolean; }; /** * A style property specification is used to describe a value of some style property reference in the v8.json */ export type StylePropertySpecification = ArrayPropertySpecification | BooleanPropertySpecification | ColorPropertySpecification | EnumPropertySpecification | FormattedPropertySpecification | NumberPropertySpecification | ResolvedImagePropertySpecification | StringPropertySpecification; export declare const expression: { StyleExpression: typeof StyleExpression; isExpression: typeof isExpression; isExpressionFilter: typeof isExpressionFilter; createExpression: typeof createExpression; createPropertyExpression: typeof createPropertyExpression; normalizePropertyExpression: typeof normalizePropertyExpression; ZoomConstantExpression: typeof ZoomConstantExpression; ZoomDependentExpression: typeof ZoomDependentExpression; StylePropertyFunction: typeof StylePropertyFunction; }; declare const styleFunction: { convertFunction: typeof convertFunction; createFunction: typeof createFunction; isFunction: typeof isFunction; }; export declare const visit: { eachSource: typeof eachSource; eachLayer: typeof eachLayer; eachProperty: typeof eachProperty; }; export { ExpressionSpecification$1 as ExpressionSpecification, _default as latest, _default$1 as migrate, _default$2 as composite, createFilter as featureFilter, diffStyles as diff, styleFunction as function, validateStyle as validate, }; export {};