import Point from '@mapbox/point-geometry';

declare const _exports: {
    $version: number;
    $root: {
        version: {
            required: boolean;
            type: string;
            values: number[];
            doc: string;
            example: number;
        };
        fragment: {
            type: string;
            doc: string;
            example: boolean;
        };
        name: {
            type: string;
            doc: string;
            example: string;
        };
        metadata: {
            type: string;
            doc: string;
        };
        center: {
            type: string;
            value: string;
            doc: string;
            example: number[];
        };
        zoom: {
            type: string;
            doc: string;
            example: number;
        };
        bearing: {
            type: string;
            default: number;
            period: number;
            units: string;
            doc: string;
            example: number;
        };
        pitch: {
            type: string;
            default: number;
            units: string;
            doc: string;
            example: number;
        };
        light: {
            type: string;
            doc: string;
            example: {
                anchor: string;
                color: string;
                intensity: number;
            };
        };
        lights: {
            required: boolean;
            type: string;
            value: string;
            doc: string;
            example: ({
                id: string;
                type: string;
                properties: {
                    color: string;
                    intensity: number;
                    direction?: undefined;
                    "cast-shadows"?: undefined;
                    "shadow-intensity"?: undefined;
                };
            } | {
                id: string;
                type: string;
                properties: {
                    color: string;
                    intensity: number;
                    direction: number[];
                    "cast-shadows": boolean;
                    "shadow-intensity": number;
                };
            })[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        terrain: {
            type: string;
            optional: boolean;
            doc: string;
        };
        fog: {
            type: string;
            doc: string;
        };
        snow: {
            type: string;
            doc: string;
            experimental: boolean;
        };
        rain: {
            type: string;
            doc: string;
            experimental: boolean;
        };
        camera: {
            type: string;
            doc: string;
        };
        "color-theme": {
            type: string;
            doc: string;
        };
        indoor: {
            type: string;
            private: boolean;
            experimental: boolean;
            doc: string;
        };
        imports: {
            type: string;
            value: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        iconsets: {
            experimental: boolean;
            type: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        schema: {
            type: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        sources: {
            required: boolean;
            type: string;
            doc: string;
            example: {
                "mapbox-streets": {
                    type: string;
                    url: string;
                };
            };
        };
        sprite: {
            type: string;
            doc: string;
            example: string;
        };
        glyphs: {
            type: string;
            doc: string;
            default: string;
            example: string;
        };
        transition: {
            type: string;
            doc: string;
            example: {
                duration: number;
                delay: number;
            };
        };
        projection: {
            type: string;
            doc: string;
            example: {
                name: string;
                center: number[];
                parallels: number[];
            };
        };
        layers: {
            required: boolean;
            type: string;
            value: string;
            doc: string;
            example: {
                id: string;
                source: string;
                "source-layer": string;
                type: string;
                paint: {
                    "fill-color": string;
                };
            }[];
        };
        models: {
            type: string;
            doc: string;
            example: {
                "spruce1-lod0": string;
                "spruce1-lod1": string;
                "spruce1-lod2": string;
            };
        };
        featuresets: {
            experimental: boolean;
            type: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            example: {
                poi: {
                    selectors: {
                        layer: string;
                        properties: {
                            type: string[];
                            name: string[];
                            brand: string;
                        };
                    }[];
                };
            };
        };
    };
    featuresets: {
        experimental: boolean;
        "*": {
            type: string;
            doc: string;
        };
    };
    featureset: {
        experimental: boolean;
        metadata: {
            experimental: boolean;
            type: string;
            doc: string;
        };
        selectors: {
            experimental: boolean;
            type: string;
            value: string;
            doc: string;
        };
    };
    selector: {
        experimental: boolean;
        layer: {
            experimental: boolean;
            type: string;
            doc: string;
            required: boolean;
        };
        properties: {
            experimental: boolean;
            type: string;
            required: boolean;
            doc: string;
        };
        featureNamespace: {
            experimental: boolean;
            type: string;
            required: boolean;
            doc: string;
        };
        _uniqueFeatureID: {
            experimental: boolean;
            type: string;
            private: boolean;
            required: boolean;
            doc: string;
        };
    };
    selectorProperty: {
        experimental: boolean;
        "*": {
            experimental: boolean;
            type: string;
            doc: string;
        };
    };
    model: {
        type: string;
        doc: string;
        required: boolean;
    };
    import: {
        id: {
            type: string;
            doc: string;
            required: boolean;
        };
        url: {
            type: string;
            doc: string;
            required: boolean;
        };
        config: {
            type: string;
            doc: string;
        };
        data: {
            type: string;
            doc: string;
        };
        "color-theme": {
            type: string;
            optional: boolean;
            doc: string;
        };
    };
    config: {
        "*": {
            type: string;
            doc: string;
        };
    };
    schema: {
        "*": {
            type: string;
            doc: string;
        };
    };
    option: {
        default: {
            type: string;
            doc: string;
            "property-type": string;
            expression: {
                interpolated: boolean;
            };
            required: boolean;
        };
        type: {
            type: string;
            doc: string;
            values: {
                string: {
                    doc: string;
                };
                number: {
                    doc: string;
                };
                boolean: {
                    doc: string;
                };
                color: {
                    doc: string;
                };
            };
        };
        array: {
            type: string;
            doc: string;
        };
        minValue: {
            type: string;
            doc: string;
        };
        maxValue: {
            type: string;
            doc: string;
        };
        stepValue: {
            type: string;
            doc: string;
        };
        values: {
            type: string;
            value: string;
            doc: string;
        };
        metadata: {
            type: string;
            doc: string;
        };
    };
    models: {
        "*": {
            type: string;
            doc: string;
        };
    };
    "light-3d": {
        id: {
            type: string;
            doc: string;
            required: boolean;
        };
        properties: {
            type: string;
            doc: string;
        };
        type: {
            type: string;
            doc: string;
            values: {
                ambient: {
                    doc: string;
                    "sdk-support": {
                        "basic functionality": {
                            js: string;
                            android: string;
                            ios: string;
                        };
                    };
                };
                directional: {
                    doc: string;
                    "sdk-support": {
                        "basic functionality": {
                            js: string;
                            android: string;
                            ios: string;
                        };
                    };
                };
                flat: {
                    doc: string;
                    "sdk-support": {
                        "basic functionality": {
                            js: string;
                            android: string;
                            ios: string;
                        };
                    };
                };
            };
        };
    };
    properties: string[];
    properties_light_directional: {
        direction: {
            type: string;
            default: number[];
            minimum: number[];
            maximum: number[];
            length: number;
            value: string;
            "property-type": string;
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            doc: string;
            example: number[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        color: {
            type: string;
            "property-type": string;
            default: string;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "use-theme": boolean;
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        intensity: {
            type: string;
            "property-type": string;
            default: number;
            minimum: number;
            maximum: number;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "cast-shadows": {
            type: string;
            default: boolean;
            doc: string;
            transition: boolean;
            "property-type": string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "shadow-quality": {
            type: string;
            "property-type": string;
            default: number;
            minimum: number;
            maximum: number;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                };
            };
            experimental: boolean;
        };
        "shadow-intensity": {
            type: string;
            "property-type": string;
            default: number;
            minimum: number;
            maximum: number;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            doc: string;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "shadow-draw-before-layer": {
            type: string;
            "property-type": string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            experimental: boolean;
        };
    };
    properties_light_ambient: {
        color: {
            type: string;
            "property-type": string;
            default: string;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "use-theme": boolean;
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        intensity: {
            type: string;
            "property-type": string;
            default: number;
            minimum: number;
            maximum: number;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
    };
    properties_light_flat: {
        anchor: {
            type: string;
            default: string;
            values: {
                map: {
                    doc: string;
                };
                viewport: {
                    doc: string;
                };
            };
            "property-type": string;
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            doc: string;
            example: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        position: {
            type: string;
            default: number[];
            length: number;
            value: string;
            "property-type": string;
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            doc: string;
            example: number[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        color: {
            type: string;
            "property-type": string;
            default: string;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "use-theme": boolean;
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        intensity: {
            type: string;
            "property-type": string;
            default: number;
            minimum: number;
            maximum: number;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
    };
    iconsets: {
        "*": {
            type: string;
            doc: string;
        };
    };
    iconset: string[];
    iconset_sprite: {
        type: {
            required: boolean;
            type: string;
            values: {
                sprite: {
                    doc: string;
                };
            };
            doc: string;
        };
        url: {
            required: boolean;
            type: string;
            doc: string;
            example: string;
        };
    };
    iconset_source: {
        type: {
            required: boolean;
            type: string;
            values: {
                source: {
                    doc: string;
                };
            };
            doc: string;
        };
        source: {
            required: boolean;
            type: string;
            doc: string;
        };
    };
    sources: {
        "*": {
            type: string;
            doc: string;
        };
    };
    source: string[];
    source_vector: {
        type: {
            required: boolean;
            type: string;
            values: {
                vector: {
                    doc: string;
                };
            };
            doc: string;
        };
        url: {
            type: string;
            doc: string;
        };
        tiles: {
            type: string;
            value: string;
            doc: string;
        };
        bounds: {
            type: string;
            value: string;
            length: number;
            default: number[];
            doc: string;
        };
        extra_bounds: {
            type: string;
            value: {
                type: string;
                value: string;
                length: number;
                doc: string;
            };
            doc: string;
        };
        scheme: {
            type: string;
            values: {
                xyz: {
                    doc: string;
                };
                tms: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
        };
        minzoom: {
            type: string;
            default: number;
            doc: string;
        };
        maxzoom: {
            type: string;
            default: number;
            doc: string;
        };
        attribution: {
            type: string;
            doc: string;
        };
        promoteId: {
            type: string;
            doc: string;
        };
        volatile: {
            type: string;
            default: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                };
            };
        };
        "*": {
            type: string;
            doc: string;
        };
    };
    source_raster: {
        type: {
            required: boolean;
            type: string;
            values: {
                raster: {
                    doc: string;
                };
            };
            doc: string;
        };
        url: {
            type: string;
            doc: string;
        };
        tiles: {
            type: string;
            value: string;
            doc: string;
        };
        bounds: {
            type: string;
            value: string;
            length: number;
            default: number[];
            doc: string;
        };
        extra_bounds: {
            type: string;
            value: {
                type: string;
                value: string;
                length: number;
                doc: string;
            };
            doc: string;
        };
        minzoom: {
            type: string;
            default: number;
            doc: string;
        };
        maxzoom: {
            type: string;
            default: number;
            doc: string;
        };
        tileSize: {
            type: string;
            default: number;
            units: string;
            doc: string;
        };
        scheme: {
            type: string;
            values: {
                xyz: {
                    doc: string;
                };
                tms: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
        };
        attribution: {
            type: string;
            doc: string;
        };
        volatile: {
            type: string;
            default: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                };
            };
        };
        "*": {
            type: string;
            doc: string;
        };
    };
    source_raster_dem: {
        type: {
            required: boolean;
            type: string;
            values: {
                "raster-dem": {
                    doc: string;
                };
            };
            doc: string;
        };
        url: {
            type: string;
            doc: string;
        };
        tiles: {
            type: string;
            value: string;
            doc: string;
        };
        bounds: {
            type: string;
            value: string;
            length: number;
            default: number[];
            doc: string;
        };
        extra_bounds: {
            type: string;
            value: {
                type: string;
                value: string;
                length: number;
                doc: string;
            };
            doc: string;
        };
        minzoom: {
            type: string;
            default: number;
            doc: string;
        };
        maxzoom: {
            type: string;
            default: number;
            doc: string;
        };
        tileSize: {
            type: string;
            default: number;
            units: string;
            doc: string;
        };
        attribution: {
            type: string;
            doc: string;
        };
        encoding: {
            type: string;
            values: {
                terrarium: {
                    doc: string;
                };
                mapbox: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
        };
        volatile: {
            type: string;
            default: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                };
            };
        };
        "*": {
            type: string;
            doc: string;
        };
    };
    source_raster_array: {
        experimental: boolean;
        type: {
            required: boolean;
            type: string;
            values: {
                "raster-array": {
                    doc: string;
                };
            };
            doc: string;
        };
        url: {
            type: string;
            doc: string;
        };
        tiles: {
            type: string;
            value: string;
            doc: string;
        };
        bounds: {
            type: string;
            value: string;
            length: number;
            default: number[];
            doc: string;
        };
        extra_bounds: {
            type: string;
            value: {
                type: string;
                value: string;
                length: number;
                doc: string;
            };
            doc: string;
        };
        minzoom: {
            type: string;
            default: number;
            doc: string;
        };
        maxzoom: {
            type: string;
            default: number;
            doc: string;
        };
        tileSize: {
            type: string;
            default: number;
            units: string;
            doc: string;
        };
        attribution: {
            type: string;
            doc: string;
        };
        rasterLayers: {
            type: string;
            doc: string;
        };
        volatile: {
            type: string;
            default: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                };
            };
        };
        "*": {
            type: string;
            doc: string;
        };
    };
    source_geojson: {
        type: {
            required: boolean;
            type: string;
            values: {
                geojson: {
                    doc: string;
                };
            };
            doc: string;
        };
        data: {
            type: string;
            doc: string;
        };
        maxzoom: {
            type: string;
            default: number;
            doc: string;
        };
        minzoom: {
            type: string;
            default: number;
            doc: string;
        };
        attribution: {
            type: string;
            doc: string;
        };
        buffer: {
            type: string;
            default: number;
            maximum: number;
            minimum: number;
            doc: string;
        };
        filter: {
            type: string;
            doc: string;
        };
        tolerance: {
            type: string;
            default: number;
            doc: string;
        };
        cluster: {
            type: string;
            default: boolean;
            doc: string;
        };
        clusterRadius: {
            type: string;
            default: number;
            minimum: number;
            doc: string;
        };
        clusterMaxZoom: {
            type: string;
            doc: string;
        };
        clusterMinPoints: {
            type: string;
            doc: string;
        };
        clusterProperties: {
            type: string;
            doc: string;
        };
        lineMetrics: {
            type: string;
            default: boolean;
            doc: string;
        };
        generateId: {
            type: string;
            default: boolean;
            doc: string;
        };
        promoteId: {
            type: string;
            doc: string;
        };
        dynamic: {
            type: string;
            default: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                };
            };
        };
    };
    source_video: {
        type: {
            required: boolean;
            type: string;
            values: {
                video: {
                    doc: string;
                };
            };
            doc: string;
        };
        urls: {
            required: boolean;
            type: string;
            value: string;
            doc: string;
        };
        coordinates: {
            required: boolean;
            doc: string;
            type: string;
            length: number;
            value: {
                type: string;
                length: number;
                value: string;
                doc: string;
            };
        };
    };
    source_image: {
        type: {
            required: boolean;
            type: string;
            values: {
                image: {
                    doc: string;
                };
            };
            doc: string;
        };
        url: {
            required: boolean;
            type: string;
            doc: string;
        };
        coordinates: {
            required: boolean;
            doc: string;
            type: string;
            length: number;
            value: {
                type: string;
                length: number;
                value: string;
                doc: string;
            };
        };
    };
    modelNodeOverride: {
        orientation: {
            type: string;
            value: string;
            length: number;
            default: number[];
            period: number;
            units: string;
            doc: string;
        };
    };
    modelLightOverrides: {
        "light-ambient-color": {
            type: string;
            doc: string;
        };
        "light-ambient-intensity": {
            type: string;
            doc: string;
        };
        "light-directional-color": {
            type: string;
            doc: string;
        };
        "light-directional-intensity": {
            type: string;
            doc: string;
        };
    };
    modelNodeOverrides: {
        "*": {
            type: string;
            doc: string;
        };
    };
    modelMaterialOverride: {
        "model-color": {
            type: string;
            doc: string;
        };
        "model-color-mix-intensity": {
            type: string;
            doc: string;
        };
        "model-opacity": {
            type: string;
            doc: string;
        };
        "model-emissive-strength": {
            type: string;
            units: string;
            doc: string;
        };
    };
    modelMaterialOverrides: {
        "*": {
            type: string;
            doc: string;
        };
    };
    modelSourceModel: {
        uri: {
            type: string;
            required: boolean;
            doc: string;
        };
        position: {
            type: string;
            value: string;
            length: number;
            required: boolean;
            default: number[];
            minimum: number[];
            maximum: number[];
            doc: string;
        };
        orientation: {
            type: string;
            value: string;
            length: number;
            required: boolean;
            default: number[];
            period: number;
            units: string;
            doc: string;
        };
        lightOverrides: {
            type: string;
            required: boolean;
            doc: string;
        };
        nodeOverrides: {
            type: string;
            required: boolean;
            doc: string;
        };
        materialOverrides: {
            type: string;
            required: boolean;
            doc: string;
        };
        nodeOverrideNames: {
            type: string;
            value: string;
            doc: string;
            required: boolean;
        };
        materialOverrideNames: {
            type: string;
            value: string;
            doc: string;
            required: boolean;
        };
        featureProperties: {
            type: string;
            doc: string;
            required: boolean;
        };
    };
    modelSourceModels: {
        "*": {
            type: string;
            doc: string;
        };
    };
    source_model: {
        type: {
            required: boolean;
            type: string;
            values: {
                model: {
                    doc: string;
                };
                "batched-model": {
                    doc: string;
                };
            };
            doc: string;
        };
        url: {
            type: string;
            doc: string;
        };
        maxzoom: {
            type: string;
            default: number;
            doc: string;
        };
        minzoom: {
            type: string;
            default: number;
            doc: string;
        };
        tiles: {
            type: string;
            value: string;
            doc: string;
        };
        models: {
            type: string;
            doc: string;
        };
    };
    layer: {
        id: {
            type: string;
            doc: string;
            required: boolean;
        };
        type: {
            type: string;
            values: {
                fill: {
                    doc: string;
                    "sdk-support": {
                        "basic functionality": {
                            js: string;
                            android: string;
                            ios: string;
                        };
                    };
                };
                line: {
                    doc: string;
                    "sdk-support": {
                        "basic functionality": {
                            js: string;
                            android: string;
                            ios: string;
                        };
                    };
                };
                symbol: {
                    doc: string;
                    "sdk-support": {
                        "basic functionality": {
                            js: string;
                            android: string;
                            ios: string;
                        };
                    };
                };
                circle: {
                    doc: string;
                    "sdk-support": {
                        "basic functionality": {
                            js: string;
                            android: string;
                            ios: string;
                        };
                    };
                };
                heatmap: {
                    doc: string;
                    "sdk-support": {
                        "basic functionality": {
                            js: string;
                            android: string;
                            ios: string;
                        };
                    };
                };
                "fill-extrusion": {
                    doc: string;
                    "sdk-support": {
                        "basic functionality": {
                            js: string;
                            android: string;
                            ios: string;
                        };
                    };
                };
                building: {
                    doc: string;
                    "sdk-support": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                    private: boolean;
                };
                raster: {
                    doc: string;
                    "sdk-support": {
                        "basic functionality": {
                            js: string;
                            android: string;
                            ios: string;
                        };
                    };
                };
                "raster-particle": {
                    experimental: boolean;
                    doc: string;
                    "sdk-support": {
                        "basic functionality": {
                            js: string;
                            android: string;
                            ios: string;
                        };
                    };
                };
                hillshade: {
                    doc: string;
                    "sdk-support": {
                        "basic functionality": {
                            js: string;
                            android: string;
                            ios: string;
                        };
                    };
                };
                model: {
                    doc: string;
                    "sdk-support": {
                        "basic functionality": {
                            js: string;
                            android: string;
                            ios: string;
                        };
                    };
                };
                background: {
                    doc: string;
                    "sdk-support": {
                        "basic functionality": {
                            js: string;
                            android: string;
                            ios: string;
                        };
                    };
                };
                sky: {
                    doc: string;
                    "sdk-support": {
                        "basic functionality": {
                            js: string;
                            ios: string;
                            android: string;
                        };
                    };
                };
                slot: {
                    doc: string;
                    "sdk-support": {
                        "basic functionality": {
                            js: string;
                            android: string;
                            ios: string;
                        };
                    };
                };
                clip: {
                    doc: string;
                    "sdk-support": {
                        "basic functionality": {
                            js: string;
                            android: string;
                            ios: string;
                        };
                    };
                };
            };
            doc: string;
            required: boolean;
        };
        metadata: {
            type: string;
            doc: string;
        };
        source: {
            type: string;
            doc: string;
        };
        "source-layer": {
            type: string;
            doc: string;
        };
        slot: {
            type: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        minzoom: {
            type: string;
            minimum: number;
            maximum: number;
            doc: string;
        };
        maxzoom: {
            type: string;
            minimum: number;
            maximum: number;
            doc: string;
        };
        filter: {
            type: string;
            doc: string;
        };
        layout: {
            type: string;
            doc: string;
        };
        paint: {
            type: string;
            doc: string;
        };
        appearances: {
            type: string;
            value: string;
            "supported-layer-types": string[];
            doc: string;
        };
    };
    appearance: {
        condition: {
            type: string;
            doc: string;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        name: {
            type: string;
            doc: string;
            "property-type": string;
        };
        properties: {
            type: string;
            doc: string;
        };
    };
    layout: string[];
    layout_background: {
        visibility: {
            type: string;
            values: {
                visible: {
                    doc: string;
                };
                none: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "expressions support": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
    };
    layout_sky: {
        visibility: {
            type: string;
            values: {
                visible: {
                    doc: string;
                };
                none: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    ios: string;
                    android: string;
                };
                "expressions support": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
    };
    layout_model: {
        visibility: {
            type: string;
            values: {
                visible: {
                    doc: string;
                };
                none: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
        "model-id": {
            type: string;
            default: string;
            doc: string;
            "property-type": string;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            transition: boolean;
            requires: {
                source: string[];
            }[];
        };
        "model-allow-density-reduction": {
            type: string;
            default: boolean;
            transition: boolean;
            experimental: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            "property-type": string;
        };
    };
    layout_clip: {
        "clip-layer-types": {
            type: string;
            value: string;
            values: {
                model: {
                    doc: string;
                };
                symbol: {
                    doc: string;
                };
            };
            default: any[];
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
        "clip-layer-scope": {
            type: string;
            value: string;
            default: any[];
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
        visibility: {
            type: string;
            values: {
                visible: {
                    doc: string;
                };
                none: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
    };
    layout_fill: {
        "fill-sort-key": {
            type: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        visibility: {
            type: string;
            values: {
                visible: {
                    doc: string;
                };
                none: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "expressions support": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
        "fill-elevation-reference": {
            type: string;
            doc: string;
            values: {
                none: {
                    doc: string;
                };
                "hd-road-base": {
                    doc: string;
                };
                "hd-road-markup": {
                    doc: string;
                };
            };
            default: string;
            experimental: boolean;
            private: boolean;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
        "fill-construct-bridge-guard-rail": {
            type: string;
            doc: string;
            default: string;
            transition: boolean;
            experimental: boolean;
            private: boolean;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
                "data-driven styling": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
    };
    layout_circle: {
        "circle-sort-key": {
            type: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "circle-elevation-reference": {
            type: string;
            doc: string;
            values: {
                none: {
                    doc: string;
                };
                "hd-road-markup": {
                    doc: string;
                };
            };
            default: string;
            experimental: boolean;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
        visibility: {
            type: string;
            values: {
                visible: {
                    doc: string;
                };
                none: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "expressions support": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
    };
    layout_heatmap: {
        visibility: {
            type: string;
            values: {
                visible: {
                    doc: string;
                };
                none: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "expressions support": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
    };
    "layout_fill-extrusion": {
        visibility: {
            type: string;
            values: {
                visible: {
                    doc: string;
                };
                none: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "expressions support": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
        "fill-extrusion-edge-radius": {
            type: string;
            experimental: boolean;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "expressions support": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
        "source-max-zoom": {
            type: string;
            minimum: number;
            maximum: number;
            private: boolean;
            experimental: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            "property-type": string;
        };
    };
    layout_building: {
        visibility: {
            type: string;
            values: {
                visible: {
                    doc: string;
                };
                none: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            private: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
        "building-facade": {
            type: string;
            default: boolean;
            doc: string;
            private: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "building-facade-floors": {
            type: string;
            minimum: number;
            maximum: number;
            default: number;
            doc: string;
            private: boolean;
            "property-type": string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            requires: string[];
        };
        "building-facade-unit-width": {
            type: string;
            minimum: number;
            maximum: number;
            default: number;
            doc: string;
            private: boolean;
            "property-type": string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            requires: string[];
        };
        "building-facade-window": {
            type: string;
            length: number;
            value: string;
            minimum: number;
            maximum: number;
            default: number[];
            doc: string;
            private: boolean;
            "property-type": string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            requires: string[];
        };
        "building-roof-shape": {
            type: string;
            values: {
                flat: {
                    doc: string;
                };
                hipped: {
                    doc: string;
                };
                gabled: {
                    doc: string;
                };
                parapet: {
                    doc: string;
                };
                mansard: {
                    doc: string;
                };
                skillion: {
                    doc: string;
                };
                pyramidal: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            private: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "building-height": {
            type: string;
            default: number;
            minimum: number;
            units: string;
            doc: string;
            transition: boolean;
            private: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
        "building-base": {
            type: string;
            default: number;
            minimum: number;
            units: string;
            doc: string;
            transition: boolean;
            requires: string[];
            private: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
        "building-flood-light-wall-radius": {
            "property-type": string;
            type: string;
            private: boolean;
            units: string;
            default: number;
            minimum: number;
            doc: string;
            requires: string[];
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "building-flood-light-ground-radius": {
            "property-type": string;
            type: string;
            private: boolean;
            units: string;
            default: number;
            doc: string;
            requires: string[];
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "building-flip-roof-orientation": {
            "property-type": string;
            type: string;
            private: boolean;
            units: string;
            default: boolean;
            doc: string;
            transition: boolean;
            requires: string[];
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
    };
    layout_line: {
        "line-cap": {
            type: string;
            values: {
                butt: {
                    doc: string;
                };
                round: {
                    doc: string;
                };
                square: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-join": {
            type: string;
            values: {
                bevel: {
                    doc: string;
                };
                round: {
                    doc: string;
                };
                miter: {
                    doc: string;
                };
                none: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "`none` value": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-miter-limit": {
            type: string;
            default: number;
            doc: string;
            requires: {
                "line-join": string;
            }[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-round-limit": {
            type: string;
            default: number;
            doc: string;
            requires: {
                "line-join": string;
            }[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-sort-key": {
            type: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-z-offset": {
            type: string;
            doc: string;
            default: number;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-elevation-reference": {
            type: string;
            doc: string;
            values: {
                none: {
                    doc: string;
                };
                sea: {
                    doc: string;
                };
                ground: {
                    doc: string;
                };
                "hd-road-markup": {
                    doc: string;
                };
            };
            default: string;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
        "line-cross-slope": {
            type: string;
            experimental: boolean;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
        visibility: {
            type: string;
            values: {
                visible: {
                    doc: string;
                };
                none: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "expressions support": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
        "line-width-unit": {
            type: string;
            doc: string;
            values: {
                pixels: {
                    doc: string;
                };
                meters: {
                    doc: string;
                };
            };
            default: string;
            experimental: boolean;
            private: boolean;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-elevation-ground-scale": {
            type: string;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            requires: string[];
            transition: boolean;
            "property-type": string;
        };
    };
    layout_symbol: {
        "symbol-placement": {
            type: string;
            values: {
                point: {
                    doc: string;
                };
                line: {
                    doc: string;
                };
                "line-center": {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "`line-center` value": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "symbol-spacing": {
            type: string;
            default: number;
            minimum: number;
            units: string;
            doc: string;
            requires: {
                "symbol-placement": string;
            }[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "symbol-avoid-edges": {
            type: string;
            default: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "symbol-sort-key": {
            type: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "symbol-z-order": {
            type: string;
            values: {
                auto: {
                    doc: string;
                };
                "viewport-y": {
                    doc: string;
                };
                source: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "symbol-z-elevate": {
            type: string;
            default: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            requires: ({
                "symbol-placement": string[];
                "symbol-z-order"?: undefined;
            } | {
                "symbol-z-order": string[];
                "symbol-placement"?: undefined;
            })[];
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "symbol-elevation-reference": {
            type: string;
            doc: string;
            values: {
                sea: {
                    doc: string;
                };
                ground: {
                    doc: string;
                };
                "hd-road-markup": {
                    doc: string;
                };
            };
            default: string;
            experimental: boolean;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                };
            };
            requires: {
                "symbol-z-elevate": boolean;
            }[];
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "icon-allow-overlap": {
            type: string;
            default: boolean;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "icon-ignore-placement": {
            type: string;
            default: boolean;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "icon-optional": {
            type: string;
            default: boolean;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "icon-rotation-alignment": {
            type: string;
            values: {
                map: {
                    doc: string;
                };
                viewport: {
                    doc: string;
                };
                auto: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "`auto` value": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "icon-size": {
            type: string;
            default: number;
            minimum: number;
            units: string;
            doc: string;
            appearance: boolean;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "icon-size-scale-range": {
            type: string;
            value: string;
            length: number;
            default: number[];
            doc: string;
            minimum: number[];
            maximum: number[];
            experimental: boolean;
            expression: {
                interpolated: boolean;
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                };
            };
            "property-type": string;
        };
        "icon-text-fit": {
            type: string;
            values: {
                none: {
                    doc: string;
                };
                width: {
                    doc: string;
                };
                height: {
                    doc: string;
                };
                both: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "stretchable icons": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "icon-text-fit-padding": {
            type: string;
            value: string;
            length: number;
            default: number[];
            units: string;
            doc: string;
            requires: (string | {
                "icon-text-fit": string[];
            })[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "icon-image": {
            type: string;
            doc: string;
            tokens: boolean;
            appearance: boolean;
            "use-theme": boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "icon-rotate": {
            type: string;
            default: number;
            period: number;
            units: string;
            doc: string;
            appearance: boolean;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "icon-padding": {
            type: string;
            default: number;
            minimum: number;
            units: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "icon-keep-upright": {
            type: string;
            default: boolean;
            doc: string;
            requires: (string | {
                "icon-rotation-alignment": string;
                "symbol-placement"?: undefined;
            } | {
                "symbol-placement": string[];
                "icon-rotation-alignment"?: undefined;
            })[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "icon-offset": {
            type: string;
            value: string;
            length: number;
            default: number[];
            doc: string;
            appearance: boolean;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "icon-anchor": {
            type: string;
            values: {
                center: {
                    doc: string;
                };
                left: {
                    doc: string;
                };
                right: {
                    doc: string;
                };
                top: {
                    doc: string;
                };
                bottom: {
                    doc: string;
                };
                "top-left": {
                    doc: string;
                };
                "top-right": {
                    doc: string;
                };
                "bottom-left": {
                    doc: string;
                };
                "bottom-right": {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "icon-pitch-alignment": {
            type: string;
            values: {
                map: {
                    doc: string;
                };
                viewport: {
                    doc: string;
                };
                auto: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-pitch-alignment": {
            type: string;
            values: {
                map: {
                    doc: string;
                };
                viewport: {
                    doc: string;
                };
                auto: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "`auto` value": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-rotation-alignment": {
            type: string;
            values: {
                map: {
                    doc: string;
                };
                viewport: {
                    doc: string;
                };
                auto: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "`auto` value": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-field": {
            type: string;
            default: string;
            tokens: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-font": {
            type: string;
            value: string;
            default: string[];
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-size": {
            type: string;
            default: number;
            minimum: number;
            units: string;
            doc: string;
            requires: string[];
            appearance: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-size-scale-range": {
            type: string;
            value: string;
            length: number;
            default: number[];
            doc: string;
            minimum: number[];
            maximum: number[];
            experimental: boolean;
            expression: {
                interpolated: boolean;
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                };
            };
            "property-type": string;
        };
        "text-max-width": {
            type: string;
            default: number;
            minimum: number;
            units: string;
            doc: string;
            requires: (string | {
                "symbol-placement": string[];
            })[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-line-height": {
            type: string;
            default: number;
            units: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-letter-spacing": {
            type: string;
            default: number;
            units: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-justify": {
            type: string;
            values: {
                auto: {
                    doc: string;
                };
                left: {
                    doc: string;
                };
                center: {
                    doc: string;
                };
                right: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
                auto: {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-radial-offset": {
            type: string;
            units: string;
            default: number;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            requires: string[];
            "property-type": string;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
        };
        "text-variable-anchor": {
            type: string;
            value: string;
            values: {
                center: {
                    doc: string;
                };
                left: {
                    doc: string;
                };
                right: {
                    doc: string;
                };
                top: {
                    doc: string;
                };
                bottom: {
                    doc: string;
                };
                "top-left": {
                    doc: string;
                };
                "top-right": {
                    doc: string;
                };
                "bottom-left": {
                    doc: string;
                };
                "bottom-right": {
                    doc: string;
                };
            };
            requires: (string | {
                "symbol-placement": string[];
            })[];
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-anchor": {
            type: string;
            values: {
                center: {
                    doc: string;
                };
                left: {
                    doc: string;
                };
                right: {
                    doc: string;
                };
                top: {
                    doc: string;
                };
                bottom: {
                    doc: string;
                };
                "top-left": {
                    doc: string;
                };
                "top-right": {
                    doc: string;
                };
                "bottom-left": {
                    doc: string;
                };
                "bottom-right": {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            requires: (string | {
                "!": string;
            })[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-max-angle": {
            type: string;
            default: number;
            units: string;
            doc: string;
            requires: (string | {
                "symbol-placement": string[];
            })[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-writing-mode": {
            type: string;
            value: string;
            values: {
                horizontal: {
                    doc: string;
                };
                vertical: {
                    doc: string;
                };
            };
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-rotate": {
            type: string;
            default: number;
            period: number;
            units: string;
            doc: string;
            requires: string[];
            appearance: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-padding": {
            type: string;
            default: number;
            minimum: number;
            units: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-keep-upright": {
            type: string;
            default: boolean;
            doc: string;
            requires: (string | {
                "text-rotation-alignment": string;
                "symbol-placement"?: undefined;
            } | {
                "symbol-placement": string[];
                "text-rotation-alignment"?: undefined;
            })[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-transform": {
            type: string;
            values: {
                none: {
                    doc: string;
                };
                uppercase: {
                    doc: string;
                };
                lowercase: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-offset": {
            type: string;
            doc: string;
            value: string;
            units: string;
            length: number;
            default: number[];
            requires: (string | {
                "!": string;
            })[];
            appearance: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-allow-overlap": {
            type: string;
            default: boolean;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-ignore-placement": {
            type: string;
            default: boolean;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-optional": {
            type: string;
            default: boolean;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        visibility: {
            type: string;
            values: {
                visible: {
                    doc: string;
                };
                none: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "expressions support": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
    };
    layout_raster: {
        visibility: {
            type: string;
            values: {
                visible: {
                    doc: string;
                };
                none: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "expressions support": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
    };
    "layout_raster-particle": {
        visibility: {
            type: string;
            values: {
                visible: {
                    doc: string;
                };
                none: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "expressions support": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
    };
    layout_hillshade: {
        visibility: {
            type: string;
            values: {
                visible: {
                    doc: string;
                };
                none: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "expressions support": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
    };
    filter: {
        type: string;
        value: string;
        doc: string;
    };
    filter_symbol: {
        type: string;
        doc: string;
        default: boolean;
        transition: boolean;
        "property-type": string;
        expression: {
            interpolated: boolean;
            parameters: string[];
        };
    };
    filter_fill: {
        type: string;
        doc: string;
        default: boolean;
        transition: boolean;
        "property-type": string;
        expression: {
            interpolated: boolean;
            parameters: string[];
        };
    };
    filter_hillshade: {
        type: string;
        doc: string;
        default: boolean;
        transition: boolean;
        "property-type": string;
        expression: {
            interpolated: boolean;
            parameters: string[];
        };
    };
    filter_raster: {
        type: string;
        doc: string;
        default: boolean;
        transition: boolean;
        "property-type": string;
        expression: {
            interpolated: boolean;
            parameters: string[];
        };
    };
    "filter_raster-particle": {
        type: string;
        doc: string;
        default: boolean;
        transition: boolean;
        "property-type": string;
        expression: {
            interpolated: boolean;
            parameters: string[];
        };
    };
    filter_clip: {
        type: string;
        doc: string;
        default: boolean;
        transition: boolean;
        "property-type": string;
        expression: {
            interpolated: boolean;
            parameters: string[];
        };
    };
    filter_model: {
        type: string;
        doc: string;
        default: boolean;
        transition: boolean;
        "property-type": string;
        expression: {
            interpolated: boolean;
            parameters: string[];
        };
    };
    filter_line: {
        type: string;
        doc: string;
        default: boolean;
        transition: boolean;
        "property-type": string;
        expression: {
            interpolated: boolean;
            parameters: string[];
        };
    };
    filter_circle: {
        type: string;
        doc: string;
        default: boolean;
        transition: boolean;
        "property-type": string;
        expression: {
            interpolated: boolean;
            parameters: string[];
        };
    };
    "filter_fill-extrusion": {
        type: string;
        doc: string;
        default: boolean;
        transition: boolean;
        "property-type": string;
        expression: {
            interpolated: boolean;
            parameters: string[];
        };
    };
    filter_building: {
        type: string;
        doc: string;
        default: boolean;
        transition: boolean;
        "property-type": string;
        expression: {
            interpolated: boolean;
            parameters: string[];
        };
    };
    filter_heatmap: {
        type: string;
        doc: string;
        default: boolean;
        transition: boolean;
        "property-type": string;
        expression: {
            interpolated: boolean;
            parameters: string[];
        };
    };
    filter_operator: {
        type: string;
        values: {
            "==": {
                doc: string;
            };
            "!=": {
                doc: string;
            };
            ">": {
                doc: string;
            };
            ">=": {
                doc: string;
            };
            "<": {
                doc: string;
            };
            "<=": {
                doc: string;
            };
            in: {
                doc: string;
            };
            "!in": {
                doc: string;
            };
            all: {
                doc: string;
            };
            any: {
                doc: string;
            };
            none: {
                doc: string;
            };
            has: {
                doc: string;
            };
            "!has": {
                doc: string;
            };
        };
        doc: string;
    };
    geometry_type: {
        type: string;
        values: {
            Point: {
                doc: string;
            };
            LineString: {
                doc: string;
            };
            Polygon: {
                doc: string;
            };
        };
        doc: string;
    };
    function: {
        expression: {
            type: string;
            doc: string;
        };
        stops: {
            type: string;
            doc: string;
            value: string;
        };
        base: {
            type: string;
            default: number;
            minimum: number;
            doc: string;
        };
        property: {
            type: string;
            doc: string;
            default: string;
        };
        type: {
            type: string;
            values: {
                identity: {
                    doc: string;
                };
                exponential: {
                    doc: string;
                };
                interval: {
                    doc: string;
                };
                categorical: {
                    doc: string;
                };
            };
            doc: string;
            default: string;
        };
        colorSpace: {
            type: string;
            values: {
                rgb: {
                    doc: string;
                };
                lab: {
                    doc: string;
                };
                hcl: {
                    doc: string;
                };
            };
            doc: string;
            default: string;
        };
        default: {
            type: string;
            required: boolean;
            doc: string;
        };
    };
    function_stop: {
        type: string;
        minimum: number;
        maximum: number;
        value: string[];
        length: number;
        doc: string;
    };
    expression: {
        type: string;
        value: string;
        minimum: number;
        doc: string;
    };
    expression_name: {
        doc: string;
        type: string;
        values: {
            let: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            var: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            config: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            literal: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            array: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            at: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "at-interpolated": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            in: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "index-of": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            slice: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            split: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            case: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            match: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            coalesce: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            step: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            interpolate: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "interpolate-hcl": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                    };
                };
            };
            "interpolate-lab": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                    };
                };
            };
            ln2: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            pi: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            e: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            typeof: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            string: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            number: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            boolean: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            object: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            collator: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            format: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                    "text-font": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                    "font-scale": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                    "text-color": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                    image: {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            image: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "number-format": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "to-string": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "to-number": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "to-boolean": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "to-rgba": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "to-hsla": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "to-color": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            rgb: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            rgba: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            hsl: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            hsla: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            get: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            has: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            length: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            properties: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "feature-state": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "geometry-type": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            worldview: {
                doc: string;
                group: string;
                experimental: boolean;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            id: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            zoom: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            pitch: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "distance-from-center": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "measure-light": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "heatmap-density": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "line-progress": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "sky-radial-progress": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        ios: string;
                        android: string;
                    };
                };
            };
            accumulated: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "+": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "*": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "-": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "/": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "%": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "^": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            sqrt: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            log10: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            ln: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            log2: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            sin: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            cos: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            tan: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            asin: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            acos: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            atan: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            min: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            max: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            round: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            abs: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            ceil: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            floor: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            distance: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "==": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                    collator: {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "!=": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                    collator: {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            ">": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                    collator: {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "<": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                    collator: {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            ">=": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                    collator: {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "<=": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                    collator: {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            all: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            any: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "!": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            within: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "is-supported-script": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            upcase: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            downcase: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            concat: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "resolved-locale": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "raster-value": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "raster-particle-speed": {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            "is-active-floor": {
                doc: string;
                group: string;
                experimental: boolean;
                private: boolean;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
            random: {
                doc: string;
                group: string;
                "sdk-support": {
                    "basic functionality": {
                        js: string;
                        android: string;
                        ios: string;
                    };
                };
            };
        };
    };
    fog: {
        range: {
            type: string;
            default: number[];
            minimum: number;
            maximum: number;
            length: number;
            value: string;
            "property-type": string;
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            doc: string;
            example: number[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        color: {
            type: string;
            "property-type": string;
            default: string;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            "use-theme": boolean;
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "high-color": {
            type: string;
            "property-type": string;
            default: string;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            "use-theme": boolean;
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "space-color": {
            type: string;
            "property-type": string;
            default: (string | number | string[])[];
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            "use-theme": boolean;
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "horizon-blend": {
            type: string;
            "property-type": string;
            default: (string | number | string[])[];
            minimum: number;
            maximum: number;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "star-intensity": {
            type: string;
            "property-type": string;
            default: (string | number | string[])[];
            minimum: number;
            maximum: number;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "vertical-range": {
            type: string;
            default: number[];
            minimum: number;
            length: number;
            value: string;
            "property-type": string;
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
    };
    snow: {
        density: {
            type: string;
            "property-type": string;
            default: (string | number | string[])[];
            minimum: number;
            maximum: number;
            experimental: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
        };
        intensity: {
            type: string;
            "property-type": string;
            default: number;
            minimum: number;
            maximum: number;
            experimental: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
        };
        color: {
            type: string;
            "property-type": string;
            default: string;
            experimental: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            "use-theme": boolean;
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
        };
        opacity: {
            type: string;
            "property-type": string;
            default: number;
            minimum: number;
            maximum: number;
            experimental: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
        };
        vignette: {
            type: string;
            "property-type": string;
            default: (string | number | string[])[];
            minimum: number;
            maximum: number;
            experimental: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
        };
        "vignette-color": {
            type: string;
            "property-type": string;
            default: string;
            experimental: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            "use-theme": boolean;
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
        };
        "center-thinning": {
            type: string;
            "property-type": string;
            default: number;
            minimum: number;
            maximum: number;
            experimental: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
        };
        direction: {
            type: string;
            default: number[];
            minimum: number;
            maximum: number;
            length: number;
            value: string;
            "property-type": string;
            transition: boolean;
            experimental: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            doc: string;
            example: number[];
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
        };
        "flake-size": {
            type: string;
            "property-type": string;
            default: number;
            minimum: number;
            maximum: number;
            experimental: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
        };
    };
    rain: {
        density: {
            type: string;
            "property-type": string;
            default: (string | number | string[])[];
            minimum: number;
            maximum: number;
            experimental: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
        };
        intensity: {
            type: string;
            "property-type": string;
            default: number;
            minimum: number;
            maximum: number;
            experimental: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
        };
        color: {
            type: string;
            "property-type": string;
            default: (string | number | string[])[];
            experimental: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            "use-theme": boolean;
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
        };
        opacity: {
            type: string;
            "property-type": string;
            default: (string | number | string[])[];
            minimum: number;
            maximum: number;
            experimental: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
        };
        vignette: {
            type: string;
            "property-type": string;
            default: (string | number | string[])[];
            minimum: number;
            maximum: number;
            experimental: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
        };
        "vignette-color": {
            type: string;
            "property-type": string;
            default: (string | number | string[])[];
            experimental: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            "use-theme": boolean;
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
        };
        "center-thinning": {
            type: string;
            "property-type": string;
            default: number;
            minimum: number;
            maximum: number;
            experimental: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
        };
        direction: {
            type: string;
            default: number[];
            minimum: number;
            maximum: number;
            length: number;
            value: string;
            "property-type": string;
            transition: boolean;
            experimental: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            doc: string;
            example: number[];
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
        };
        "droplet-size": {
            type: string;
            default: number[];
            minimum: number;
            maximum: number;
            length: number;
            value: string;
            "property-type": string;
            transition: boolean;
            experimental: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            doc: string;
            example: number[];
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
        };
        "distortion-strength": {
            type: string;
            "property-type": string;
            default: number;
            minimum: number;
            maximum: number;
            experimental: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
                relaxZoomRestriction: boolean;
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
        };
    };
    camera: {
        "camera-projection": {
            doc: string;
            type: string;
            values: {
                perspective: {
                    doc: string;
                };
                orthographic: {
                    doc: string;
                };
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            default: string;
            "property-type": string;
        };
    };
    colorTheme: {
        data: {
            type: string;
            doc: string;
            transition: boolean;
            "property-type": string;
            expression: {
                interpolated: boolean;
            };
        };
    };
    indoor_source: {
        sourceId: {
            type: string;
            doc: string;
            experimental: boolean;
            private: boolean;
            transition: boolean;
            "property-type": string;
        };
        sourceLayers: {
            type: string;
            value: string;
            doc: string;
            experimental: boolean;
            private: boolean;
            transition: boolean;
            "property-type": string;
        };
    };
    indoor: {
        "*": {
            type: string;
            private: boolean;
            experimental: boolean;
            doc: string;
        };
    };
    light: {
        anchor: {
            type: string;
            default: string;
            values: {
                map: {
                    doc: string;
                };
                viewport: {
                    doc: string;
                };
            };
            "property-type": string;
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            doc: string;
            example: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        position: {
            type: string;
            default: number[];
            length: number;
            value: string;
            "property-type": string;
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            doc: string;
            example: number[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        color: {
            type: string;
            "property-type": string;
            default: string;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "use-theme": boolean;
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        intensity: {
            type: string;
            "property-type": string;
            default: number;
            minimum: number;
            maximum: number;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
    };
    projection: {
        name: {
            type: string;
            values: {
                albers: {
                    doc: string;
                };
                equalEarth: {
                    doc: string;
                };
                equirectangular: {
                    doc: string;
                };
                lambertConformalConic: {
                    doc: string;
                };
                mercator: {
                    doc: string;
                };
                naturalEarth: {
                    doc: string;
                };
                winkelTripel: {
                    doc: string;
                };
                globe: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            required: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    ios: string;
                    android: string;
                };
            };
        };
        center: {
            type: string;
            length: number;
            value: string;
            "property-type": string;
            minimum: number[];
            maximum: number[];
            transition: boolean;
            doc: string;
            example: number[];
            requires: {
                name: string[];
            }[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                };
            };
        };
        parallels: {
            type: string;
            length: number;
            value: string;
            "property-type": string;
            minimum: number[];
            maximum: number[];
            transition: boolean;
            doc: string;
            example: number[];
            requires: {
                name: string[];
            }[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                };
            };
        };
    };
    terrain: {
        source: {
            type: string;
            doc: string;
            required: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    ios: string;
                    android: string;
                };
            };
        };
        exaggeration: {
            type: string;
            "property-type": string;
            default: number;
            minimum: number;
            maximum: number;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            transition: boolean;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    ios: string;
                    android: string;
                };
            };
        };
    };
    paint: string[];
    paint_fill: {
        "fill-antialias": {
            type: string;
            default: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "fill-opacity": {
            type: string;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "fill-color": {
            type: string;
            default: string;
            doc: string;
            "use-theme": boolean;
            transition: boolean;
            requires: {
                "!": string;
            }[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "fill-outline-color": {
            type: string;
            doc: string;
            "use-theme": boolean;
            transition: boolean;
            requires: ({
                "!": string;
                "fill-antialias"?: undefined;
            } | {
                "fill-antialias": boolean;
                "!"?: undefined;
            })[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "fill-translate": {
            type: string;
            value: string;
            length: number;
            default: number[];
            transition: boolean;
            units: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "fill-translate-anchor": {
            type: string;
            values: {
                map: {
                    doc: string;
                };
                viewport: {
                    doc: string;
                };
            };
            doc: string;
            default: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "fill-pattern": {
            type: string;
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "fill-pattern-cross-fade": {
            type: string;
            "property-type": string;
            default: number;
            minimum: number;
            maximum: number;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            doc: string;
        };
        "fill-emissive-strength": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            units: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "fill-z-offset": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            transition: boolean;
            experimental: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                };
                "data-driven styling": {
                    js: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "fill-bridge-guard-rail-color": {
            type: string;
            default: string;
            doc: string;
            experimental: boolean;
            private: boolean;
            "use-theme": boolean;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
                "data-driven styling": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "fill-tunnel-structure-color": {
            type: string;
            default: string;
            doc: string;
            "use-theme": boolean;
            transition: boolean;
            experimental: boolean;
            private: boolean;
            "sdk-support": {
                "basic functionality": {
                    android: string;
                    ios: string;
                    js: string;
                };
                "data-driven styling": {
                    android: string;
                    ios: string;
                    js: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
    };
    "paint_fill-extrusion": {
        "fill-extrusion-opacity": {
            type: string;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "fill-extrusion-color": {
            type: string;
            default: string;
            doc: string;
            "use-theme": boolean;
            transition: boolean;
            requires: {
                "!": string;
            }[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "fill-extrusion-translate": {
            type: string;
            value: string;
            length: number;
            default: number[];
            transition: boolean;
            units: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "fill-extrusion-translate-anchor": {
            type: string;
            values: {
                map: {
                    doc: string;
                };
                viewport: {
                    doc: string;
                };
            };
            doc: string;
            default: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "fill-extrusion-pattern": {
            type: string;
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "fill-extrusion-pattern-cross-fade": {
            type: string;
            "property-type": string;
            default: number;
            minimum: number;
            maximum: number;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            doc: string;
        };
        "fill-extrusion-height": {
            type: string;
            default: number;
            minimum: number;
            units: string;
            doc: string;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "fill-extrusion-base": {
            type: string;
            default: number;
            minimum: number;
            units: string;
            doc: string;
            transition: boolean;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "fill-extrusion-height-alignment": {
            type: string;
            experimental: boolean;
            values: {
                terrain: {
                    doc: string;
                };
                flat: {
                    doc: string;
                };
            };
            doc: string;
            default: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            "property-type": string;
        };
        "fill-extrusion-base-alignment": {
            type: string;
            experimental: boolean;
            values: {
                terrain: {
                    doc: string;
                };
                flat: {
                    doc: string;
                };
            };
            doc: string;
            default: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            "property-type": string;
        };
        "fill-extrusion-vertical-gradient": {
            type: string;
            default: boolean;
            doc: string;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "fill-extrusion-ambient-occlusion-intensity": {
            "property-type": string;
            type: string;
            default: number;
            minimum: number;
            maximum: number;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "fill-extrusion-ambient-occlusion-radius": {
            "property-type": string;
            type: string;
            default: number;
            minimum: number;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            transition: boolean;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "fill-extrusion-ambient-occlusion-wall-radius": {
            "property-type": string;
            type: string;
            experimental: boolean;
            default: number;
            minimum: number;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            transition: boolean;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "fill-extrusion-ambient-occlusion-ground-radius": {
            "property-type": string;
            type: string;
            experimental: boolean;
            default: number;
            minimum: number;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            transition: boolean;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "fill-extrusion-ambient-occlusion-ground-attenuation": {
            "property-type": string;
            type: string;
            experimental: boolean;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            requires: string[];
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "fill-extrusion-flood-light-color": {
            "property-type": string;
            type: string;
            experimental: boolean;
            default: string;
            doc: string;
            requires: string[];
            "use-theme": boolean;
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "fill-extrusion-flood-light-intensity": {
            "property-type": string;
            type: string;
            experimental: boolean;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            requires: string[];
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "fill-extrusion-flood-light-wall-radius": {
            "property-type": string;
            type: string;
            experimental: boolean;
            units: string;
            default: number;
            minimum: number;
            doc: string;
            requires: string[];
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "fill-extrusion-flood-light-ground-radius": {
            "property-type": string;
            type: string;
            experimental: boolean;
            units: string;
            default: number;
            doc: string;
            requires: string[];
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "fill-extrusion-flood-light-ground-attenuation": {
            "property-type": string;
            type: string;
            experimental: boolean;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            requires: string[];
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "fill-extrusion-vertical-scale": {
            "property-type": string;
            type: string;
            experimental: boolean;
            default: number;
            minimum: number;
            doc: string;
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "fill-extrusion-rounded-roof": {
            "property-type": string;
            type: string;
            default: boolean;
            experimental: boolean;
            doc: string;
            requires: string[];
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
        };
        "fill-extrusion-cutoff-fade-range": {
            type: string;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            transition: boolean;
            expression: {
                interpolated: boolean;
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            "property-type": string;
        };
        "fill-extrusion-front-cutoff": {
            type: string;
            private: boolean;
            experimental: boolean;
            value: string;
            "property-type": string;
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            length: number;
            default: number[];
            minimum: number[];
            maximum: number[];
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "fill-extrusion-emissive-strength": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            units: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "fill-extrusion-line-width": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            experimental: boolean;
            units: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "fill-extrusion-cast-shadows": {
            type: string;
            default: boolean;
            doc: string;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            "property-type": string;
        };
    };
    paint_building: {
        "building-opacity": {
            type: string;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            transition: boolean;
            private: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "building-ambient-occlusion-intensity": {
            "property-type": string;
            type: string;
            default: number;
            minimum: number;
            maximum: number;
            private: boolean;
            expression: {
                interpolated: boolean;
                parameters: any[];
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "building-ambient-occlusion-ground-intensity": {
            "property-type": string;
            type: string;
            default: number;
            minimum: number;
            maximum: number;
            private: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "building-ambient-occlusion-ground-radius": {
            "property-type": string;
            type: string;
            private: boolean;
            default: number;
            minimum: number;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "building-ambient-occlusion-ground-attenuation": {
            "property-type": string;
            type: string;
            private: boolean;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "building-vertical-scale": {
            "property-type": string;
            type: string;
            private: boolean;
            default: number;
            minimum: number;
            doc: string;
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "building-cast-shadows": {
            type: string;
            default: boolean;
            doc: string;
            transition: boolean;
            private: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            "property-type": string;
        };
        "building-color": {
            type: string;
            default: string;
            doc: string;
            private: boolean;
            "use-theme": boolean;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "building-emissive-strength": {
            type: string;
            default: number;
            minimum: number;
            maximum: number;
            units: string;
            doc: string;
            private: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "building-facade-emissive-chance": {
            type: string;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            private: boolean;
            "property-type": string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
        };
        "building-cutoff-fade-range": {
            type: string;
            private: boolean;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            transition: boolean;
            expression: {
                interpolated: boolean;
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            "property-type": string;
        };
        "building-front-cutoff": {
            type: string;
            private: boolean;
            experimental: boolean;
            value: string;
            "property-type": string;
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            length: number;
            default: number[];
            minimum: number[];
            maximum: number[];
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "building-flood-light-color": {
            "property-type": string;
            type: string;
            private: boolean;
            default: string;
            doc: string;
            requires: string[];
            "use-theme": boolean;
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "building-flood-light-intensity": {
            "property-type": string;
            type: string;
            private: boolean;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            requires: string[];
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "building-flood-light-ground-attenuation": {
            "property-type": string;
            type: string;
            private: boolean;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            requires: string[];
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
    };
    paint_line: {
        "line-opacity": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            maximum: number;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-color": {
            type: string;
            doc: string;
            default: string;
            "use-theme": boolean;
            transition: boolean;
            requires: {
                "!": string;
            }[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-translate": {
            type: string;
            value: string;
            length: number;
            default: number[];
            transition: boolean;
            units: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-translate-anchor": {
            type: string;
            values: {
                map: {
                    doc: string;
                };
                viewport: {
                    doc: string;
                };
            };
            doc: string;
            default: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-width": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            units: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-gap-width": {
            type: string;
            default: number;
            minimum: number;
            doc: string;
            transition: boolean;
            units: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-offset": {
            type: string;
            default: number;
            doc: string;
            transition: boolean;
            units: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-blur": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            units: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-dasharray": {
            type: string;
            value: string;
            doc: string;
            minimum: number;
            transition: boolean;
            units: string;
            requires: {
                "!": string;
            }[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-pattern": {
            type: string;
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-pattern-cross-fade": {
            type: string;
            "property-type": string;
            default: number;
            minimum: number;
            maximum: number;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            doc: string;
        };
        "line-gradient": {
            type: string;
            doc: string;
            example: (string | number | string[])[];
            "use-theme": boolean;
            transition: boolean;
            requires: ({
                "!": string;
                source?: undefined;
                has?: undefined;
            } | {
                source: string;
                has: {
                    lineMetrics: boolean;
                };
                "!"?: undefined;
            })[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {};
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-trim-offset": {
            type: string;
            value: string;
            doc: string;
            length: number;
            default: number[];
            minimum: number[];
            maximum: number[];
            transition: boolean;
            requires: {
                source: string;
                has: {
                    lineMetrics: boolean;
                };
            }[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            "property-type": string;
        };
        "line-trim-fade-range": {
            type: string;
            value: string;
            doc: string;
            experimental: boolean;
            length: number;
            default: number[];
            minimum: number[];
            maximum: number[];
            transition: boolean;
            requires: (string | {
                source: string;
                has: {
                    lineMetrics: boolean;
                };
            })[];
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            "property-type": string;
        };
        "line-trim-color": {
            type: string;
            doc: string;
            experimental: boolean;
            default: string;
            "use-theme": boolean;
            transition: boolean;
            requires: (string | {
                source: string;
                has: {
                    lineMetrics: boolean;
                };
            })[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-emissive-strength": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            units: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-border-width": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-border-color": {
            type: string;
            doc: string;
            default: string;
            "use-theme": boolean;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-border-gradient": {
            type: string;
            experimental: boolean;
            doc: string;
            example: (string | number | string[])[];
            "use-theme": boolean;
            transition: boolean;
            requires: ({
                "!": string;
                source?: undefined;
                has?: undefined;
            } | {
                source: string;
                has: {
                    lineMetrics: boolean;
                };
                "!"?: undefined;
            })[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {};
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-occlusion-opacity": {
            type: string;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            transition: boolean;
            "property-type": string;
        };
        "line-blend-mode": {
            type: string;
            values: {
                default: {
                    doc: string;
                };
                multiply: {
                    doc: string;
                };
                additive: {
                    doc: string;
                };
            };
            doc: string;
            default: string;
            experimental: boolean;
            private: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "line-blend-additive-clamp": {
            type: string;
            default: number;
            minimum: number;
            doc: string;
            experimental: boolean;
            private: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
    };
    paint_circle: {
        "circle-radius": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            units: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "circle-color": {
            type: string;
            default: string;
            doc: string;
            "use-theme": boolean;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "circle-blur": {
            type: string;
            default: number;
            doc: string;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "circle-opacity": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            maximum: number;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "circle-translate": {
            type: string;
            value: string;
            length: number;
            default: number[];
            transition: boolean;
            units: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "circle-translate-anchor": {
            type: string;
            values: {
                map: {
                    doc: string;
                };
                viewport: {
                    doc: string;
                };
            };
            doc: string;
            default: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "circle-pitch-scale": {
            type: string;
            values: {
                map: {
                    doc: string;
                };
                viewport: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "circle-pitch-alignment": {
            type: string;
            values: {
                map: {
                    doc: string;
                };
                viewport: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "circle-stroke-width": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            units: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "circle-stroke-color": {
            type: string;
            default: string;
            doc: string;
            "use-theme": boolean;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "circle-stroke-opacity": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            maximum: number;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "circle-emissive-strength": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            units: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
    };
    paint_heatmap: {
        "heatmap-radius": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            units: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "heatmap-weight": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "heatmap-intensity": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "heatmap-color": {
            type: string;
            default: (string | number | string[])[];
            doc: string;
            "use-theme": boolean;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {};
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "heatmap-opacity": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            maximum: number;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
    };
    paint_symbol: {
        "icon-opacity": {
            doc: string;
            type: string;
            default: number;
            minimum: number;
            maximum: number;
            transition: boolean;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            appearance: boolean;
            "property-type": string;
        };
        "icon-occlusion-opacity": {
            doc: string;
            type: string;
            minimum: number;
            maximum: number;
            default: number;
            transition: boolean;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            appearance: boolean;
            "property-type": string;
        };
        "icon-emissive-strength": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            units: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            appearance: boolean;
            "property-type": string;
        };
        "text-emissive-strength": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            units: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            appearance: boolean;
            "property-type": string;
        };
        "icon-color": {
            type: string;
            default: string;
            "use-theme": boolean;
            transition: boolean;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            appearance: boolean;
            "property-type": string;
        };
        "icon-halo-color": {
            type: string;
            default: string;
            "use-theme": boolean;
            transition: boolean;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            appearance: boolean;
            "property-type": string;
        };
        "icon-halo-width": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            units: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            appearance: boolean;
            "property-type": string;
        };
        "icon-halo-blur": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            units: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            appearance: boolean;
            "property-type": string;
        };
        "icon-translate": {
            type: string;
            value: string;
            length: number;
            default: number[];
            transition: boolean;
            appearance: boolean;
            units: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "icon-translate-anchor": {
            type: string;
            values: {
                map: {
                    doc: string;
                };
                viewport: {
                    doc: string;
                };
            };
            doc: string;
            default: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "icon-image-cross-fade": {
            type: string;
            "property-type": string;
            default: number;
            minimum: number;
            maximum: number;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            doc: string;
        };
        "text-opacity": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            maximum: number;
            transition: boolean;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            appearance: boolean;
            "property-type": string;
        };
        "text-occlusion-opacity": {
            type: string;
            doc: string;
            minimum: number;
            maximum: number;
            default: number;
            transition: boolean;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            appearance: boolean;
            "property-type": string;
        };
        "text-color": {
            type: string;
            doc: string;
            default: string;
            "use-theme": boolean;
            transition: boolean;
            overridable: boolean;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            appearance: boolean;
            "property-type": string;
        };
        "text-halo-color": {
            type: string;
            default: string;
            "use-theme": boolean;
            transition: boolean;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            appearance: boolean;
            "property-type": string;
        };
        "text-halo-width": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            units: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            appearance: boolean;
            "property-type": string;
        };
        "text-halo-blur": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            units: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            appearance: boolean;
            "property-type": string;
        };
        "text-translate": {
            type: string;
            value: string;
            length: number;
            default: number[];
            transition: boolean;
            appearance: boolean;
            units: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "text-translate-anchor": {
            type: string;
            values: {
                map: {
                    doc: string;
                };
                viewport: {
                    doc: string;
                };
            };
            doc: string;
            default: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "icon-color-saturation": {
            type: string;
            default: number;
            minimum: number;
            maximum: number;
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
        "icon-color-contrast": {
            type: string;
            default: number;
            minimum: number;
            maximum: number;
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
        "icon-color-brightness-min": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            maximum: number;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
        "icon-color-brightness-max": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            maximum: number;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
        "symbol-z-offset": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            transition: boolean;
            experimental: boolean;
            appearance: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            requires: {
                "symbol-z-elevate": boolean;
            }[];
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
    };
    paint_raster: {
        "raster-opacity": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            maximum: number;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "raster-color": {
            type: string;
            doc: string;
            "use-theme": boolean;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {};
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "raster-color-mix": {
            type: string;
            default: number[];
            length: number;
            value: string;
            "property-type": string;
            transition: boolean;
            requires: string[];
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            doc: string;
            example: number[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "raster-color-range": {
            type: string;
            length: number;
            value: string;
            "property-type": string;
            transition: boolean;
            requires: string[];
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            doc: string;
            example: number[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "raster-hue-rotate": {
            type: string;
            default: number;
            period: number;
            transition: boolean;
            units: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "raster-brightness-min": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            maximum: number;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "raster-brightness-max": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            maximum: number;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "raster-saturation": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            maximum: number;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "raster-contrast": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            maximum: number;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "raster-resampling": {
            type: string;
            doc: string;
            values: {
                linear: {
                    doc: string;
                };
                nearest: {
                    doc: string;
                };
            };
            default: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "raster-fade-duration": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            units: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "raster-emissive-strength": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            units: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "raster-array-band": {
            type: string;
            required: boolean;
            experimental: boolean;
            "property-type": string;
            transition: boolean;
            requires: {
                source: string;
            }[];
            doc: string;
            example: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "raster-elevation": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            transition: boolean;
            experimental: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "raster-elevation-reference": {
            type: string;
            doc: string;
            values: {
                sea: {
                    doc: string;
                };
                ground: {
                    doc: string;
                };
            };
            default: string;
            transition: boolean;
            experimental: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
        };
    };
    "paint_raster-particle": {
        "raster-particle-array-band": {
            type: string;
            required: boolean;
            "property-type": string;
            transition: boolean;
            doc: string;
            example: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "raster-particle-count": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            "property-type": string;
        };
        "raster-particle-color": {
            type: string;
            doc: string;
            "use-theme": boolean;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {};
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "raster-particle-max-speed": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            "property-type": string;
        };
        "raster-particle-speed-factor": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            maximum: number;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "raster-particle-fade-opacity-factor": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            maximum: number;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "raster-particle-reset-rate-factor": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            maximum: number;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            "property-type": string;
        };
        "raster-particle-elevation": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
    };
    paint_hillshade: {
        "hillshade-illumination-direction": {
            type: string;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "hillshade-illumination-anchor": {
            type: string;
            values: {
                map: {
                    doc: string;
                };
                viewport: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "hillshade-exaggeration": {
            type: string;
            doc: string;
            default: number;
            minimum: number;
            maximum: number;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "hillshade-shadow-color": {
            type: string;
            default: string;
            doc: string;
            "use-theme": boolean;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "hillshade-highlight-color": {
            type: string;
            default: string;
            doc: string;
            "use-theme": boolean;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "hillshade-accent-color": {
            type: string;
            default: string;
            doc: string;
            "use-theme": boolean;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "hillshade-emissive-strength": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            units: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
    };
    paint_background: {
        "background-pitch-alignment": {
            type: string;
            values: {
                map: {
                    doc: string;
                };
                viewport: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: any[];
            };
            experimental: boolean;
            "property-type": string;
        };
        "background-color": {
            type: string;
            default: string;
            doc: string;
            "use-theme": boolean;
            transition: boolean;
            requires: {
                "!": string;
            }[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "background-pattern": {
            type: string;
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "background-opacity": {
            type: string;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "background-emissive-strength": {
            type: string;
            default: number;
            minimum: number;
            transition: boolean;
            units: string;
            doc: string;
            requires: string[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
    };
    paint_sky: {
        "sky-type": {
            type: string;
            values: {
                gradient: {
                    doc: string;
                };
                atmosphere: {
                    doc: string;
                };
            };
            default: string;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    ios: string;
                    android: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "sky-atmosphere-sun": {
            type: string;
            value: string;
            length: number;
            units: string;
            minimum: number[];
            maximum: number[];
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    ios: string;
                    android: string;
                };
            };
            requires: {
                "sky-type": string;
            }[];
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "sky-atmosphere-sun-intensity": {
            type: string;
            requires: {
                "sky-type": string;
            }[];
            default: number;
            minimum: number;
            maximum: number;
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    ios: string;
                    android: string;
                };
            };
            "property-type": string;
        };
        "sky-gradient-center": {
            type: string;
            requires: {
                "sky-type": string;
            }[];
            value: string;
            default: number[];
            length: number;
            units: string;
            minimum: number[];
            maximum: number[];
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    ios: string;
                    android: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "sky-gradient-radius": {
            type: string;
            requires: {
                "sky-type": string;
            }[];
            default: number;
            minimum: number;
            maximum: number;
            transition: boolean;
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    ios: string;
                    android: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "sky-gradient": {
            type: string;
            default: (string | number | string[])[];
            doc: string;
            "use-theme": boolean;
            transition: boolean;
            requires: {
                "sky-type": string;
            }[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    ios: string;
                    android: string;
                };
                "data-driven styling": {};
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
        "sky-atmosphere-halo-color": {
            type: string;
            default: string;
            doc: string;
            "use-theme": boolean;
            transition: boolean;
            requires: {
                "sky-type": string;
            }[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    ios: string;
                    android: string;
                };
            };
            "property-type": string;
        };
        "sky-atmosphere-color": {
            type: string;
            default: string;
            doc: string;
            "use-theme": boolean;
            transition: boolean;
            requires: {
                "sky-type": string;
            }[];
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    ios: string;
                    android: string;
                };
            };
            "property-type": string;
        };
        "sky-opacity": {
            type: string;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    ios: string;
                    android: string;
                };
            };
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "property-type": string;
        };
    };
    paint_model: {
        "model-opacity": {
            type: string;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            "property-type": string;
        };
        "model-rotation": {
            type: string;
            value: string;
            length: number;
            default: number[];
            period: number;
            units: string;
            "property-type": string;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            transition: boolean;
            doc: string;
        };
        "model-scale": {
            type: string;
            value: string;
            length: number;
            default: number[];
            doc: string;
            "property-type": string;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            transition: boolean;
        };
        "model-translation": {
            type: string;
            value: string;
            length: number;
            default: number[];
            "property-type": string;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            transition: boolean;
            doc: string;
        };
        "model-color": {
            type: string;
            default: string;
            doc: string;
            "property-type": string;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            "use-theme": boolean;
            transition: boolean;
        };
        "model-color-mix-intensity": {
            type: string;
            "property-type": string;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            transition: boolean;
        };
        "model-type": {
            type: string;
            values: {
                "common-3d": {
                    doc: string;
                };
                "location-indicator": {
                    doc: string;
                };
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            default: string;
            doc: string;
            "property-type": string;
        };
        "model-cast-shadows": {
            type: string;
            default: boolean;
            doc: string;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            "property-type": string;
        };
        "model-receive-shadows": {
            type: string;
            default: boolean;
            doc: string;
            transition: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            "property-type": string;
        };
        "model-ambient-occlusion-intensity": {
            type: string;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            "property-type": string;
            transition: boolean;
        };
        "model-emissive-strength": {
            type: string;
            "property-type": string;
            default: number;
            minimum: number;
            maximum: number;
            units: string;
            doc: string;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            transition: boolean;
        };
        "model-roughness": {
            type: string;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            "property-type": string;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            transition: boolean;
        };
        "model-height-based-emissive-strength-multiplier": {
            type: string;
            default: number[];
            length: number;
            value: string;
            doc: string;
            "property-type": string;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
                "data-driven styling": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            transition: boolean;
        };
        "model-cutoff-fade-range": {
            type: string;
            default: number;
            minimum: number;
            maximum: number;
            doc: string;
            transition: boolean;
            expression: {
                interpolated: boolean;
            };
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
            "property-type": string;
        };
        "model-front-cutoff": {
            type: string;
            private: boolean;
            value: string;
            "property-type": string;
            transition: boolean;
            expression: {
                interpolated: boolean;
                parameters: string[];
            };
            length: number;
            default: number[];
            minimum: number[];
            maximum: number[];
            doc: string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                };
            };
        };
        "model-elevation-reference": {
            type: string;
            doc: string;
            values: {
                sea: {
                    doc: string;
                };
                ground: {
                    doc: string;
                };
                "hd-road-markup": {
                    doc: string;
                };
            };
            default: string;
            transition: boolean;
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
        "model-line-cutout-mode": {
            type: string;
            doc: string;
            default: string;
            values: {
                enabled: {
                    doc: string;
                };
                disabled: {
                    doc: string;
                };
                "enabled-above-cutout": {
                    doc: string;
                };
            };
            transition: boolean;
            expression: {
                interpolated: boolean;
            };
            "property-type": string;
            experimental: boolean;
            private: boolean;
            "sdk-support": {
                "basic functionality": {
                    js: string;
                    android: string;
                    ios: string;
                };
            };
        };
    };
    transition: {
        duration: {
            type: string;
            default: number;
            minimum: number;
            units: string;
            doc: string;
        };
        delay: {
            type: string;
            default: number;
            minimum: number;
            units: string;
            doc: string;
        };
    };
    "property-type": {
        "data-driven": {
            type: string;
            doc: string;
        };
        "color-ramp": {
            type: string;
            doc: string;
        };
        "data-constant": {
            type: string;
            doc: string;
        };
        constant: {
            type: string;
            doc: string;
        };
    };
    promoteId: {
        "*": {
            type: string;
            doc: string;
        };
    };
    $doc: {
        transition: {
            type: string;
            doc: string;
        };
        "use-theme": {
            type: string;
            doc: string;
            values: {
                default: {
                    doc: string;
                };
                none: {
                    doc: string;
                };
            };
            default: string;
        };
    };
};

type StyleReference = Record<any, any>;
declare const _default: StyleReference;

/**
 * Format a Mapbox GL Style.  Returns a stringified style with its keys
 * sorted in the same order as the reference style.
 *
 * The optional `space` argument is passed to
 * [`JSON.stringify`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify)
 * to generate formatted output.
 *
 * If `space` is unspecified, a default of `2` spaces will be used.
 *
 * @private
 * @param {Object} style a Mapbox GL Style
 * @param {number} [space] space argument to pass to `JSON.stringify`
 * @returns {string} stringified formatted JSON
 * @example
 * var fs = require('fs');
 * var format = require('mapbox-gl-style-spec').format;
 * var style = fs.readFileSync('./source.json', 'utf8');
 * fs.writeFileSync('./dest.json', format(style));
 * fs.writeFileSync('./dest.min.json', format(style, 0));
 */
declare function format(style: any, space?: number): string;

type UnionToIntersection<U> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? {
    [K in keyof I]: I[K];
} : never;

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<string | FilterSpecification>;
type TransitionSpecification = {
    duration?: number;
    delay?: number;
};
type PropertyFunctionStop<T> = [number, T];
type ZoomAndPropertyFunctionStop<T> = [{
    zoom: number;
    value: string | number | boolean;
}, T];
/**
 * @deprecated Use [Expressions](https://docs.mapbox.com/style-spec/reference/expressions/) syntax instead.
*/
type FunctionSpecification<T> = {
    stops: Array<PropertyFunctionStop<T> | ZoomAndPropertyFunctionStop<T>>;
    base?: number;
    property?: string;
    type?: 'identity' | 'exponential' | 'interval' | 'categorical';
    colorSpace?: 'rgb' | 'lab' | 'hcl';
    default?: T;
};
type CameraFunctionSpecification<T> = {
    type: 'exponential';
    stops: Array<[number, T]>;
} | {
    type: 'interval';
    stops: Array<[number, T]>;
};
type SourceFunctionSpecification<T> = {
    type: 'exponential';
    stops: Array<[number, T]>;
    property: string;
    default?: T;
} | {
    type: 'interval';
    stops: Array<[number, T]>;
    property: string;
    default?: T;
} | {
    type: 'categorical';
    stops: Array<[string | number | boolean, T]>;
    property: string;
    default?: T;
} | {
    type: 'identity';
    property: string;
    default?: T;
};
type CompositeFunctionSpecification<T> = {
    type: 'exponential';
    stops: Array<[{
        zoom: number;
        value: number;
    }, T]>;
    property: string;
    default?: T;
} | {
    type: 'interval';
    stops: Array<[{
        zoom: number;
        value: number;
    }, T]>;
    property: string;
    default?: T;
} | {
    type: 'categorical';
    stops: Array<[{
        zoom: number;
        value: string | number | boolean;
    }, T]>;
    property: string;
    default?: T;
};
type ExpressionSpecification = [string, ...any[]];
type PropertyValueSpecification<T> = T | CameraFunctionSpecification<T> | ExpressionSpecification;
type DataDrivenPropertyValueSpecification<T> = T | FunctionSpecification<T> | CameraFunctionSpecification<T> | SourceFunctionSpecification<T> | CompositeFunctionSpecification<T> | ExpressionSpecification | (T extends Array<infer U> ? Array<U | ExpressionSpecification> : never);
type StyleSpecification = {
    "version": 8;
    "fragment"?: boolean;
    "name"?: string;
    "metadata"?: unknown;
    "center"?: Array<number>;
    "zoom"?: number;
    "bearing"?: number;
    "pitch"?: number;
    "light"?: LightSpecification;
    "lights"?: Array<LightsSpecification>;
    "terrain"?: TerrainSpecification | null | undefined;
    "fog"?: FogSpecification;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "snow"?: SnowSpecification;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "rain"?: RainSpecification;
    "camera"?: CameraSpecification;
    "color-theme"?: ColorThemeSpecification;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "indoor"?: IndoorSpecification;
    "imports"?: Array<ImportSpecification>;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "iconsets"?: IconsetsSpecification;
    "schema"?: SchemaSpecification;
    "sources": SourcesSpecification;
    "sprite"?: string;
    "glyphs"?: string;
    "transition"?: TransitionSpecification;
    "projection"?: ProjectionSpecification;
    "layers": Array<LayerSpecification>;
    "models"?: ModelsSpecification;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "featuresets"?: FeaturesetsSpecification;
};
type SourcesSpecification = {
    [_: string]: SourceSpecification;
};
type ModelsSpecification = {
    [_: string]: ModelSpecification;
};
type ModelLightOverridesSpecification = {
    "light-ambient-color"?: ColorSpecification;
    "light-ambient-intensity"?: number;
    "light-directional-color"?: ColorSpecification;
    "light-directional-intensity"?: number;
};
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];
    "lightOverrides"?: ModelLightOverridesSpecification;
    "nodeOverrides"?: ModelNodeOverridesSpecification;
    "materialOverrides"?: ModelMaterialOverridesSpecification;
    "nodeOverrideNames"?: Array<string>;
    "materialOverrideNames"?: Array<string>;
    "featureProperties"?: unknown;
};
type IconsetsSpecification = {
    [_: string]: IconsetSpecification;
};
type LightSpecification = {
    "anchor"?: PropertyValueSpecification<"map" | "viewport">;
    "position"?: PropertyValueSpecification<[number, number, number]>;
    "position-transition"?: TransitionSpecification;
    "color"?: PropertyValueSpecification<ColorSpecification>;
    "color-transition"?: TransitionSpecification;
    "color-use-theme"?: PropertyValueSpecification<string>;
    "intensity"?: PropertyValueSpecification<number>;
    "intensity-transition"?: TransitionSpecification;
};
type TerrainSpecification = {
    "source": string;
    "exaggeration"?: PropertyValueSpecification<number>;
    "exaggeration-transition"?: TransitionSpecification;
};
type TerrainSpecificationUpdate = {
    "exaggeration"?: PropertyValueSpecification<number>;
    "exaggeration-transition"?: TransitionSpecification;
};
type FogSpecification = {
    "range"?: PropertyValueSpecification<[number, number]>;
    "range-transition"?: TransitionSpecification;
    "color"?: PropertyValueSpecification<ColorSpecification>;
    "color-transition"?: TransitionSpecification;
    "color-use-theme"?: PropertyValueSpecification<string>;
    "high-color"?: PropertyValueSpecification<ColorSpecification>;
    "high-color-transition"?: TransitionSpecification;
    "high-color-use-theme"?: PropertyValueSpecification<string>;
    "space-color"?: PropertyValueSpecification<ColorSpecification>;
    "space-color-transition"?: TransitionSpecification;
    "space-color-use-theme"?: PropertyValueSpecification<string>;
    "horizon-blend"?: PropertyValueSpecification<number>;
    "horizon-blend-transition"?: TransitionSpecification;
    "star-intensity"?: PropertyValueSpecification<number>;
    "star-intensity-transition"?: TransitionSpecification;
    "vertical-range"?: PropertyValueSpecification<[number, number]>;
    "vertical-range-transition"?: TransitionSpecification;
};
type SnowSpecification = {
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "density"?: PropertyValueSpecification<number>;
    "density-transition"?: TransitionSpecification;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "intensity"?: PropertyValueSpecification<number>;
    "intensity-transition"?: TransitionSpecification;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "color"?: PropertyValueSpecification<ColorSpecification>;
    "color-transition"?: TransitionSpecification;
    "color-use-theme"?: PropertyValueSpecification<string>;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "opacity"?: PropertyValueSpecification<number>;
    "opacity-transition"?: TransitionSpecification;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "vignette"?: PropertyValueSpecification<number>;
    "vignette-transition"?: TransitionSpecification;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "vignette-color"?: PropertyValueSpecification<ColorSpecification>;
    "vignette-color-transition"?: TransitionSpecification;
    "vignette-color-use-theme"?: PropertyValueSpecification<string>;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "center-thinning"?: PropertyValueSpecification<number>;
    "center-thinning-transition"?: TransitionSpecification;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "direction"?: PropertyValueSpecification<[number, number]>;
    "direction-transition"?: TransitionSpecification;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "flake-size"?: PropertyValueSpecification<number>;
    "flake-size-transition"?: TransitionSpecification;
};
type RainSpecification = {
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "density"?: PropertyValueSpecification<number>;
    "density-transition"?: TransitionSpecification;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "intensity"?: PropertyValueSpecification<number>;
    "intensity-transition"?: TransitionSpecification;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "color"?: PropertyValueSpecification<ColorSpecification>;
    "color-transition"?: TransitionSpecification;
    "color-use-theme"?: PropertyValueSpecification<string>;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "opacity"?: PropertyValueSpecification<number>;
    "opacity-transition"?: TransitionSpecification;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "vignette"?: PropertyValueSpecification<number>;
    "vignette-transition"?: TransitionSpecification;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "vignette-color"?: PropertyValueSpecification<ColorSpecification>;
    "vignette-color-transition"?: TransitionSpecification;
    "vignette-color-use-theme"?: PropertyValueSpecification<string>;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "center-thinning"?: PropertyValueSpecification<number>;
    "center-thinning-transition"?: TransitionSpecification;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "direction"?: PropertyValueSpecification<[number, number]>;
    "direction-transition"?: TransitionSpecification;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "droplet-size"?: PropertyValueSpecification<[number, number]>;
    "droplet-size-transition"?: TransitionSpecification;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "distortion-strength"?: PropertyValueSpecification<number>;
    "distortion-strength-transition"?: TransitionSpecification;
};
type CameraSpecification = {
    "camera-projection"?: "perspective" | "orthographic";
};
type ColorThemeSpecification = {
    "data"?: string | 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<string>;
};
type ConfigSpecification = {
    [_: string]: unknown;
};
type SchemaSpecification = {
    [_: string]: OptionSpecification;
};
type OptionSpecification = {
    "default": unknown | ExpressionSpecification;
    "type"?: "string" | "number" | "boolean" | "color";
    "array"?: boolean;
    "minValue"?: number;
    "maxValue"?: number;
    "stepValue"?: number;
    "values"?: Array<unknown>;
    "metadata"?: unknown;
};
/**
 * @experimental This is experimental and subject to change in future versions.
 */
type FeaturesetsSpecification = {
    [_: string]: FeaturesetSpecification;
};
/**
 * @experimental This is experimental and subject to change in future versions.
 */
type FeaturesetSpecification = {
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "metadata"?: unknown;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "selectors"?: Array<SelectorSpecification>;
};
/**
 * @experimental This is experimental and subject to change in future versions.
 */
type SelectorSpecification = {
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "layer": string;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "properties"?: SelectorPropertySpecification;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "featureNamespace"?: string;
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    "_uniqueFeatureID"?: boolean;
};
/**
 * @experimental This is experimental and subject to change in future versions.
 */
type SelectorPropertySpecification = {
    /**
     * @experimental This property is experimental and subject to change in future versions.
     */
    [_: string]: unknown;
};
type AppearanceSpecification = {
    "condition"?: DataDrivenPropertyValueSpecification<boolean>;
    "name"?: string;
    "properties"?: unknown;
};
type VectorSourceSpecification = {
    "type": "vector";
    "url"?: string;
    "tiles"?: Array<string>;
    "bounds"?: [number, number, number, number];
    "extra_bounds"?: Array<[number, number, number, number]>;
    "scheme"?: "xyz" | "tms";
    "minzoom"?: number;
    "maxzoom"?: number;
    "attribution"?: string;
    "promoteId"?: PromoteIdSpecification;
    "volatile"?: boolean;
    [_: string]: unknown;
};
type RasterSourceSpecification = {
    "type": "raster";
    "url"?: string;
    "tiles"?: Array<string>;
    "bounds"?: [number, number, number, number];
    "extra_bounds"?: Array<[number, number, number, number]>;
    "minzoom"?: number;
    "maxzoom"?: number;
    "tileSize"?: number;
    "scheme"?: "xyz" | "tms";
    "attribution"?: string;
    "volatile"?: boolean;
    [_: string]: unknown;
};
type RasterDEMSourceSpecification = {
    "type": "raster-dem";
    "url"?: string;
    "tiles"?: Array<string>;
    "bounds"?: [number, number, number, number];
    "extra_bounds"?: Array<[number, number, number, number]>;
    "minzoom"?: number;
    "maxzoom"?: number;
    "tileSize"?: number;
    "attribution"?: string;
    "encoding"?: "terrarium" | "mapbox";
    "volatile"?: boolean;
    [_: string]: unknown;
};
/**
 * @experimental This is experimental and subject to change in future versions.
 */
type RasterArraySourceSpecification = {
    "type": "raster-array";
    "url"?: string;
    "tiles"?: Array<string>;
    "bounds"?: [number, number, number, number];
    "extra_bounds"?: Array<[number, number, number, number]>;
    "minzoom"?: number;
    "maxzoom"?: number;
    "tileSize"?: number;
    "attribution"?: string;
    "rasterLayers"?: unknown;
    "volatile"?: boolean;
    [_: string]: unknown;
};
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<string>;
    "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";
    "url"?: string;
    "maxzoom"?: number;
    "minzoom"?: number;
    "tiles"?: Array<string>;
    "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<ColorSpecification>;
        "color-transition"?: TransitionSpecification;
        "color-use-theme"?: PropertyValueSpecification<string>;
        "intensity"?: PropertyValueSpecification<number>;
        "intensity-transition"?: TransitionSpecification;
    };
    "type": "ambient";
};
type DirectionalLightSpecification = {
    "id": string;
    "properties"?: {
        "direction"?: PropertyValueSpecification<[number, number]>;
        "direction-transition"?: TransitionSpecification;
        "color"?: PropertyValueSpecification<ColorSpecification>;
        "color-transition"?: TransitionSpecification;
        "color-use-theme"?: PropertyValueSpecification<string>;
        "intensity"?: PropertyValueSpecification<number>;
        "intensity-transition"?: TransitionSpecification;
        "cast-shadows"?: boolean;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "shadow-quality"?: PropertyValueSpecification<number>;
        "shadow-intensity"?: PropertyValueSpecification<number>;
        "shadow-intensity-transition"?: TransitionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "shadow-draw-before-layer"?: string;
    };
    "type": "directional";
};
type FlatLightSpecification = {
    "id": string;
    "properties"?: {
        "anchor"?: PropertyValueSpecification<"map" | "viewport">;
        "position"?: PropertyValueSpecification<[number, number, number]>;
        "position-transition"?: TransitionSpecification;
        "color"?: PropertyValueSpecification<ColorSpecification>;
        "color-transition"?: TransitionSpecification;
        "color-use-theme"?: PropertyValueSpecification<string>;
        "intensity"?: PropertyValueSpecification<number>;
        "intensity-transition"?: TransitionSpecification;
    };
    "type": "flat";
};
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<number>;
        "visibility"?: "visible" | "none" | ExpressionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "fill-elevation-reference"?: "none" | "hd-road-base" | "hd-road-markup" | ExpressionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "fill-construct-bridge-guard-rail"?: DataDrivenPropertyValueSpecification<boolean>;
    };
    "paint"?: {
        "fill-antialias"?: PropertyValueSpecification<boolean>;
        "fill-opacity"?: DataDrivenPropertyValueSpecification<number>;
        "fill-opacity-transition"?: TransitionSpecification;
        "fill-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>;
        "fill-color-transition"?: TransitionSpecification;
        "fill-color-use-theme"?: PropertyValueSpecification<string>;
        "fill-outline-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>;
        "fill-outline-color-transition"?: TransitionSpecification;
        "fill-outline-color-use-theme"?: PropertyValueSpecification<string>;
        "fill-translate"?: PropertyValueSpecification<[number, number]>;
        "fill-translate-transition"?: TransitionSpecification;
        "fill-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">;
        "fill-pattern"?: DataDrivenPropertyValueSpecification<ResolvedImageSpecification>;
        "fill-pattern-cross-fade"?: PropertyValueSpecification<number>;
        "fill-emissive-strength"?: PropertyValueSpecification<number>;
        "fill-emissive-strength-transition"?: TransitionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "fill-z-offset"?: DataDrivenPropertyValueSpecification<number>;
        "fill-z-offset-transition"?: TransitionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "fill-bridge-guard-rail-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>;
        "fill-bridge-guard-rail-color-transition"?: TransitionSpecification;
        "fill-bridge-guard-rail-color-use-theme"?: PropertyValueSpecification<string>;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "fill-tunnel-structure-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>;
        "fill-tunnel-structure-color-transition"?: TransitionSpecification;
        "fill-tunnel-structure-color-use-theme"?: PropertyValueSpecification<string>;
    };
    "appearances"?: Array<AppearanceSpecification>;
};
/**
 * @deprecated Use `FillLayerSpecification['layout']` instead.
 */
type FillLayout = FillLayerSpecification['layout'];
/**
 * @deprecated Use `FillLayerSpecification['paint']` instead.
 */
type FillPaint = FillLayerSpecification['paint'];
type LineLayerSpecification = {
    "id": string;
    "type": "line";
    "metadata"?: unknown;
    "source": string;
    "source-layer"?: string;
    "slot"?: string;
    "minzoom"?: number;
    "maxzoom"?: number;
    "filter"?: FilterSpecification;
    "layout"?: {
        "line-cap"?: DataDrivenPropertyValueSpecification<"butt" | "round" | "square">;
        "line-join"?: DataDrivenPropertyValueSpecification<"bevel" | "round" | "miter" | "none">;
        "line-miter-limit"?: PropertyValueSpecification<number>;
        "line-round-limit"?: PropertyValueSpecification<number>;
        "line-sort-key"?: DataDrivenPropertyValueSpecification<number>;
        "line-z-offset"?: DataDrivenPropertyValueSpecification<number>;
        "line-elevation-reference"?: "none" | "sea" | "ground" | "hd-road-markup" | ExpressionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "line-cross-slope"?: number | ExpressionSpecification;
        "visibility"?: "visible" | "none" | ExpressionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "line-width-unit"?: PropertyValueSpecification<"pixels" | "meters">;
        "line-elevation-ground-scale"?: DataDrivenPropertyValueSpecification<number>;
        "line-elevation-ground-scale-transition"?: TransitionSpecification;
    };
    "paint"?: {
        "line-opacity"?: DataDrivenPropertyValueSpecification<number>;
        "line-opacity-transition"?: TransitionSpecification;
        "line-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>;
        "line-color-transition"?: TransitionSpecification;
        "line-color-use-theme"?: PropertyValueSpecification<string>;
        "line-translate"?: PropertyValueSpecification<[number, number]>;
        "line-translate-transition"?: TransitionSpecification;
        "line-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">;
        "line-width"?: DataDrivenPropertyValueSpecification<number>;
        "line-width-transition"?: TransitionSpecification;
        "line-gap-width"?: DataDrivenPropertyValueSpecification<number>;
        "line-gap-width-transition"?: TransitionSpecification;
        "line-offset"?: DataDrivenPropertyValueSpecification<number>;
        "line-offset-transition"?: TransitionSpecification;
        "line-blur"?: DataDrivenPropertyValueSpecification<number>;
        "line-blur-transition"?: TransitionSpecification;
        "line-dasharray"?: DataDrivenPropertyValueSpecification<Array<number>>;
        "line-pattern"?: DataDrivenPropertyValueSpecification<ResolvedImageSpecification>;
        "line-pattern-cross-fade"?: PropertyValueSpecification<number>;
        "line-gradient"?: ColorSpecification | ExpressionSpecification;
        "line-gradient-use-theme"?: PropertyValueSpecification<string>;
        "line-trim-offset"?: [number, number];
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "line-trim-fade-range"?: PropertyValueSpecification<[number, number]>;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "line-trim-color"?: PropertyValueSpecification<ColorSpecification>;
        "line-trim-color-transition"?: TransitionSpecification;
        "line-trim-color-use-theme"?: PropertyValueSpecification<string>;
        "line-emissive-strength"?: DataDrivenPropertyValueSpecification<number>;
        "line-emissive-strength-transition"?: TransitionSpecification;
        "line-border-width"?: DataDrivenPropertyValueSpecification<number>;
        "line-border-width-transition"?: TransitionSpecification;
        "line-border-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>;
        "line-border-color-transition"?: TransitionSpecification;
        "line-border-color-use-theme"?: PropertyValueSpecification<string>;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "line-border-gradient"?: ColorSpecification | ExpressionSpecification;
        "line-border-gradient-use-theme"?: PropertyValueSpecification<string>;
        "line-occlusion-opacity"?: PropertyValueSpecification<number>;
        "line-occlusion-opacity-transition"?: TransitionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "line-blend-mode"?: PropertyValueSpecification<"default" | "multiply" | "additive">;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "line-blend-additive-clamp"?: PropertyValueSpecification<number>;
    };
    "appearances"?: Array<AppearanceSpecification>;
};
/**
 * @deprecated Use `LineLayerSpecification['layout']` instead.
 */
type LineLayout = LineLayerSpecification['layout'];
/**
 * @deprecated Use `LineLayerSpecification['paint']` instead.
 */
type LinePaint = LineLayerSpecification['paint'];
type SymbolLayerSpecification = {
    "id": string;
    "type": "symbol";
    "metadata"?: unknown;
    "source": string;
    "source-layer"?: string;
    "slot"?: string;
    "minzoom"?: number;
    "maxzoom"?: number;
    "filter"?: FilterSpecification;
    "layout"?: {
        "symbol-placement"?: PropertyValueSpecification<"point" | "line" | "line-center">;
        "symbol-spacing"?: PropertyValueSpecification<number>;
        "symbol-avoid-edges"?: PropertyValueSpecification<boolean>;
        "symbol-sort-key"?: DataDrivenPropertyValueSpecification<number>;
        "symbol-z-order"?: PropertyValueSpecification<"auto" | "viewport-y" | "source">;
        "symbol-z-elevate"?: PropertyValueSpecification<boolean>;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "symbol-elevation-reference"?: PropertyValueSpecification<"sea" | "ground" | "hd-road-markup">;
        "icon-allow-overlap"?: PropertyValueSpecification<boolean>;
        "icon-ignore-placement"?: PropertyValueSpecification<boolean>;
        "icon-optional"?: PropertyValueSpecification<boolean>;
        "icon-rotation-alignment"?: PropertyValueSpecification<"map" | "viewport" | "auto">;
        "icon-size"?: DataDrivenPropertyValueSpecification<number>;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "icon-size-scale-range"?: [number, number] | ExpressionSpecification;
        "icon-text-fit"?: DataDrivenPropertyValueSpecification<"none" | "width" | "height" | "both">;
        "icon-text-fit-padding"?: DataDrivenPropertyValueSpecification<[number, number, number, number]>;
        "icon-image"?: DataDrivenPropertyValueSpecification<ResolvedImageSpecification>;
        "icon-image-use-theme"?: PropertyValueSpecification<string>;
        "icon-rotate"?: DataDrivenPropertyValueSpecification<number>;
        "icon-padding"?: PropertyValueSpecification<number>;
        "icon-keep-upright"?: PropertyValueSpecification<boolean>;
        "icon-offset"?: DataDrivenPropertyValueSpecification<[number, number]>;
        "icon-anchor"?: DataDrivenPropertyValueSpecification<"center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right">;
        "icon-pitch-alignment"?: PropertyValueSpecification<"map" | "viewport" | "auto">;
        "text-pitch-alignment"?: PropertyValueSpecification<"map" | "viewport" | "auto">;
        "text-rotation-alignment"?: PropertyValueSpecification<"map" | "viewport" | "auto">;
        "text-field"?: DataDrivenPropertyValueSpecification<FormattedSpecification>;
        "text-font"?: DataDrivenPropertyValueSpecification<Array<string>>;
        "text-size"?: DataDrivenPropertyValueSpecification<number>;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "text-size-scale-range"?: [number, number] | ExpressionSpecification;
        "text-max-width"?: DataDrivenPropertyValueSpecification<number>;
        "text-line-height"?: DataDrivenPropertyValueSpecification<number>;
        "text-letter-spacing"?: DataDrivenPropertyValueSpecification<number>;
        "text-justify"?: DataDrivenPropertyValueSpecification<"auto" | "left" | "center" | "right">;
        "text-radial-offset"?: DataDrivenPropertyValueSpecification<number>;
        "text-variable-anchor"?: PropertyValueSpecification<Array<"center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right">>;
        "text-anchor"?: DataDrivenPropertyValueSpecification<"center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right">;
        "text-max-angle"?: PropertyValueSpecification<number>;
        "text-writing-mode"?: PropertyValueSpecification<Array<"horizontal" | "vertical">>;
        "text-rotate"?: DataDrivenPropertyValueSpecification<number>;
        "text-padding"?: PropertyValueSpecification<number>;
        "text-keep-upright"?: PropertyValueSpecification<boolean>;
        "text-transform"?: DataDrivenPropertyValueSpecification<"none" | "uppercase" | "lowercase">;
        "text-offset"?: DataDrivenPropertyValueSpecification<[number, number]>;
        "text-allow-overlap"?: PropertyValueSpecification<boolean>;
        "text-ignore-placement"?: PropertyValueSpecification<boolean>;
        "text-optional"?: PropertyValueSpecification<boolean>;
        "visibility"?: "visible" | "none" | ExpressionSpecification;
    };
    "paint"?: {
        "icon-opacity"?: DataDrivenPropertyValueSpecification<number>;
        "icon-opacity-transition"?: TransitionSpecification;
        "icon-occlusion-opacity"?: DataDrivenPropertyValueSpecification<number>;
        "icon-occlusion-opacity-transition"?: TransitionSpecification;
        "icon-emissive-strength"?: DataDrivenPropertyValueSpecification<number>;
        "icon-emissive-strength-transition"?: TransitionSpecification;
        "text-emissive-strength"?: DataDrivenPropertyValueSpecification<number>;
        "text-emissive-strength-transition"?: TransitionSpecification;
        "icon-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>;
        "icon-color-transition"?: TransitionSpecification;
        "icon-color-use-theme"?: PropertyValueSpecification<string>;
        "icon-halo-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>;
        "icon-halo-color-transition"?: TransitionSpecification;
        "icon-halo-color-use-theme"?: PropertyValueSpecification<string>;
        "icon-halo-width"?: DataDrivenPropertyValueSpecification<number>;
        "icon-halo-width-transition"?: TransitionSpecification;
        "icon-halo-blur"?: DataDrivenPropertyValueSpecification<number>;
        "icon-halo-blur-transition"?: TransitionSpecification;
        "icon-translate"?: PropertyValueSpecification<[number, number]>;
        "icon-translate-transition"?: TransitionSpecification;
        "icon-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">;
        "icon-image-cross-fade"?: PropertyValueSpecification<number>;
        "text-opacity"?: DataDrivenPropertyValueSpecification<number>;
        "text-opacity-transition"?: TransitionSpecification;
        "text-occlusion-opacity"?: DataDrivenPropertyValueSpecification<number>;
        "text-occlusion-opacity-transition"?: TransitionSpecification;
        "text-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>;
        "text-color-transition"?: TransitionSpecification;
        "text-color-use-theme"?: PropertyValueSpecification<string>;
        "text-halo-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>;
        "text-halo-color-transition"?: TransitionSpecification;
        "text-halo-color-use-theme"?: PropertyValueSpecification<string>;
        "text-halo-width"?: DataDrivenPropertyValueSpecification<number>;
        "text-halo-width-transition"?: TransitionSpecification;
        "text-halo-blur"?: DataDrivenPropertyValueSpecification<number>;
        "text-halo-blur-transition"?: TransitionSpecification;
        "text-translate"?: PropertyValueSpecification<[number, number]>;
        "text-translate-transition"?: TransitionSpecification;
        "text-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">;
        "icon-color-saturation"?: number | ExpressionSpecification;
        "icon-color-contrast"?: number | ExpressionSpecification;
        "icon-color-brightness-min"?: number | ExpressionSpecification;
        "icon-color-brightness-max"?: number | ExpressionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "symbol-z-offset"?: DataDrivenPropertyValueSpecification<number>;
        "symbol-z-offset-transition"?: TransitionSpecification;
    };
    "appearances"?: Array<AppearanceSpecification>;
};
/**
 * @deprecated Use `SymbolLayerSpecification['layout']` instead.
 */
type SymbolLayout = SymbolLayerSpecification['layout'];
/**
 * @deprecated Use `SymbolLayerSpecification['paint']` instead.
 */
type SymbolPaint = SymbolLayerSpecification['paint'];
type CircleLayerSpecification = {
    "id": string;
    "type": "circle";
    "metadata"?: unknown;
    "source": string;
    "source-layer"?: string;
    "slot"?: string;
    "minzoom"?: number;
    "maxzoom"?: number;
    "filter"?: FilterSpecification;
    "layout"?: {
        "circle-sort-key"?: DataDrivenPropertyValueSpecification<number>;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "circle-elevation-reference"?: "none" | "hd-road-markup" | ExpressionSpecification;
        "visibility"?: "visible" | "none" | ExpressionSpecification;
    };
    "paint"?: {
        "circle-radius"?: DataDrivenPropertyValueSpecification<number>;
        "circle-radius-transition"?: TransitionSpecification;
        "circle-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>;
        "circle-color-transition"?: TransitionSpecification;
        "circle-color-use-theme"?: PropertyValueSpecification<string>;
        "circle-blur"?: DataDrivenPropertyValueSpecification<number>;
        "circle-blur-transition"?: TransitionSpecification;
        "circle-opacity"?: DataDrivenPropertyValueSpecification<number>;
        "circle-opacity-transition"?: TransitionSpecification;
        "circle-translate"?: PropertyValueSpecification<[number, number]>;
        "circle-translate-transition"?: TransitionSpecification;
        "circle-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">;
        "circle-pitch-scale"?: PropertyValueSpecification<"map" | "viewport">;
        "circle-pitch-alignment"?: PropertyValueSpecification<"map" | "viewport">;
        "circle-stroke-width"?: DataDrivenPropertyValueSpecification<number>;
        "circle-stroke-width-transition"?: TransitionSpecification;
        "circle-stroke-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>;
        "circle-stroke-color-transition"?: TransitionSpecification;
        "circle-stroke-color-use-theme"?: PropertyValueSpecification<string>;
        "circle-stroke-opacity"?: DataDrivenPropertyValueSpecification<number>;
        "circle-stroke-opacity-transition"?: TransitionSpecification;
        "circle-emissive-strength"?: PropertyValueSpecification<number>;
        "circle-emissive-strength-transition"?: TransitionSpecification;
    };
    "appearances"?: Array<AppearanceSpecification>;
};
/**
 * @deprecated Use `CircleLayerSpecification['layout']` instead.
 */
type CircleLayout = CircleLayerSpecification['layout'];
/**
 * @deprecated Use `CircleLayerSpecification['paint']` instead.
 */
type CirclePaint = CircleLayerSpecification['paint'];
type HeatmapLayerSpecification = {
    "id": string;
    "type": "heatmap";
    "metadata"?: unknown;
    "source": string;
    "source-layer"?: string;
    "slot"?: string;
    "minzoom"?: number;
    "maxzoom"?: number;
    "filter"?: FilterSpecification;
    "layout"?: {
        "visibility"?: "visible" | "none" | ExpressionSpecification;
    };
    "paint"?: {
        "heatmap-radius"?: DataDrivenPropertyValueSpecification<number>;
        "heatmap-radius-transition"?: TransitionSpecification;
        "heatmap-weight"?: DataDrivenPropertyValueSpecification<number>;
        "heatmap-intensity"?: PropertyValueSpecification<number>;
        "heatmap-intensity-transition"?: TransitionSpecification;
        "heatmap-color"?: ColorSpecification | ExpressionSpecification;
        "heatmap-color-use-theme"?: PropertyValueSpecification<string>;
        "heatmap-opacity"?: PropertyValueSpecification<number>;
        "heatmap-opacity-transition"?: TransitionSpecification;
    };
    "appearances"?: Array<AppearanceSpecification>;
};
/**
 * @deprecated Use `HeatmapLayerSpecification['layout']` instead.
 */
type HeatmapLayout = HeatmapLayerSpecification['layout'];
/**
 * @deprecated Use `HeatmapLayerSpecification['paint']` instead.
 */
type HeatmapPaint = HeatmapLayerSpecification['paint'];
type FillExtrusionLayerSpecification = {
    "id": string;
    "type": "fill-extrusion";
    "metadata"?: unknown;
    "source": string;
    "source-layer"?: string;
    "slot"?: string;
    "minzoom"?: number;
    "maxzoom"?: number;
    "filter"?: FilterSpecification;
    "layout"?: {
        "visibility"?: "visible" | "none" | ExpressionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "fill-extrusion-edge-radius"?: number | ExpressionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "source-max-zoom"?: number;
    };
    "paint"?: {
        "fill-extrusion-opacity"?: PropertyValueSpecification<number>;
        "fill-extrusion-opacity-transition"?: TransitionSpecification;
        "fill-extrusion-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>;
        "fill-extrusion-color-transition"?: TransitionSpecification;
        "fill-extrusion-color-use-theme"?: PropertyValueSpecification<string>;
        "fill-extrusion-translate"?: PropertyValueSpecification<[number, number]>;
        "fill-extrusion-translate-transition"?: TransitionSpecification;
        "fill-extrusion-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">;
        "fill-extrusion-pattern"?: DataDrivenPropertyValueSpecification<ResolvedImageSpecification>;
        "fill-extrusion-pattern-cross-fade"?: PropertyValueSpecification<number>;
        "fill-extrusion-height"?: DataDrivenPropertyValueSpecification<number>;
        "fill-extrusion-height-transition"?: TransitionSpecification;
        "fill-extrusion-base"?: DataDrivenPropertyValueSpecification<number>;
        "fill-extrusion-base-transition"?: TransitionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "fill-extrusion-height-alignment"?: "terrain" | "flat";
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "fill-extrusion-base-alignment"?: "terrain" | "flat";
        "fill-extrusion-vertical-gradient"?: PropertyValueSpecification<boolean>;
        "fill-extrusion-ambient-occlusion-intensity"?: PropertyValueSpecification<number>;
        "fill-extrusion-ambient-occlusion-intensity-transition"?: TransitionSpecification;
        "fill-extrusion-ambient-occlusion-radius"?: PropertyValueSpecification<number>;
        "fill-extrusion-ambient-occlusion-radius-transition"?: TransitionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "fill-extrusion-ambient-occlusion-wall-radius"?: PropertyValueSpecification<number>;
        "fill-extrusion-ambient-occlusion-wall-radius-transition"?: TransitionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "fill-extrusion-ambient-occlusion-ground-radius"?: PropertyValueSpecification<number>;
        "fill-extrusion-ambient-occlusion-ground-radius-transition"?: TransitionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "fill-extrusion-ambient-occlusion-ground-attenuation"?: PropertyValueSpecification<number>;
        "fill-extrusion-ambient-occlusion-ground-attenuation-transition"?: TransitionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "fill-extrusion-flood-light-color"?: PropertyValueSpecification<ColorSpecification>;
        "fill-extrusion-flood-light-color-transition"?: TransitionSpecification;
        "fill-extrusion-flood-light-color-use-theme"?: PropertyValueSpecification<string>;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "fill-extrusion-flood-light-intensity"?: PropertyValueSpecification<number>;
        "fill-extrusion-flood-light-intensity-transition"?: TransitionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "fill-extrusion-flood-light-wall-radius"?: DataDrivenPropertyValueSpecification<number>;
        "fill-extrusion-flood-light-wall-radius-transition"?: TransitionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "fill-extrusion-flood-light-ground-radius"?: DataDrivenPropertyValueSpecification<number>;
        "fill-extrusion-flood-light-ground-radius-transition"?: TransitionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "fill-extrusion-flood-light-ground-attenuation"?: PropertyValueSpecification<number>;
        "fill-extrusion-flood-light-ground-attenuation-transition"?: TransitionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "fill-extrusion-vertical-scale"?: PropertyValueSpecification<number>;
        "fill-extrusion-vertical-scale-transition"?: TransitionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "fill-extrusion-rounded-roof"?: PropertyValueSpecification<boolean>;
        "fill-extrusion-cutoff-fade-range"?: number | ExpressionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "fill-extrusion-front-cutoff"?: PropertyValueSpecification<[number, number, number]>;
        "fill-extrusion-emissive-strength"?: DataDrivenPropertyValueSpecification<number>;
        "fill-extrusion-emissive-strength-transition"?: TransitionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "fill-extrusion-line-width"?: DataDrivenPropertyValueSpecification<number>;
        "fill-extrusion-line-width-transition"?: TransitionSpecification;
        "fill-extrusion-cast-shadows"?: boolean;
    };
    "appearances"?: Array<AppearanceSpecification>;
};
/**
 * @deprecated Use `FillExtrusionLayerSpecification['layout']` instead.
 */
type FillExtrusionLayout = FillExtrusionLayerSpecification['layout'];
/**
 * @deprecated Use `FillExtrusionLayerSpecification['paint']` instead.
 */
type FillExtrusionPaint = FillExtrusionLayerSpecification['paint'];
type BuildingLayerSpecification = {
    "id": string;
    "type": "building";
    "metadata"?: unknown;
    "source": string;
    "source-layer"?: string;
    "slot"?: string;
    "minzoom"?: number;
    "maxzoom"?: number;
    "filter"?: FilterSpecification;
    "layout"?: {
        "visibility"?: "visible" | "none" | ExpressionSpecification;
        "building-facade"?: DataDrivenPropertyValueSpecification<boolean>;
        "building-facade-floors"?: DataDrivenPropertyValueSpecification<number>;
        "building-facade-unit-width"?: DataDrivenPropertyValueSpecification<number>;
        "building-facade-window"?: DataDrivenPropertyValueSpecification<[number, number]>;
        "building-roof-shape"?: DataDrivenPropertyValueSpecification<"flat" | "hipped" | "gabled" | "parapet" | "mansard" | "skillion" | "pyramidal">;
        "building-height"?: DataDrivenPropertyValueSpecification<number>;
        "building-height-transition"?: TransitionSpecification;
        "building-base"?: DataDrivenPropertyValueSpecification<number>;
        "building-base-transition"?: TransitionSpecification;
        "building-flood-light-wall-radius"?: DataDrivenPropertyValueSpecification<number>;
        "building-flood-light-wall-radius-transition"?: TransitionSpecification;
        "building-flood-light-ground-radius"?: DataDrivenPropertyValueSpecification<number>;
        "building-flood-light-ground-radius-transition"?: TransitionSpecification;
        "building-flip-roof-orientation"?: DataDrivenPropertyValueSpecification<boolean>;
        "building-flip-roof-orientation-transition"?: TransitionSpecification;
    };
    "paint"?: {
        "building-opacity"?: PropertyValueSpecification<number>;
        "building-opacity-transition"?: TransitionSpecification;
        "building-ambient-occlusion-intensity"?: number | ExpressionSpecification;
        "building-ambient-occlusion-intensity-transition"?: TransitionSpecification;
        "building-ambient-occlusion-ground-intensity"?: PropertyValueSpecification<number>;
        "building-ambient-occlusion-ground-intensity-transition"?: TransitionSpecification;
        "building-ambient-occlusion-ground-radius"?: PropertyValueSpecification<number>;
        "building-ambient-occlusion-ground-radius-transition"?: TransitionSpecification;
        "building-ambient-occlusion-ground-attenuation"?: PropertyValueSpecification<number>;
        "building-ambient-occlusion-ground-attenuation-transition"?: TransitionSpecification;
        "building-vertical-scale"?: PropertyValueSpecification<number>;
        "building-vertical-scale-transition"?: TransitionSpecification;
        "building-cast-shadows"?: boolean;
        "building-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>;
        "building-color-use-theme"?: PropertyValueSpecification<string>;
        "building-emissive-strength"?: DataDrivenPropertyValueSpecification<number>;
        "building-facade-emissive-chance"?: PropertyValueSpecification<number>;
        "building-cutoff-fade-range"?: number | ExpressionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "building-front-cutoff"?: PropertyValueSpecification<[number, number, number]>;
        "building-flood-light-color"?: PropertyValueSpecification<ColorSpecification>;
        "building-flood-light-color-transition"?: TransitionSpecification;
        "building-flood-light-color-use-theme"?: PropertyValueSpecification<string>;
        "building-flood-light-intensity"?: PropertyValueSpecification<number>;
        "building-flood-light-intensity-transition"?: TransitionSpecification;
        "building-flood-light-ground-attenuation"?: PropertyValueSpecification<number>;
        "building-flood-light-ground-attenuation-transition"?: TransitionSpecification;
    };
    "appearances"?: Array<AppearanceSpecification>;
};
/**
 * @deprecated Use `BuildingLayerSpecification['layout']` instead.
 */
type BuildingLayout = BuildingLayerSpecification['layout'];
/**
 * @deprecated Use `BuildingLayerSpecification['paint']` instead.
 */
type BuildingPaint = BuildingLayerSpecification['paint'];
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<number>;
        "raster-opacity-transition"?: TransitionSpecification;
        "raster-color"?: ColorSpecification | ExpressionSpecification;
        "raster-color-use-theme"?: PropertyValueSpecification<string>;
        "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<number>;
        "raster-hue-rotate-transition"?: TransitionSpecification;
        "raster-brightness-min"?: PropertyValueSpecification<number>;
        "raster-brightness-min-transition"?: TransitionSpecification;
        "raster-brightness-max"?: PropertyValueSpecification<number>;
        "raster-brightness-max-transition"?: TransitionSpecification;
        "raster-saturation"?: PropertyValueSpecification<number>;
        "raster-saturation-transition"?: TransitionSpecification;
        "raster-contrast"?: PropertyValueSpecification<number>;
        "raster-contrast-transition"?: TransitionSpecification;
        "raster-resampling"?: PropertyValueSpecification<"linear" | "nearest">;
        "raster-fade-duration"?: PropertyValueSpecification<number>;
        "raster-emissive-strength"?: PropertyValueSpecification<number>;
        "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<number>;
        "raster-elevation-transition"?: TransitionSpecification;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "raster-elevation-reference"?: "sea" | "ground" | ExpressionSpecification;
    };
    "appearances"?: Array<AppearanceSpecification>;
};
/**
 * @deprecated Use `RasterLayerSpecification['layout']` instead.
 */
type RasterLayout = RasterLayerSpecification['layout'];
/**
 * @deprecated Use `RasterLayerSpecification['paint']` instead.
 */
type RasterPaint = RasterLayerSpecification['paint'];
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"?: ColorSpecification | ExpressionSpecification;
        "raster-particle-color-use-theme"?: PropertyValueSpecification<string>;
        "raster-particle-max-speed"?: number;
        "raster-particle-speed-factor"?: PropertyValueSpecification<number>;
        "raster-particle-speed-factor-transition"?: TransitionSpecification;
        "raster-particle-fade-opacity-factor"?: PropertyValueSpecification<number>;
        "raster-particle-fade-opacity-factor-transition"?: TransitionSpecification;
        "raster-particle-reset-rate-factor"?: number;
        "raster-particle-elevation"?: PropertyValueSpecification<number>;
        "raster-particle-elevation-transition"?: TransitionSpecification;
    };
    "appearances"?: Array<AppearanceSpecification>;
};
/**
 * @deprecated Use `RasterParticleLayerSpecification['layout']` instead.
 */
type RasterParticleLayout = RasterParticleLayerSpecification['layout'];
/**
 * @deprecated Use `RasterParticleLayerSpecification['paint']` instead.
 */
type RasterParticlePaint = RasterParticleLayerSpecification['paint'];
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<number>;
        "hillshade-illumination-anchor"?: PropertyValueSpecification<"map" | "viewport">;
        "hillshade-exaggeration"?: PropertyValueSpecification<number>;
        "hillshade-exaggeration-transition"?: TransitionSpecification;
        "hillshade-shadow-color"?: PropertyValueSpecification<ColorSpecification>;
        "hillshade-shadow-color-transition"?: TransitionSpecification;
        "hillshade-shadow-color-use-theme"?: PropertyValueSpecification<string>;
        "hillshade-highlight-color"?: PropertyValueSpecification<ColorSpecification>;
        "hillshade-highlight-color-transition"?: TransitionSpecification;
        "hillshade-highlight-color-use-theme"?: PropertyValueSpecification<string>;
        "hillshade-accent-color"?: PropertyValueSpecification<ColorSpecification>;
        "hillshade-accent-color-transition"?: TransitionSpecification;
        "hillshade-accent-color-use-theme"?: PropertyValueSpecification<string>;
        "hillshade-emissive-strength"?: PropertyValueSpecification<number>;
        "hillshade-emissive-strength-transition"?: TransitionSpecification;
    };
    "appearances"?: Array<AppearanceSpecification>;
};
/**
 * @deprecated Use `HillshadeLayerSpecification['layout']` instead.
 */
type HillshadeLayout = HillshadeLayerSpecification['layout'];
/**
 * @deprecated Use `HillshadeLayerSpecification['paint']` instead.
 */
type HillshadePaint = HillshadeLayerSpecification['paint'];
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<string>;
        /**
         * @experimental This property is experimental and subject to change in future versions.
         */
        "model-allow-density-reduction"?: boolean;
    };
    "paint"?: {
        "model-opacity"?: DataDrivenPropertyValueSpecification<number>;
        "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<ColorSpecification>;
        "model-color-transition"?: TransitionSpecification;
        "model-color-use-theme"?: PropertyValueSpecification<string>;
        "model-color-mix-intensity"?: DataDrivenPropertyValueSpecification<number>;
        "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<number>;
        "model-ambient-occlusion-intensity-transition"?: TransitionSpecification;
        "model-emissive-strength"?: DataDrivenPropertyValueSpecification<number>;
        "model-emissive-strength-transition"?: TransitionSpecification;
        "model-roughness"?: DataDrivenPropertyValueSpecification<number>;
        "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"?: number | 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.
         */
        "model-line-cutout-mode"?: "enabled" | "disabled" | "enabled-above-cutout" | ExpressionSpecification;
    };
    "appearances"?: Array<AppearanceSpecification>;
};
/**
 * @deprecated Use `ModelLayerSpecification['layout']` instead.
 */
type ModelLayout = ModelLayerSpecification['layout'];
/**
 * @deprecated Use `ModelLayerSpecification['paint']` instead.
 */
type ModelPaint = ModelLayerSpecification['paint'];
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<ColorSpecification>;
        "background-color-transition"?: TransitionSpecification;
        "background-color-use-theme"?: PropertyValueSpecification<string>;
        "background-pattern"?: PropertyValueSpecification<ResolvedImageSpecification>;
        "background-opacity"?: PropertyValueSpecification<number>;
        "background-opacity-transition"?: TransitionSpecification;
        "background-emissive-strength"?: PropertyValueSpecification<number>;
        "background-emissive-strength-transition"?: TransitionSpecification;
    };
    "appearances"?: Array<AppearanceSpecification>;
};
/**
 * @deprecated Use `BackgroundLayerSpecification['layout']` instead.
 */
type BackgroundLayout = BackgroundLayerSpecification['layout'];
/**
 * @deprecated Use `BackgroundLayerSpecification['paint']` instead.
 */
type BackgroundPaint = BackgroundLayerSpecification['paint'];
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<number>;
        "sky-gradient"?: ColorSpecification | ExpressionSpecification;
        "sky-gradient-use-theme"?: PropertyValueSpecification<string>;
        "sky-atmosphere-halo-color"?: ColorSpecification;
        "sky-atmosphere-halo-color-use-theme"?: PropertyValueSpecification<string>;
        "sky-atmosphere-color"?: ColorSpecification;
        "sky-atmosphere-color-use-theme"?: PropertyValueSpecification<string>;
        "sky-opacity"?: PropertyValueSpecification<number>;
        "sky-opacity-transition"?: TransitionSpecification;
    };
    "appearances"?: Array<AppearanceSpecification>;
};
/**
 * @deprecated Use `SkyLayerSpecification['layout']` instead.
 */
type SkyLayout = SkyLayerSpecification['layout'];
/**
 * @deprecated Use `SkyLayerSpecification['paint']` instead.
 */
type SkyPaint = SkyLayerSpecification['paint'];
type SlotLayerSpecification = {
    "id": string;
    "type": "slot";
    "metadata"?: unknown;
    "source"?: never;
    "source-layer"?: never;
    "slot"?: string;
    "minzoom"?: never;
    "maxzoom"?: never;
    "filter"?: never;
    "appearances"?: Array<AppearanceSpecification>;
    "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"?: Array<"model" | "symbol"> | ExpressionSpecification;
        "clip-layer-scope"?: Array<string> | ExpressionSpecification;
        "visibility"?: "visible" | "none" | ExpressionSpecification;
    };
    "appearances"?: Array<AppearanceSpecification>;
    "paint"?: never;
};
/**
 * @deprecated Use `ClipLayerSpecification['layout']` instead.
 */
type ClipLayout = ClipLayerSpecification['layout'];
type LayerSpecification = FillLayerSpecification | LineLayerSpecification | SymbolLayerSpecification | CircleLayerSpecification | HeatmapLayerSpecification | FillExtrusionLayerSpecification | BuildingLayerSpecification | RasterLayerSpecification | RasterParticleLayerSpecification | HillshadeLayerSpecification | ModelLayerSpecification | BackgroundLayerSpecification | SkyLayerSpecification | SlotLayerSpecification | ClipLayerSpecification;
type LayoutSpecification = UnionToIntersection<NonNullable<LayerSpecification['layout']>>;
type PaintSpecification = UnionToIntersection<NonNullable<LayerSpecification['paint']>>;
type LayerBaseSpecification = Pick<LayerSpecification, "slot" | "minzoom" | "maxzoom" | "filter" | "appearances">;
type Layer = Pick<LayerSpecification, "id" | "type" | "source" | "source-layer" | "slot" | "filter" | "layout" | "paint" | "minzoom" | "maxzoom" | "metadata">;
/**
 * @deprecated Use `StyleSpecification` instead.
 */
type Style = StyleSpecification;
/**
 * @deprecated Use `LayerSpecification` instead.
 */
type AnyLayer = LayerSpecification;
/**
 * @deprecated Use `FillLayerSpecification` instead.
 */
type FillLayer = FillLayerSpecification;
/**
 * @deprecated Use `LineLayerSpecification` instead.
 */
type LineLayer = LineLayerSpecification;
/**
 * @deprecated Use `SymbolLayerSpecification` instead.
 */
type SymbolLayer = SymbolLayerSpecification;
/**
 * @deprecated Use `CircleLayerSpecification` instead.
 */
type CircleLayer = CircleLayerSpecification;
/**
 * @deprecated Use `HeatmapLayerSpecification` instead.
 */
type HeatmapLayer = HeatmapLayerSpecification;
/**
 * @deprecated Use `FillExtrusionLayerSpecification` instead.
 */
type FillExtrusionLayer = FillExtrusionLayerSpecification;
/**
 * @deprecated Use `BuildingLayerSpecification` instead.
 */
type BuildingLayer = BuildingLayerSpecification;
/**
 * @deprecated Use `RasterLayerSpecification` instead.
 */
type RasterLayer = RasterLayerSpecification;
/**
 * @deprecated Use `RasterParticleLayerSpecification` instead.
 */
type RasterParticleLayer = RasterParticleLayerSpecification;
/**
 * @deprecated Use `HillshadeLayerSpecification` instead.
 */
type HillshadeLayer = HillshadeLayerSpecification;
/**
 * @deprecated Use `ModelLayerSpecification` instead.
 */
type ModelLayer = ModelLayerSpecification;
/**
 * @deprecated Use `BackgroundLayerSpecification` instead.
 */
type BackgroundLayer = BackgroundLayerSpecification;
/**
 * @deprecated Use `SkyLayerSpecification` instead.
 */
type SkyLayer = SkyLayerSpecification;
/**
 * @deprecated Use `SlotLayerSpecification` instead.
 */
type SlotLayer = SlotLayerSpecification;
/**
 * @deprecated Use `ClipLayerSpecification` instead.
 */
type ClipLayer = ClipLayerSpecification;
/**
 * @deprecated Use `LayoutSpecification` instead.
 */
type AnyLayout = LayoutSpecification;
/**
 * @deprecated Use `PaintSpecification` instead.
 */
type AnyPaint = PaintSpecification;
/**
 * @deprecated Use `ExpressionSpecification` instead.
 */
type Expression$1 = ExpressionSpecification;
/**
 * @deprecated Use `TransitionSpecification` instead.
 */
type Transition = TransitionSpecification;
/**
 * @deprecated Use `SourceSpecification` instead.
 */
type AnySourceData = SourceSpecification;
/**
 * @deprecated Use `SourcesSpecification` instead.
 */
type Sources = SourcesSpecification;
/**
 * @deprecated Use `ProjectionSpecification` instead.
 */
type Projection = ProjectionSpecification;

/**
 * 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 export_default$1(style: {
    version: 7;
} | StyleSpecification): StyleSpecification;

declare function export_default(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<Layer>} layers
 * @returns {Array<Layer>}
 */
declare function derefLayers(layers: Array<LayerSpecification>): Array<LayerSpecification>;

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<Command>;

declare class ValidationError$1 {
    message: string;
    identifier: string | null | undefined;
    line: number | null | undefined;
    constructor(key: string | null | undefined, value: unknown, message: string, identifier?: string | null);
}

declare class ParsingError$1 {
    message: string;
    error: Error;
    line: number;
    constructor(error: Error);
}

declare class ParsingError 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
 */
declare class Color {
    readonly r: number;
    readonly g: number;
    readonly b: number;
    readonly 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];
}
/**
 * Renderable color created from a Color and an optional LUT value.
 * Represent a color value with non-premultiplied alpha.
 */
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;
}

/**
 * Defines nominal type of `U` based on type of `T`. Similar to Opaque types in Flow.
 */
type Brand<T, U> = T & {
    __brand: U;
};

type ImageIdSpec = {
    name: string;
    iconsetId?: string;
};
/**
 * `StringifiedImageId` is a stringified version of the `ImageId`.
 *
 * @private
 */
type StringifiedImageId = Brand<string, 'ImageId'>;
/**
 * `ImageId` is a reference to an {@link ImageVariant} in the sprite or iconset.
 *
 * @private
 */
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;
}

/**
 * `StringifiedImageVariant` is a stringified version of the `ImageVariant`.
 *
 * @private
 */
type StringifiedImageVariant = Brand<string, 'ImageVariant'>;
/**
 * {@link ImageVariant} rasterization options.
 *
 * @private
 */
type RasterizationOptions = {
    params?: Record<string, Color>;
    sx?: number;
    sy?: number;
};
/**
 * `ImageVariant` is a component of {@link ResolvedImage}
 * that represents either the primary or secondary image
 * along with its rendering configuration.
 *
 * @private
 */
declare class ImageVariant implements RasterizationOptions {
    id: ImageId;
    params?: Record<string, Color>;
    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<FormattedSection>;
    constructor(sections: Array<FormattedSection>);
    static fromString(unformatted: string): Formatted;
    isEmpty(): boolean;
    static factory(text: Formatted | string): Formatted;
    toString(): string;
    serialize(): Array<unknown>;
}

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<Value> | {
    readonly [key: string]: Value;
};

type CanonicalTileID = {
    z: number;
    x: number;
    y: number;
};

type SerializedExpression = Array<unknown> | Array<string> | 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<unknown>;
    minValue?: number;
    maxValue?: number;
    stepValue?: number;
    type?: 'string' | 'number' | 'boolean' | 'color';
};
type ConfigOptions = Map<string, ConfigOptionValue>;

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;
    constructor(scope?: string | null, options?: ConfigOptions | null, iconImageUseTheme?: string);
    id(): string | number | null;
    geometryType(): null | string;
    geometry(): Array<Array<Point>> | 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;
}

/**
 * A type used for returning and propagating errors. The first element of the union
 * represents success and contains a value, and the second represents an error and
 * contains an error value.
 * @private
 */
type Result<T, E> = {
    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<PropertyKey, unknown>;
    readonly patterns?: Record<PropertyKey, string[]>;
    readonly geometry?: Array<Array<Point>>;
}
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<string>;
}
declare class StyleExpression {
    expression: Expression;
    _scope?: string;
    _options?: ConfigOptions;
    _iconImageUseTheme?: string;
    _evaluator?: EvaluationContext;
    _defaultValue: Value;
    _warningHistory: {
        [key: string]: boolean;
    };
    _enumValues?: {
        [_: string]: unknown;
    };
    configDependencies: Set<string>;
    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;
/**
 * Parse and typecheck the given style spec JSON expression.  If
 * options.defaultValue is provided, then the resulting StyleExpression's
 * `evaluate()` method will handle errors by logging a warning (once per
 * message) and returning the default value.  Otherwise, it will throw
 * evaluation errors.
 *
 * @private
 */
declare function createExpression(expression: unknown, propertySpec?: StylePropertySpecification | null, scope?: string | null, options?: ConfigOptions | null, iconImageUseTheme?: string | null): Result<StyleExpression, Array<ParsingError>>;
declare class ZoomConstantExpression<Kind extends EvaluationKind> {
    kind: Kind;
    isStateDependent: boolean;
    configDependencies: Set<string>;
    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 extends EvaluationKind> {
    kind: Kind;
    zoomStops: Array<number>;
    isStateDependent: boolean;
    isIndoorDependent: boolean;
    isLightConstant: boolean | null | undefined;
    isLineProgressConstant: boolean | null | undefined;
    configDependencies: Set<string>;
    _styleExpression: StyleExpression;
    interpolationType: InterpolationType | null | undefined;
    constructor(kind: Kind, expression: StyleExpression, zoomStops: Array<number>, 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<string>;
    isIndoorDependent: boolean;
    readonly evaluate: <T = unknown>(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<string>;
    readonly evaluate: <T = unknown>(globals: GlobalProperties, feature?: Feature, featureState?: FeatureState, canonical?: CanonicalTileID, availableImages?: ImageId[], formattedSection?: FormattedSection) => T;
};
type CameraExpression = {
    kind: 'camera';
    isStateDependent: boolean;
    isIndoorDependent: boolean;
    configDependencies: Set<string>;
    readonly evaluate: <T = unknown>(globals: GlobalProperties, feature?: Feature, featureState?: FeatureState, canonical?: CanonicalTileID, availableImages?: ImageId[]) => T;
    readonly interpolationFactor: (input: number, lower: number, upper: number) => number;
    zoomStops: Array<number>;
    interpolationType: InterpolationType | null | undefined;
};
interface CompositeExpression {
    kind: 'composite';
    isStateDependent: boolean;
    isIndoorDependent: boolean;
    isLightConstant: boolean | null | undefined;
    isLineProgressConstant: boolean | null | undefined;
    configDependencies: Set<string>;
    readonly evaluate: <T = unknown>(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<number>;
    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<StylePropertyExpression, Array<ParsingError>>;
declare class StylePropertyFunction<T> {
    _parameters: PropertyValueSpecification<T>;
    _specification: StylePropertySpecification;
    kind: EvaluationKind;
    evaluate: <T = unknown>(globals: GlobalProperties, feature?: Feature) => T;
    interpolationFactor: (input: number, lower: number, upper: number) => number | null | undefined;
    zoomStops: Array<number> | null | undefined;
    constructor(parameters: PropertyValueSpecification<T>, specification: StylePropertySpecification);
    static deserialize<T>(serialized: {
        _parameters: PropertyValueSpecification<T>;
        _specification: StylePropertySpecification;
    }): StylePropertyFunction<T>;
    static serialize<T>(input: StylePropertyFunction<T>): {
        _parameters: PropertyValueSpecification<T>;
        _specification: StylePropertySpecification;
    };
}
declare function normalizePropertyExpression<T>(value: PropertyValueSpecification<T>, 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
 */
declare 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<T>(parameters: FunctionSpecification<T>, 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<unknown>;
    reference: StylePropertySpecification;
    set: (arg1: PropertyValueSpecification<unknown>) => void;
}) => void;
declare function eachProperty(style: StyleSpecification, options: {
    paint?: boolean;
    layout?: boolean;
}, callback: PropertyCallback): void;

type ValidationError = {
    message: string;
    identifier?: string | null | undefined;
    line?: number | null | undefined;
};
type ValidationErrors = ReadonlyArray<ValidationError>;

/**
 * Validate a Mapbox GL style against the style specification.
 *
 * @private
 * @alias validate
 * @param {Object|String|Uint8Array} style The style to be validated. If a `String`
 *     or `Uint8Array` 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<ValidationError|ParsingError>}
 * @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 | Uint8Array, 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<ValidationError>}
 * @example
 *   var validateMapboxApiSupported = require('mapbox-gl-style-spec/lib/validate_style_mapbox_api_supported.js');
 *   var errors = validateMapboxApiSupported(style);
 */
declare 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 PropertyExpressionSpecification = {
    interpolated: boolean;
    parameters?: ExpressionParameter[];
    relaxZoomRestriction?: boolean;
};
type ArrayPropertySpecification = {
    type: 'array';
    'property-type': ExpressionType;
    value: 'enum';
    expression?: PropertyExpressionSpecification;
    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?: PropertyExpressionSpecification;
    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?: PropertyExpressionSpecification;
    transition?: boolean;
    default?: string[];
    length?: number;
    experimental?: boolean;
    private?: boolean;
    requires?: unknown;
    appearance?: boolean;
    tokens?: never;
    minimum?: never;
    maximum?: never;
    values?: never;
};
type BooleanPropertySpecification = {
    type: 'boolean';
    'property-type': ExpressionType;
    expression?: PropertyExpressionSpecification;
    transition?: boolean;
    default?: boolean;
    overridable?: boolean;
    experimental?: boolean;
    private?: boolean;
    requires?: unknown;
    appearance?: boolean;
    tokens?: never;
};
type ColorPropertySpecification = {
    type: 'color';
    'property-type': ExpressionType;
    expression?: PropertyExpressionSpecification;
    transition?: boolean;
    default?: string;
    'use-theme'?: boolean;
    overridable?: boolean;
    experimental?: boolean;
    private?: boolean;
    requires?: unknown;
    appearance?: boolean;
    tokens?: never;
};
type EnumPropertySpecification = {
    type: 'enum';
    'property-type': ExpressionType;
    expression?: PropertyExpressionSpecification;
    transition?: boolean;
    default?: string;
    values?: {
        [_: string]: unknown;
    };
    experimental?: boolean;
    private?: boolean;
    requires?: unknown;
    appearance?: boolean;
    tokens?: never;
};
type FormattedPropertySpecification = {
    type: 'formatted';
    'property-type': ExpressionType;
    expression?: PropertyExpressionSpecification;
    transition?: boolean;
    default?: string;
    tokens?: boolean;
    experimental?: boolean;
    private?: boolean;
    requires?: unknown;
    appearance?: boolean;
};
type NumberPropertySpecification = {
    type: 'number';
    'property-type': ExpressionType;
    expression?: PropertyExpressionSpecification;
    transition?: boolean;
    default?: number;
    minimum?: number;
    maximum?: number;
    period?: number;
    units?: string;
    experimental?: boolean;
    private?: boolean;
    requires?: unknown;
    appearance?: boolean;
    tokens?: never;
};
type ResolvedImagePropertySpecification = {
    type: 'resolvedImage';
    'property-type': ExpressionType;
    expression?: PropertyExpressionSpecification;
    transition?: boolean;
    default?: string;
    tokens?: boolean;
    'use-theme'?: boolean;
    experimental?: boolean;
    private?: boolean;
    requires?: unknown;
    appearance?: boolean;
};
type StringPropertySpecification = {
    type: 'string';
    'property-type': ExpressionType;
    expression?: PropertyExpressionSpecification;
    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
 */
type StylePropertySpecification = ArrayPropertySpecification | BooleanPropertySpecification | ColorPropertySpecification | EnumPropertySpecification | FormattedPropertySpecification | NumberPropertySpecification | ResolvedImagePropertySpecification | StringPropertySpecification;
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;
};
declare const visit: {
    eachSource: typeof eachSource;
    eachLayer: typeof eachLayer;
    eachProperty: typeof eachProperty;
};

export { Color, ParsingError$1 as ParsingError, ValidationError$1 as ValidationError, export_default as composite, convertFilter, derefLayers, diffStyles as diff, expression, createFilter as featureFilter, format, styleFunction as function, _default as latest, export_default$1 as migrate, _exports as v8, validateStyle as validate, validateMapboxApiSupported, visit };
export type { AmbientLightSpecification, AnyLayer, AnyLayout, AnyPaint, AnySourceData, AppearanceSpecification, ArrayPropertySpecification, BackgroundLayer, BackgroundLayerSpecification, BackgroundLayout, BackgroundPaint, BooleanPropertySpecification, BuildingLayer, BuildingLayerSpecification, BuildingLayout, BuildingPaint, CameraFunctionSpecification, CameraSpecification, CircleLayer, CircleLayerSpecification, CircleLayout, CirclePaint, ClipLayer, ClipLayerSpecification, ClipLayout, ColorPropertySpecification, ColorSpecification, ColorThemeSpecification, CompositeFunctionSpecification, ConfigSpecification, DataDrivenPropertyValueSpecification, DirectionalLightSpecification, EnumPropertySpecification, Expression$1 as Expression, ExpressionSpecification, FeaturesetSpecification, FeaturesetsSpecification, FillExtrusionLayer, FillExtrusionLayerSpecification, FillExtrusionLayout, FillExtrusionPaint, FillLayer, FillLayerSpecification, FillLayout, FillPaint, FilterSpecification, FlatLightSpecification, FogSpecification, FormattedPropertySpecification, FormattedSpecification, FunctionSpecification, GeoJSONSourceSpecification, HeatmapLayer, HeatmapLayerSpecification, HeatmapLayout, HeatmapPaint, HillshadeLayer, HillshadeLayerSpecification, HillshadeLayout, HillshadePaint, IconsetSpecification, IconsetsSpecification, ImageSourceSpecification, ImportSpecification, IndoorSourceSpecification, IndoorSpecification, Layer, LayerBaseSpecification, LayerSpecification, LayoutSpecification, LightSpecification, LightsSpecification, LineLayer, LineLayerSpecification, LineLayout, LinePaint, ModelLayer, ModelLayerSpecification, ModelLayout, ModelLightOverridesSpecification, ModelMaterialOverrideSpecification, ModelMaterialOverridesSpecification, ModelNodeOverrideSpecification, ModelNodeOverridesSpecification, ModelPaint, ModelSourceModelSpecification, ModelSourceModelsSpecification, ModelSourceSpecification, ModelSpecification, ModelsSpecification, NumberPropertySpecification, OptionSpecification, PaintSpecification, Projection, ProjectionSpecification, PromoteIdSpecification, PropertyExpressionSpecification, PropertyFunctionStop, PropertyValueSpecification, RainSpecification, RasterArraySourceSpecification, RasterDEMSourceSpecification, RasterLayer, RasterLayerSpecification, RasterLayout, RasterPaint, RasterParticleLayer, RasterParticleLayerSpecification, RasterParticleLayout, RasterParticlePaint, RasterSourceSpecification, ResolvedImagePropertySpecification, ResolvedImageSpecification, SchemaSpecification, SelectorPropertySpecification, SelectorSpecification, SkyLayer, SkyLayerSpecification, SkyLayout, SkyPaint, SlotLayer, SlotLayerSpecification, SnowSpecification, SourceFunctionSpecification, SourceSpecification, Sources, SourcesSpecification, StringPropertySpecification, Style, StylePropertySpecification, StyleSpecification, SymbolLayer, SymbolLayerSpecification, SymbolLayout, SymbolPaint, TerrainSpecification, TerrainSpecificationUpdate, Transition, TransitionSpecification, VectorSourceSpecification, VideoSourceSpecification, ZoomAndPropertyFunctionStop };
