import * as rxjs from 'rxjs'; import { OperatorFunction, Observable, Subscription, Subject } from 'rxjs'; import * as _angular_core from '@angular/core'; import { OnDestroy, Provider, OnInit, Signal, ElementRef, EnvironmentProviders } from '@angular/core'; import * as _dereekb_util from '@dereekb/util'; import { Milliseconds, Pixels, Maybe, Vector, Getter, ZoomLevel, ExtendLatLngBoundInput, LatLngBoundInput, LatLngPointInput, ZoomLevelRange, LatLngPoint, LatLngBound, LatLngBoundCheckFunction, LatLngPrecision, RoundNumberToStepFunctionInput, IsWithinLatLngBoundFunction, OverlapsLatLngBoundFunction, UniqueModel, LatLngInputRef, CssClassesArray, FactoryWithRequiredInput, CssStyleObject, PixelsString, Destroyable, WebsiteUrlWithPrefix } from '@dereekb/util'; import { ComponentStore } from '@ngrx/component-store'; import * as i12 from 'ngx-mapbox-gl'; import { MapService, LayerComponent, MapComponent, provideMapboxGL } from 'ngx-mapbox-gl'; import * as mapbox_gl from 'mapbox-gl'; import { Map as Map$1, MapEventType, MapOptions, Anchor, PointLike, LngLatLike } from 'mapbox-gl'; import * as _dereekb_dbx_core from '@dereekb/dbx-core'; import { DbxInjectionComponentConfig, DbxInjectionComponentConfigWithoutInjector, ClickableAnchor } from '@dereekb/dbx-core'; import { ObservableOrValue, ObservableOrValueGetter } from '@dereekb/rxjs'; import * as geojson from 'geojson'; import * as _dereekb_dbx_web_mapbox from '@dereekb/dbx-web/mapbox'; import { DbxColorInput, ResizedEvent } from '@dereekb/dbx-web'; import { MatDrawerContainer } from '@angular/material/sidenav'; import { MatMenuTrigger } from '@angular/material/menu'; /** * Default time the pointer must be held still for a long press to fire. */ declare const DEFAULT_MAPBOX_LONG_PRESS_DURATION: Milliseconds; /** * Default distance the pointer may drift from where the press started before the press is cancelled. * * Larger than mapbox's 3px click tolerance, since a held finger drifts more than a clicked mouse. */ declare const DEFAULT_MAPBOX_LONG_PRESS_TOLERANCE: Pixels; /** * How long after touch activity mouse events are ignored. * * Browsers send compatibility ("ghost") mouse events after a touch, which must not start a second, mouse press. */ declare const DBX_MAPBOX_LONG_PRESS_TOUCH_MOUSE_GUARD_TIME: Milliseconds; /** * The {@link DbxMapboxLongPressEvent} type value. */ declare const DBX_MAPBOX_LONG_PRESS_EVENT_TYPE = "longpress"; /** * What the long press was made with. */ type DbxMapboxLongPressSource = 'touch' | 'mouse'; /** * Configures the long press that opens the map's right-click menu. */ interface DbxMapboxLongPressConfig { /** * How long the pointer must be held still. Defaults to {@link DEFAULT_MAPBOX_LONG_PRESS_DURATION}. */ readonly duration?: Maybe; /** * How far the pointer may move from where the press started. Defaults to {@link DEFAULT_MAPBOX_LONG_PRESS_TOLERANCE}. */ readonly tolerance?: Maybe; /** * Whether holding the left mouse button also counts, not only a touch. Defaults to true. */ readonly mouse?: Maybe; } /** * A {@link DbxMapboxLongPressConfig}, or false to turn the long press off. */ type DbxMapboxLongPressConfigInput = Maybe; /** * A {@link DbxMapboxLongPressConfig} with every default applied. */ interface DbxMapboxResolvedLongPressConfig { readonly duration: Milliseconds; readonly tolerance: Pixels; readonly mouse: boolean; } interface ResolveDbxMapboxLongPressConfigInput { /** * Config that takes precedence, such as one set on a single map's store. * * False turns the long press off. A config is merged over the base, and turns the long press on even when the base is false. Unset falls back to the base. */ readonly override?: DbxMapboxLongPressConfigInput; /** * The app-wide config. False turns the long press off; unset uses the defaults. */ readonly base?: DbxMapboxLongPressConfigInput; } /** * Resolves the long press config to use, applying the defaults. * * @param input - The override and base configs. * @returns The resolved config, or undefined when the long press is off. */ declare function resolveDbxMapboxLongPressConfig(input: ResolveDbxMapboxLongPressConfigInput): Maybe; /** * Emitted when the pointer is held still on the map for the configured duration. * * Also emitted by the store's rightClickEvent$, so a long press opens the same menu a right-click does. */ interface DbxMapboxLongPressEvent { readonly type: typeof DBX_MAPBOX_LONG_PRESS_EVENT_TYPE; /** * The map the press was made on. */ readonly target: mapbox_gl.Map; readonly source: DbxMapboxLongPressSource; /** * The DOM event that started the press. */ readonly originalEvent: MouseEvent | TouchEvent; /** * Position of the pointer on the map canvas when the press fired. */ readonly point: mapbox_gl.Point; /** * Map coordinates of the pointer when the press fired. */ readonly lngLat: mapbox_gl.LngLat; /** * How long the pointer was held. */ readonly duration: Milliseconds; } /** * Returns true if the event is a {@link DbxMapboxLongPressEvent}, as opposed to a mapbox mouse event. * * @param event - The event to check. * @returns True for a long press event. */ declare function isDbxMapboxLongPressEvent(event: Maybe<{ readonly type: string; }>): event is DbxMapboxLongPressEvent; /** * Returns true if a mouse event (such as contextmenu) was produced by a touch or pen rather than a mouse. * * Chromium sends contextmenu as a PointerEvent with a pointerType; sourceCapabilities covers the rest. * * @param event - The mouse event. * @returns True if the event came from a touch or pen. */ declare function isTouchSourcedMouseEvent(event: MouseEvent): boolean; /** * Stops the next click event, if it happens in the current task. * * Used after the mouse is released on a press that already fired, so the release does not also click the map. Same approach as mapbox's own click suppression after a drag. */ declare function suppressNextClickEvent(): void; type DbxMapboxLongPressTrackerState = 'idle' | 'pending' | 'fired'; interface DbxMapboxLongPressTrackerStart { readonly source: DbxMapboxLongPressSource; /** * Client (viewport) position of the pointer. */ readonly position: Vector; /** * The DOM event that started the press. */ readonly event: MouseEvent | TouchEvent; } interface DbxMapboxLongPressTrackerResult { readonly source: DbxMapboxLongPressSource; /** * Latest client (viewport) position of the pointer. */ readonly position: Vector; /** * The DOM event that started the press. */ readonly startEvent: MouseEvent | TouchEvent; readonly duration: Milliseconds; } interface DbxMapboxLongPressTrackerConfig { /** * Returns the config to use. Read when each press starts, so a changed config applies from the next press. Undefined turns the long press off. */ readonly getConfig: Getter>; /** * Called when a press has been held for the configured duration. */ readonly onLongPress: (result: DbxMapboxLongPressTrackerResult) => void; } /** * Tracks presses on the map and reports the ones held still for the configured duration. * * It only tracks positions and time; the caller feeds it pointer events and decides what a long press does. */ interface DbxMapboxLongPressTracker { readonly state: DbxMapboxLongPressTrackerState; /** * What the current press was made with, if a press is pending or fired. */ readonly source: Maybe; /** * Starts a press, replacing any current one. * * @param input - The pointer position and the event that started the press. * @returns True if a press was started. False when the long press is off, the source is a mouse and mouse presses are off, or the mouse event came right after a touch. */ start(input: DbxMapboxLongPressTrackerStart): boolean; /** * Updates the pointer position. Cancels the pending press if the pointer moved farther than the tolerance from where it started. */ move(source: DbxMapboxLongPressSource, position: Vector): void; /** * Ends the press when the pointer is released. * * @returns True if the press had already fired. */ end(source: DbxMapboxLongPressSource): boolean; /** * Cancels the current press, such as when the user starts zooming. */ cancel(): void; /** * Whether a touch is down, or was recently, so mouse events are likely touch compatibility events. */ isTouchInteraction(): boolean; /** * Whether the next click should be ignored because it ends a press that fired. */ shouldSuppressClick(): boolean; destroy(): void; } /** * Creates a {@link DbxMapboxLongPressTracker}. * * @param config - The config getter and the long press callback. * @returns A new tracker. */ declare function dbxMapboxLongPressTracker(config: DbxMapboxLongPressTrackerConfig): DbxMapboxLongPressTracker; /** * List of styles that are defined here: * * https://docs.mapbox.com/api/maps/styles/ */ type KnownMapboxStyle = 'mapbox://styles/mapbox/standard' | 'mapbox://styles/mapbox/streets-v12' | 'mapbox://styles/mapbox/outdoors-v12' | 'mapbox://styles/mapbox/light-v11' | 'mapbox://styles/mapbox/dark-v11' | 'mapbox://styles/mapbox/satellite-v9' | 'mapbox://styles/mapbox/satellite-streets-v12' | 'mapbox://styles/mapbox/navigation-day-v1' | 'mapbox://styles/mapbox/navigation-night-v1'; declare const KNOWN_MAPBOX_STYLES: KnownMapboxStyle[]; type MapboxEventData = object; type MapboxZoomLevel = ZoomLevel; type MapboxZoomLevelRange = ZoomLevelRange; declare const MAPBOX_MIN_ZOOM_LEVEL: MapboxZoomLevel; declare const MAPBOX_MAX_ZOOM_LEVEL: MapboxZoomLevel; /** * Clamps a numeric value to the valid Mapbox zoom level range (0 to 22). * * @param input - The raw zoom level number to clamp. * @returns The zoom level clamped between {@link MAPBOX_MIN_ZOOM_LEVEL} and {@link MAPBOX_MAX_ZOOM_LEVEL}. */ declare function mapboxZoomLevel(input: number): MapboxZoomLevel; type MapboxPitch = number; type MapboxBearing = number; /** * Size of the tiles. Vector-based tiles used by the web are generally 512x512, and legacy ones are 256x256. * * https://blog.mapbox.com/512-map-tiles-cb5bfd6e72ba */ type MapboxTileSize = 512 | 256; type DbxMapboxClickEvent = mapbox_gl.MapMouseEvent & MapboxEventData; /** * The event that opens the map's right-click menu: a mouse contextmenu event, or a long press on the map. * * Use isDbxMapboxLongPressEvent() to tell them apart. */ type DbxMapboxRightClickEvent = DbxMapboxClickEvent | DbxMapboxLongPressEvent; /** * Options for MapboxGl.Map.fitBounds() */ type MapboxFitBoundsOptions = Parameters[1]; /** * Options for MapboxGl.Map.easeTo() */ type MapboxEaseToOptions = Parameters[0]; /** * Options for MapboxGl.Map.flyTo() */ type MapboxFlyToOptions = Parameters[0]; /** * Options for MapboxGl.Map.setStyle() */ type MapboxSetStyleOptions = Parameters[1]; interface MapboxStyleConfig { readonly style: mapbox_gl.StyleSpecification | string; readonly options?: MapboxSetStyleOptions; } interface MapboxFitPositions { positions: ExtendLatLngBoundInput; options?: MapboxFitBoundsOptions; eventData?: MapboxEventData; } interface MapboxFitBounds { bounds: LatLngBoundInput; options?: MapboxFitBoundsOptions; eventData?: MapboxEventData; } interface MapboxJumpToPositionOptions extends Omit { center: LatLngPointInput; } interface MapboxJumpTo { center?: LatLngPointInput; to?: MapboxJumpToPositionOptions; eventData?: MapboxEventData; } interface MapboxEaseToPositionOptions extends Omit, MapboxJumpToPositionOptions { } interface MapboxEaseTo { center?: LatLngPointInput; to?: MapboxEaseToPositionOptions; eventData?: MapboxEventData; } interface MapboxFlyToPositionOptions extends Omit, MapboxJumpToPositionOptions { } interface MapboxFlyTo { center?: LatLngPointInput; to?: MapboxFlyToPositionOptions; eventData?: MapboxEventData; } interface MapboxRotateTo { bearing: MapboxBearing; options?: mapboxgl.AnimationOptions; eventData?: MapboxEventData; } interface MapboxResetNorth { options?: mapboxgl.AnimationOptions; eventData?: MapboxEventData; } interface MapboxResetNorthPitch { options?: mapboxgl.AnimationOptions; eventData?: MapboxEventData; } interface MapboxSnapToNorth { options?: mapboxgl.AnimationOptions; eventData?: MapboxEventData; } interface MapboxViewportBoundFunctionConfig { readonly mapCanvasSize: Vector; /** * Mapbox tilesize being used. Defaults to 512x512. */ readonly tileSize?: MapboxTileSize; } /** * Input for MapboxViewportBoundFunction. */ interface MapboxViewportBoundFunctionInput { /** * Center of the viewport */ readonly center: LatLngPoint; /** * Zoom level */ readonly zoom: MapboxZoomLevel; } /** * Used to calculate the bounds of a view/object given the input MapboxViewportBoundFunctionInput. */ type MapboxViewportBoundFunction = (input: MapboxViewportBoundFunctionInput) => LatLngBound; /** * Creates a function that calculates the geographic bounds of a Mapbox viewport given a center point and zoom level. * * @param config - Configuration specifying the map canvas size and optional tile size. * @returns Accepts a center point and zoom level and returns the corresponding {@link LatLngBound}. */ declare function mapboxViewportBoundFunction(config: MapboxViewportBoundFunctionConfig): MapboxViewportBoundFunction; /** * The parts of the map's canvas container used to convert between client (viewport) and map canvas positions. */ type MapboxCanvasContainerLike = Pick; interface MapboxCanvasContainerPointInput { readonly container: MapboxCanvasContainerLike; readonly point: Vector; } /** * Converts a client (viewport) position, such as a touch's clientX/clientY, to a position on the map canvas. * * @param input - The canvas container and the client position. * @returns The map canvas position, which map.unproject() turns into coordinates. */ declare function mapboxClientPointToMapPoint(input: MapboxCanvasContainerPointInput): Vector; /** * Converts a position on the map canvas, such as a map event's point, to a client (viewport) position. * * @param input - The canvas container and the map canvas position. * @returns The client position. */ declare function mapboxMapPointToClientPoint(input: MapboxCanvasContainerPointInput): Vector; /** * Returns the client (viewport) position of a right-click or long press event, for positioning a menu at it. * * @param event - The right-click or long press event. * @returns The client position. */ declare function dbxMapboxRightClickEventClientPosition(event: DbxMapboxRightClickEvent): Vector; type FilterMapboxBoundReadItemValueFunction = (value: T) => MapboxViewportBoundFunctionItemValue; interface FilterMapboxBoundConfig { readonly boundFunctionObs: ObservableOrValue; readonly boundDecisionObs: ObservableOrValue; /** * Reads the value from the input item. */ readonly readValue: FilterMapboxBoundReadItemValueFunction; /** * Minimum precision to retain. Defaults to LAT_LONG_10M_PRECISION */ readonly precision?: LatLngPrecision; /** * Amount of zoom rounding to use. By default rounds to 0.5 steps using "floor" in order to "round up" since zoom values are inversely proportional to bounds area. */ readonly zoomRounding?: RoundNumberToStepFunctionInput; /** * Default zoom level for item values that do not have an explicit zoom, or a zoom of 0. * * Defaults to 17, which can produce a viewport/bounds about the size of a park. */ readonly defaultZoom?: MapboxZoomLevel; } interface MapboxViewportBoundFunctionItemValue { readonly center: LatLngPointInput; readonly zoom?: Maybe; } interface MapboxViewportBoundFunctionItem { readonly value: T; readonly bound: LatLngBound; } /** * Filters the input objects based on their center and zoom values. * * This function caches the bounds computations for each of the input values. * * @param config * @returns */ declare function filterByMapboxViewportBound(config: FilterMapboxBoundConfig): OperatorFunction; type MapboxMapLifecycleState = 'init' | 'load' | 'render' | 'idle'; type MapboxMapMoveState = 'init' | 'idle' | 'moving'; type MapboxMapZoomState = 'init' | 'idle' | 'zooming'; type MapboxMapRotateState = 'init' | 'idle' | 'rotating'; interface StringMapboxListenerPair { type: string; listener: (ev: MapboxEventData) => void; } interface TypedMapboxListenerPair { type: T; listener: (ev: MapEventType[T] & MapboxEventData) => void; } interface DbxMapboxMarginCalculationSizing { leftMargin: number; rightMargin: number; fullWidth: number; } type DbxMapboxStoreBoundRefreshType = 'always' | 'when_not_rendering' | 'only_after_render_finishes'; interface DbxMapboxStoreBoundRefreshSettings { /** * Max bound refresh interval. */ throttle: number; /** * Whether or not to wait to update the bound until after it has finished rendering. */ refreshType: DbxMapboxStoreBoundRefreshType; } interface DbxMapboxStoreState { /** * Current MapService being utilized. */ readonly mapService?: Maybe; readonly lifecycleState: MapboxMapLifecycleState; readonly moveState: MapboxMapMoveState; readonly zoomState: MapboxMapZoomState; readonly rotateState: MapboxMapRotateState; /** * Visual container size of the map. */ readonly mapCanvasSize?: Maybe; /** * Latest click event */ readonly clickEvent?: Maybe; /** * Latest double-click event */ readonly doubleClickEvent?: Maybe; /** * Latest right-click: a contextmenu event, or a long press. */ readonly rightClickEvent?: Maybe; /** * Latest long press event. */ readonly longPressEvent?: Maybe; /** * Long press config for this map, over the app-wide DbxMapboxConfig.longPress. False turns the long press off for this map. */ readonly longPressConfig?: DbxMapboxLongPressConfigInput; /** * Whether or not to retain content between resets. * * True by default. */ readonly retainContent: boolean; /** * Custom drawer content configuration. */ readonly drawerContent?: Maybe>; /** * Latest error */ readonly error?: Maybe; /** * Map margin/offset */ readonly margin?: Maybe; /** * Minimum vector size to use for the viewportBoundFunction$. If not defined there is no minimum. */ readonly minimumVirtualViewportSize?: Maybe>; /** * Bound refresh settings */ readonly boundRefreshSettings: DbxMapboxStoreBoundRefreshSettings; /** * Whether or not to use the virtual bound (vs raw bound) for all bound-related observables. * * Defaults to true. */ readonly useVirtualBound: boolean; } /** * Store used for retrieving information. */ declare class DbxMapboxMapStore extends ComponentStore { private readonly dbxMapboxService; private safeLatLngPoint; private latLngPoint; private latLngBound; constructor(); readonly setMapService: (observableOrValue: Maybe | Observable>) => Subscription; readonly setStyle: (observableOrValue: string | MapboxStyleConfig | Observable) => Subscription; readonly setCenter: (observableOrValue: LatLngPointInput | Observable) => Subscription; readonly setZoom: (observableOrValue: number | Observable) => Subscription; readonly setZoomRange: (observableOrValue: Partial<_dereekb_util.ZoomLevelRange> | Observable>) => Subscription; readonly setMinZoom: (observableOrValue: number | Observable) => Subscription; readonly setMaxZoom: (observableOrValue: number | Observable) => Subscription; readonly setKeyboardDisabled: (observableOrValue: void | Maybe | Observable>) => Subscription; readonly setDragRotateDisabled: (observableOrValue: void | Maybe | Observable>) => Subscription; readonly setDragPanDisabled: (observableOrValue: void | Maybe | Observable>) => Subscription; readonly setZoomDisabled: (observableOrValue: void | Maybe | Observable>) => Subscription; readonly setPitch: (observableOrValue: number | Observable) => Subscription; readonly setMinPitch: (observableOrValue: number | Observable) => Subscription; readonly setMaxPitch: (observableOrValue: number | Observable) => Subscription; readonly setBearing: (observableOrValue: number | Observable) => Subscription; readonly rotateTo: (observableOrValue: number | MapboxRotateTo | Observable) => Subscription; readonly resetNorth: (observableOrValue: void | Maybe | Observable>) => Subscription; readonly resetNorthPitch: (observableOrValue: void | Maybe | Observable>) => Subscription; readonly snapToNorth: (observableOrValue: void | Maybe | Observable>) => Subscription; readonly fitPositions: (observableOrValue: MapboxFitPositions | Observable) => Subscription; readonly fitBounds: (observableOrValue: MapboxFitBounds | Observable) => Subscription; readonly jumpTo: (observableOrValue: MapboxJumpTo | Observable) => Subscription; readonly easeTo: (observableOrValue: MapboxEaseTo | Observable) => Subscription; readonly flyTo: (observableOrValue: MapboxFlyTo | Observable) => Subscription; readonly resetPitchAndBearing: (observableOrValue?: void | Observable | undefined) => Subscription; get timerRefreshPeriod(): number; movingTimer(period?: number): Observable; lifecycleRenderTimer(period?: number): Observable; atNextIdle(): Observable; calculateNextCenterWithOffset(inputOffset: LatLngPointInput): Observable; calculateNextCenterOffsetWithScreenMarginChange(sizing: DbxMapboxMarginCalculationSizing): Observable; filterByViewportBound(input: FilterMapboxBoundReadItemValueFunction | Omit, 'boundFunctionObs' | 'boundDecisionObs'>): OperatorFunction; readonly currentMapService$: Observable>; readonly mapService$: Observable; readonly currentMapInstance$: Observable>; readonly mapInstance$: Observable; readonly boundRefreshSettings$: Observable; readonly moveState$: Observable; readonly lifecycleState$: Observable; readonly zoomState$: Observable; readonly rotateState$: Observable; readonly isInitialized$: Observable; readonly whenInitialized$: Observable; readonly isRendering$: Observable; readonly isMoving$: Observable; readonly isZooming$: Observable; readonly isRotating$: Observable; private readonly _movingTimer; private readonly _renderingTimer; readonly centerNow$: Observable; readonly center$: Observable; readonly minimumVirtualViewportSize$: Observable>>; readonly currentMapCanvasSize$: Observable>; /** * The map canvas size with consideration to the virtual viewport size. */ readonly mapCanvasSize$: Observable; minimumMapCanvasSize(minVector: Partial): Observable; /** * The map canvas size with consideration to the virtual viewport size. */ readonly virtualMapCanvasSize$: Observable; readonly rawViewportBoundFunction$: Observable; /** * Creates a MapboxViewportBoundFunction observable that returns the minimum viewport size. * * @param minVector * @returns */ viewportBoundFunctionWithMinimumSize(minVector: Partial): Observable; readonly viewportBoundFunction$: Observable; readonly virtualBound$: Observable; readonly margin$: Observable>; readonly reverseMargin$: Observable<{ leftMargin: number; rightMargin: number; fullWidth: number; } | null | undefined>; readonly centerGivenMargin$: Observable; readonly rawBoundNow$: Observable; readonly rawBound$: Observable; readonly useVirtualBound$: Observable; readonly bound$: Observable; readonly boundSizing$: Observable; readonly boundWrapsAroundWorld$: Observable; readonly isWithinBoundFunction$: Observable; readonly overlapsBoundFunction$: Observable; readonly zoomNow$: Observable; readonly zoom$: Observable; readonly pitchNow$: Observable; readonly pitch$: Observable; readonly bearingNow$: Observable; readonly bearing$: Observable; readonly drawerContent$: Observable>>; readonly hasDrawerContent$: Observable; readonly clickEvent$: Observable>; readonly doubleClickEvent$: Observable>; /** * Latest right-click: a contextmenu event, or a long press. Use isDbxMapboxLongPressEvent() to tell them apart. */ readonly rightClickEvent$: Observable>; readonly longPressEvent$: Observable>; readonly setMargin: (() => void) | ((observableOrValue: Maybe | Observable>) => Subscription); readonly setMinimumVirtualViewportSize: (() => void) | ((observableOrValue: Maybe> | Observable>>) => Subscription); readonly setUseVirtualBound: (observableOrValue: boolean | Observable) => Subscription; /** * Sets the long press config for this map, over the app-wide DbxMapboxConfig.longPress. False turns the long press off for this map; undefined uses the app-wide config. * * Applies from the next press. */ readonly setLongPressConfig: (() => void) | ((observableOrValue: DbxMapboxLongPressConfigInput | Observable) => Subscription); readonly setBoundRefreshSettings: (observableOrValue: Partial | Observable>) => Subscription; private readonly _setMapService; private readonly _setLifecycleState; private readonly _setMoveState; private readonly _setZoomState; private readonly _setRotateState; private readonly _setMapCanvasSize; private readonly _setClickEvent; private readonly _setDoubleClickEvent; private readonly _setRightClickEvent; private readonly _setLongPressEvent; private readonly _setError; readonly clearDrawerContent: () => void; readonly setDrawerContent: (() => void) | ((observableOrValue: Maybe> | Observable>>) => Subscription); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } /** * Provided in the parent component that allows children to emit events related to their lifecycles. */ declare class DbxMapboxChangeService implements OnDestroy { readonly dbxMapboxMapStore: DbxMapboxMapStore; private readonly _markerDestroyed; private readonly _applyChanges; readonly markerDestroyed$: Subject; readonly applyChanges$: rxjs.Observable; private readonly _applyChangesSub; applyChanges(): void; emitMarkerDestroyed(): void; ngOnDestroy(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } /** * Unit a {@link DbxMapboxCircle} radius is measured in. * * - m: meters * - km: kilometers * - mi: miles */ type DbxMapboxCircleRadiusUnit = 'm' | 'km' | 'mi'; /** * Number of meters in one of each {@link DbxMapboxCircleRadiusUnit}. */ declare const DBX_MAPBOX_CIRCLE_METERS_PER_RADIUS_UNIT: Readonly>; /** * Mean radius of the Earth in meters, used to trace a circle's ring on the globe. */ declare const DBX_MAPBOX_EARTH_RADIUS_METERS = 6371008.8; /** * Number of points {@link dbxMapboxCircleRing} places around a circle. */ declare const DBX_MAPBOX_CIRCLE_RING_STEPS = 64; /** * Default color of a {@link DbxMapboxCircle}'s fill, outline, and label. */ declare const DEFAULT_DBX_MAPBOX_CIRCLE_COLOR = "#1a73e8"; /** * Default opacity of a {@link DbxMapboxCircle}'s fill. */ declare const DEFAULT_DBX_MAPBOX_CIRCLE_FILL_OPACITY = 0.1; /** * Default opacity of a {@link DbxMapboxCircle}'s outline. */ declare const DEFAULT_DBX_MAPBOX_CIRCLE_LINE_OPACITY = 1; /** * Default opacity of a {@link DbxMapboxCircle}'s label. */ declare const DEFAULT_DBX_MAPBOX_CIRCLE_LABEL_OPACITY = 1; /** * Converts a radius to meters. * * @param radius - The radius. * @param unit - The unit the radius is in. Defaults to meters. * @returns The radius in meters. */ declare function dbxMapboxCircleRadiusInMeters(radius: number, unit?: Maybe): number; interface DbxMapboxCircleDisplayConfig { /** * Radius of the circle, in {@link radiusUnit}. */ readonly radius: number; /** * Unit the radius is in. Defaults to meters. */ readonly radiusUnit?: Maybe; /** * Text repeated along the circle's edge, such as "5 mile radius". */ readonly label?: Maybe; /** * Color of the fill, outline, and label. Defaults to {@link DEFAULT_DBX_MAPBOX_CIRCLE_COLOR}. */ readonly color?: Maybe; /** * Opacity of the fill, from 0 to 1. Defaults to {@link DEFAULT_DBX_MAPBOX_CIRCLE_FILL_OPACITY}. */ readonly fillOpacity?: Maybe; /** * Opacity of the outline, from 0 to 1. Defaults to {@link DEFAULT_DBX_MAPBOX_CIRCLE_LINE_OPACITY}. */ readonly lineOpacity?: Maybe; /** * Opacity of the label, from 0 to 1. Defaults to {@link DEFAULT_DBX_MAPBOX_CIRCLE_LABEL_OPACITY}. */ readonly labelOpacity?: Maybe; } /** * A circle drawn on the map at a real-world radius around its center, so it grows and shrinks with the zoom. */ type DbxMapboxCircle = UniqueModel & LatLngInputRef & DbxMapboxCircleDisplayConfig; /** * Properties of the feature {@link dbxMapboxCircleFeature} creates, read by the circle's label layer. */ interface DbxMapboxCircleFeatureProperties { readonly label: string; } /** * Builds a closed ring of points that trace the circle of `radiusInMeters` around `center`. * * Each point is the great-circle destination from the center at an evenly spaced bearing, starting due north. The last point repeats the first to close the ring. * Longitudes are not wrapped, so a ring that crosses the antimeridian stays continuous. * * @param center - The center of the circle. * @param radiusInMeters - The radius of the circle in meters. * @returns The ring's {@link DBX_MAPBOX_CIRCLE_RING_STEPS} points, with the first point repeated at the end. */ declare function dbxMapboxCircleRing(center: LatLngPoint, radiusInMeters: number): LatLngPoint[]; /** * Creates the GeoJSON polygon feature that draws a circle on the map. * * @param center - The center of the circle. * @param circle - The circle's radius and label. * @returns A polygon feature whose `label` property is the circle's label, or an empty string. */ declare function dbxMapboxCircleFeature(center: LatLngPoint, circle: Pick): GeoJSON.Feature; /** * Value of an mgl-layer's [paint] input. */ type DbxMapboxLayerPaint = ReturnType; /** * Value of an mgl-layer's [layout] input. */ type DbxMapboxLayerLayout = ReturnType; /** * Layout of the label repeated along a circle's edge. */ declare const DBX_MAPBOX_CIRCLE_LABEL_LAYOUT: DbxMapboxLayerLayout; /** * Draws a {@link DbxMapboxCircle} on the parent mgl-map as a filled polygon with an outline and an optional label along its edge. * * The circle is sized in real-world units, so it grows and shrinks with the zoom. Draws nothing while the circle is unset. */ declare class DbxMapboxCircleComponent { private static readonly _latLngPoint; readonly circle: _angular_core.InputSignal>; readonly sourceId: string; readonly labelLayout: { "fill-sort-key"?: mapbox_gl.DataDrivenPropertyValueSpecification; visibility?: "visible" | "none" | mapbox_gl.ExpressionSpecification; "fill-elevation-reference"?: "none" | "hd-road-base" | "hd-road-markup" | mapbox_gl.ExpressionSpecification; "fill-construct-bridge-guard-rail"?: mapbox_gl.DataDrivenPropertyValueSpecification; } | { "line-cap"?: mapbox_gl.DataDrivenPropertyValueSpecification<"butt" | "round" | "square">; "line-join"?: mapbox_gl.DataDrivenPropertyValueSpecification<"bevel" | "round" | "miter" | "none">; "line-miter-limit"?: mapbox_gl.PropertyValueSpecification; "line-round-limit"?: mapbox_gl.PropertyValueSpecification; "line-sort-key"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-z-offset"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-elevation-reference"?: "none" | "sea" | "ground" | "hd-road-markup" | mapbox_gl.ExpressionSpecification; "line-cross-slope"?: mapbox_gl.ExpressionSpecification; visibility?: "visible" | "none" | mapbox_gl.ExpressionSpecification; "line-width-unit"?: mapbox_gl.PropertyValueSpecification<"pixels" | "meters">; } | { "symbol-placement"?: mapbox_gl.PropertyValueSpecification<"point" | "line" | "line-center">; "symbol-spacing"?: mapbox_gl.PropertyValueSpecification; "symbol-avoid-edges"?: mapbox_gl.PropertyValueSpecification; "symbol-sort-key"?: mapbox_gl.DataDrivenPropertyValueSpecification; "symbol-z-order"?: mapbox_gl.PropertyValueSpecification<"auto" | "viewport-y" | "source">; "symbol-z-elevate"?: mapbox_gl.PropertyValueSpecification; "symbol-elevation-reference"?: mapbox_gl.PropertyValueSpecification<"sea" | "ground" | "hd-road-markup">; "icon-allow-overlap"?: mapbox_gl.PropertyValueSpecification; "icon-ignore-placement"?: mapbox_gl.PropertyValueSpecification; "icon-optional"?: mapbox_gl.PropertyValueSpecification; "icon-rotation-alignment"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport" | "auto">; "icon-size"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-size-scale-range"?: mapbox_gl.ExpressionSpecification; "icon-text-fit"?: mapbox_gl.DataDrivenPropertyValueSpecification<"none" | "width" | "height" | "both">; "icon-text-fit-padding"?: mapbox_gl.DataDrivenPropertyValueSpecification<[number, number, number, number]>; "icon-image"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-rotate"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-padding"?: mapbox_gl.PropertyValueSpecification; "icon-keep-upright"?: mapbox_gl.PropertyValueSpecification; "icon-offset"?: mapbox_gl.DataDrivenPropertyValueSpecification<[number, number]>; "icon-anchor"?: mapbox_gl.DataDrivenPropertyValueSpecification<"center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right">; "icon-pitch-alignment"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport" | "auto">; "text-pitch-alignment"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport" | "auto">; "text-rotation-alignment"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport" | "auto">; "text-field"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-font"?: mapbox_gl.DataDrivenPropertyValueSpecification>; "text-size"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-size-scale-range"?: mapbox_gl.ExpressionSpecification; "text-max-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-line-height"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-letter-spacing"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-justify"?: mapbox_gl.DataDrivenPropertyValueSpecification<"auto" | "left" | "center" | "right">; "text-radial-offset"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-variable-anchor"?: mapbox_gl.PropertyValueSpecification>; "text-anchor"?: mapbox_gl.DataDrivenPropertyValueSpecification<"center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right">; "text-max-angle"?: mapbox_gl.PropertyValueSpecification; "text-writing-mode"?: mapbox_gl.PropertyValueSpecification>; "text-rotate"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-padding"?: mapbox_gl.PropertyValueSpecification; "text-keep-upright"?: mapbox_gl.PropertyValueSpecification; "text-transform"?: mapbox_gl.DataDrivenPropertyValueSpecification<"none" | "uppercase" | "lowercase">; "text-offset"?: mapbox_gl.DataDrivenPropertyValueSpecification<[number, number]>; "text-allow-overlap"?: mapbox_gl.PropertyValueSpecification; "text-ignore-placement"?: mapbox_gl.PropertyValueSpecification; "text-optional"?: mapbox_gl.PropertyValueSpecification; visibility?: "visible" | "none" | mapbox_gl.ExpressionSpecification; } | { "circle-sort-key"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-elevation-reference"?: "none" | "hd-road-markup" | mapbox_gl.ExpressionSpecification; visibility?: "visible" | "none" | mapbox_gl.ExpressionSpecification; } | { visibility?: "visible" | "none" | mapbox_gl.ExpressionSpecification; } | { visibility?: "visible" | "none" | mapbox_gl.ExpressionSpecification; "fill-extrusion-edge-radius"?: mapbox_gl.ExpressionSpecification; } | { visibility?: "visible" | "none" | mapbox_gl.ExpressionSpecification; } | { visibility?: "visible" | "none" | mapbox_gl.ExpressionSpecification; } | { visibility?: "visible" | "none" | mapbox_gl.ExpressionSpecification; } | { visibility?: "visible" | "none" | mapbox_gl.ExpressionSpecification; "model-id"?: mapbox_gl.DataDrivenPropertyValueSpecification; } | { visibility?: "visible" | "none" | mapbox_gl.ExpressionSpecification; } | { visibility?: "visible" | "none" | mapbox_gl.ExpressionSpecification; } | { "clip-layer-types"?: mapbox_gl.ExpressionSpecification; "clip-layer-scope"?: mapbox_gl.ExpressionSpecification; } | undefined; readonly featureSignal: _angular_core.Signal>; readonly colorSignal: _angular_core.Signal; readonly fillPaintSignal: _angular_core.Signal<{ "fill-antialias"?: mapbox_gl.PropertyValueSpecification; "fill-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-opacity-transition"?: mapbox_gl.TransitionSpecification; "fill-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-color-transition"?: mapbox_gl.TransitionSpecification; "fill-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "fill-outline-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-outline-color-transition"?: mapbox_gl.TransitionSpecification; "fill-outline-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "fill-translate"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "fill-translate-transition"?: mapbox_gl.TransitionSpecification; "fill-translate-anchor"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "fill-pattern"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-emissive-strength"?: mapbox_gl.PropertyValueSpecification; "fill-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; "fill-z-offset"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-z-offset-transition"?: mapbox_gl.TransitionSpecification; "fill-bridge-guard-rail-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-bridge-guard-rail-color-transition"?: mapbox_gl.TransitionSpecification; "fill-bridge-guard-rail-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "fill-tunnel-structure-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-tunnel-structure-color-transition"?: mapbox_gl.TransitionSpecification; "fill-tunnel-structure-color-use-theme"?: mapbox_gl.PropertyValueSpecification; } | { "line-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-opacity-transition"?: mapbox_gl.TransitionSpecification; "line-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-color-transition"?: mapbox_gl.TransitionSpecification; "line-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "line-translate"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "line-translate-transition"?: mapbox_gl.TransitionSpecification; "line-translate-anchor"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "line-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-width-transition"?: mapbox_gl.TransitionSpecification; "line-gap-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-gap-width-transition"?: mapbox_gl.TransitionSpecification; "line-offset"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-offset-transition"?: mapbox_gl.TransitionSpecification; "line-blur"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-blur-transition"?: mapbox_gl.TransitionSpecification; "line-dasharray"?: mapbox_gl.DataDrivenPropertyValueSpecification>; "line-pattern"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-gradient"?: mapbox_gl.ExpressionSpecification; "line-gradient-use-theme"?: mapbox_gl.PropertyValueSpecification; "line-trim-offset"?: [number, number]; "line-trim-fade-range"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "line-trim-color"?: mapbox_gl.PropertyValueSpecification; "line-trim-color-transition"?: mapbox_gl.TransitionSpecification; "line-trim-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "line-emissive-strength"?: mapbox_gl.PropertyValueSpecification; "line-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; "line-border-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-border-width-transition"?: mapbox_gl.TransitionSpecification; "line-border-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-border-color-transition"?: mapbox_gl.TransitionSpecification; "line-border-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "line-occlusion-opacity"?: mapbox_gl.PropertyValueSpecification; "line-occlusion-opacity-transition"?: mapbox_gl.TransitionSpecification; } | { "icon-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-opacity-transition"?: mapbox_gl.TransitionSpecification; "icon-occlusion-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-occlusion-opacity-transition"?: mapbox_gl.TransitionSpecification; "icon-emissive-strength"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; "text-emissive-strength"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; "icon-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-color-transition"?: mapbox_gl.TransitionSpecification; "icon-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "icon-halo-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-halo-color-transition"?: mapbox_gl.TransitionSpecification; "icon-halo-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "icon-halo-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-halo-width-transition"?: mapbox_gl.TransitionSpecification; "icon-halo-blur"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-halo-blur-transition"?: mapbox_gl.TransitionSpecification; "icon-translate"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "icon-translate-transition"?: mapbox_gl.TransitionSpecification; "icon-translate-anchor"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "icon-image-cross-fade"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-image-cross-fade-transition"?: mapbox_gl.TransitionSpecification; "text-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-opacity-transition"?: mapbox_gl.TransitionSpecification; "text-occlusion-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-occlusion-opacity-transition"?: mapbox_gl.TransitionSpecification; "text-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-color-transition"?: mapbox_gl.TransitionSpecification; "text-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "text-halo-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-halo-color-transition"?: mapbox_gl.TransitionSpecification; "text-halo-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "text-halo-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-halo-width-transition"?: mapbox_gl.TransitionSpecification; "text-halo-blur"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-halo-blur-transition"?: mapbox_gl.TransitionSpecification; "text-translate"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "text-translate-transition"?: mapbox_gl.TransitionSpecification; "text-translate-anchor"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "icon-color-saturation"?: mapbox_gl.ExpressionSpecification; "icon-color-contrast"?: mapbox_gl.ExpressionSpecification; "icon-color-brightness-min"?: mapbox_gl.ExpressionSpecification; "icon-color-brightness-max"?: mapbox_gl.ExpressionSpecification; "symbol-z-offset"?: mapbox_gl.DataDrivenPropertyValueSpecification; "symbol-z-offset-transition"?: mapbox_gl.TransitionSpecification; } | { "circle-radius"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-radius-transition"?: mapbox_gl.TransitionSpecification; "circle-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-color-transition"?: mapbox_gl.TransitionSpecification; "circle-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "circle-blur"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-blur-transition"?: mapbox_gl.TransitionSpecification; "circle-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-opacity-transition"?: mapbox_gl.TransitionSpecification; "circle-translate"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "circle-translate-transition"?: mapbox_gl.TransitionSpecification; "circle-translate-anchor"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "circle-pitch-scale"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "circle-pitch-alignment"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "circle-stroke-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-stroke-width-transition"?: mapbox_gl.TransitionSpecification; "circle-stroke-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-stroke-color-transition"?: mapbox_gl.TransitionSpecification; "circle-stroke-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "circle-stroke-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-stroke-opacity-transition"?: mapbox_gl.TransitionSpecification; "circle-emissive-strength"?: mapbox_gl.PropertyValueSpecification; "circle-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; } | { "heatmap-radius"?: mapbox_gl.DataDrivenPropertyValueSpecification; "heatmap-radius-transition"?: mapbox_gl.TransitionSpecification; "heatmap-weight"?: mapbox_gl.DataDrivenPropertyValueSpecification; "heatmap-intensity"?: mapbox_gl.PropertyValueSpecification; "heatmap-intensity-transition"?: mapbox_gl.TransitionSpecification; "heatmap-color"?: mapbox_gl.ExpressionSpecification; "heatmap-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "heatmap-opacity"?: mapbox_gl.PropertyValueSpecification; "heatmap-opacity-transition"?: mapbox_gl.TransitionSpecification; } | { "fill-extrusion-opacity"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-opacity-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-color-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-translate"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "fill-extrusion-translate-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-translate-anchor"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "fill-extrusion-pattern"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-height"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-height-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-base"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-base-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-height-alignment"?: "terrain" | "flat"; "fill-extrusion-base-alignment"?: "terrain" | "flat"; "fill-extrusion-vertical-gradient"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-ambient-occlusion-intensity"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-ambient-occlusion-intensity-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-ambient-occlusion-radius"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-ambient-occlusion-radius-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-ambient-occlusion-wall-radius"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-ambient-occlusion-wall-radius-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-ambient-occlusion-ground-radius"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-ambient-occlusion-ground-radius-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-ambient-occlusion-ground-attenuation"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-ambient-occlusion-ground-attenuation-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-flood-light-color"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-flood-light-color-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-flood-light-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-flood-light-intensity"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-flood-light-intensity-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-flood-light-wall-radius"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-flood-light-wall-radius-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-flood-light-ground-radius"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-flood-light-ground-radius-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-flood-light-ground-attenuation"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-flood-light-ground-attenuation-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-vertical-scale"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-vertical-scale-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-rounded-roof"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-cutoff-fade-range"?: mapbox_gl.ExpressionSpecification; "fill-extrusion-emissive-strength"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-line-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-line-width-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-cast-shadows"?: boolean; } | { "raster-opacity"?: mapbox_gl.PropertyValueSpecification; "raster-opacity-transition"?: mapbox_gl.TransitionSpecification; "raster-color"?: mapbox_gl.ExpressionSpecification; "raster-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "raster-color-mix"?: mapbox_gl.PropertyValueSpecification<[number, number, number, number]>; "raster-color-mix-transition"?: mapbox_gl.TransitionSpecification; "raster-color-range"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "raster-color-range-transition"?: mapbox_gl.TransitionSpecification; "raster-hue-rotate"?: mapbox_gl.PropertyValueSpecification; "raster-hue-rotate-transition"?: mapbox_gl.TransitionSpecification; "raster-brightness-min"?: mapbox_gl.PropertyValueSpecification; "raster-brightness-min-transition"?: mapbox_gl.TransitionSpecification; "raster-brightness-max"?: mapbox_gl.PropertyValueSpecification; "raster-brightness-max-transition"?: mapbox_gl.TransitionSpecification; "raster-saturation"?: mapbox_gl.PropertyValueSpecification; "raster-saturation-transition"?: mapbox_gl.TransitionSpecification; "raster-contrast"?: mapbox_gl.PropertyValueSpecification; "raster-contrast-transition"?: mapbox_gl.TransitionSpecification; "raster-resampling"?: mapbox_gl.PropertyValueSpecification<"linear" | "nearest">; "raster-fade-duration"?: mapbox_gl.PropertyValueSpecification; "raster-emissive-strength"?: mapbox_gl.PropertyValueSpecification; "raster-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; "raster-array-band"?: string; "raster-elevation"?: mapbox_gl.PropertyValueSpecification; "raster-elevation-transition"?: mapbox_gl.TransitionSpecification; } | { "raster-particle-array-band"?: string; "raster-particle-count"?: number; "raster-particle-color"?: mapbox_gl.ExpressionSpecification; "raster-particle-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "raster-particle-max-speed"?: number; "raster-particle-speed-factor"?: mapbox_gl.PropertyValueSpecification; "raster-particle-speed-factor-transition"?: mapbox_gl.TransitionSpecification; "raster-particle-fade-opacity-factor"?: mapbox_gl.PropertyValueSpecification; "raster-particle-fade-opacity-factor-transition"?: mapbox_gl.TransitionSpecification; "raster-particle-reset-rate-factor"?: number; "raster-particle-elevation"?: mapbox_gl.PropertyValueSpecification; "raster-particle-elevation-transition"?: mapbox_gl.TransitionSpecification; } | { "hillshade-illumination-direction"?: mapbox_gl.PropertyValueSpecification; "hillshade-illumination-anchor"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "hillshade-exaggeration"?: mapbox_gl.PropertyValueSpecification; "hillshade-exaggeration-transition"?: mapbox_gl.TransitionSpecification; "hillshade-shadow-color"?: mapbox_gl.PropertyValueSpecification; "hillshade-shadow-color-transition"?: mapbox_gl.TransitionSpecification; "hillshade-shadow-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "hillshade-highlight-color"?: mapbox_gl.PropertyValueSpecification; "hillshade-highlight-color-transition"?: mapbox_gl.TransitionSpecification; "hillshade-highlight-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "hillshade-accent-color"?: mapbox_gl.PropertyValueSpecification; "hillshade-accent-color-transition"?: mapbox_gl.TransitionSpecification; "hillshade-accent-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "hillshade-emissive-strength"?: mapbox_gl.PropertyValueSpecification; "hillshade-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; } | { "model-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "model-opacity-transition"?: mapbox_gl.TransitionSpecification; "model-rotation"?: mapbox_gl.DataDrivenPropertyValueSpecification<[number, number, number]>; "model-rotation-transition"?: mapbox_gl.TransitionSpecification; "model-scale"?: mapbox_gl.DataDrivenPropertyValueSpecification<[number, number, number]>; "model-scale-transition"?: mapbox_gl.TransitionSpecification; "model-translation"?: mapbox_gl.DataDrivenPropertyValueSpecification<[number, number, number]>; "model-translation-transition"?: mapbox_gl.TransitionSpecification; "model-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "model-color-transition"?: mapbox_gl.TransitionSpecification; "model-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "model-color-mix-intensity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "model-color-mix-intensity-transition"?: mapbox_gl.TransitionSpecification; "model-type"?: "common-3d" | "location-indicator"; "model-cast-shadows"?: boolean; "model-receive-shadows"?: boolean; "model-ambient-occlusion-intensity"?: mapbox_gl.PropertyValueSpecification; "model-ambient-occlusion-intensity-transition"?: mapbox_gl.TransitionSpecification; "model-emissive-strength"?: mapbox_gl.DataDrivenPropertyValueSpecification; "model-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; "model-roughness"?: mapbox_gl.DataDrivenPropertyValueSpecification; "model-roughness-transition"?: mapbox_gl.TransitionSpecification; "model-height-based-emissive-strength-multiplier"?: mapbox_gl.DataDrivenPropertyValueSpecification<[number, number, number, number, number]>; "model-height-based-emissive-strength-multiplier-transition"?: mapbox_gl.TransitionSpecification; "model-cutoff-fade-range"?: mapbox_gl.ExpressionSpecification; "model-front-cutoff"?: mapbox_gl.PropertyValueSpecification<[number, number, number]>; } | { "background-pitch-alignment"?: "map" | "viewport" | mapbox_gl.ExpressionSpecification; "background-color"?: mapbox_gl.PropertyValueSpecification; "background-color-transition"?: mapbox_gl.TransitionSpecification; "background-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "background-pattern"?: mapbox_gl.PropertyValueSpecification; "background-opacity"?: mapbox_gl.PropertyValueSpecification; "background-opacity-transition"?: mapbox_gl.TransitionSpecification; "background-emissive-strength"?: mapbox_gl.PropertyValueSpecification; "background-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; } | { "sky-type"?: mapbox_gl.PropertyValueSpecification<"gradient" | "atmosphere">; "sky-atmosphere-sun"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "sky-atmosphere-sun-intensity"?: number; "sky-gradient-center"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "sky-gradient-radius"?: mapbox_gl.PropertyValueSpecification; "sky-gradient"?: mapbox_gl.ExpressionSpecification; "sky-gradient-use-theme"?: mapbox_gl.PropertyValueSpecification; "sky-atmosphere-halo-color"?: mapbox_gl.ColorSpecification; "sky-atmosphere-halo-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "sky-atmosphere-color"?: mapbox_gl.ColorSpecification; "sky-atmosphere-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "sky-opacity"?: mapbox_gl.PropertyValueSpecification; "sky-opacity-transition"?: mapbox_gl.TransitionSpecification; } | undefined>; readonly linePaintSignal: _angular_core.Signal<{ "fill-antialias"?: mapbox_gl.PropertyValueSpecification; "fill-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-opacity-transition"?: mapbox_gl.TransitionSpecification; "fill-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-color-transition"?: mapbox_gl.TransitionSpecification; "fill-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "fill-outline-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-outline-color-transition"?: mapbox_gl.TransitionSpecification; "fill-outline-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "fill-translate"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "fill-translate-transition"?: mapbox_gl.TransitionSpecification; "fill-translate-anchor"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "fill-pattern"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-emissive-strength"?: mapbox_gl.PropertyValueSpecification; "fill-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; "fill-z-offset"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-z-offset-transition"?: mapbox_gl.TransitionSpecification; "fill-bridge-guard-rail-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-bridge-guard-rail-color-transition"?: mapbox_gl.TransitionSpecification; "fill-bridge-guard-rail-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "fill-tunnel-structure-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-tunnel-structure-color-transition"?: mapbox_gl.TransitionSpecification; "fill-tunnel-structure-color-use-theme"?: mapbox_gl.PropertyValueSpecification; } | { "line-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-opacity-transition"?: mapbox_gl.TransitionSpecification; "line-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-color-transition"?: mapbox_gl.TransitionSpecification; "line-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "line-translate"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "line-translate-transition"?: mapbox_gl.TransitionSpecification; "line-translate-anchor"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "line-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-width-transition"?: mapbox_gl.TransitionSpecification; "line-gap-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-gap-width-transition"?: mapbox_gl.TransitionSpecification; "line-offset"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-offset-transition"?: mapbox_gl.TransitionSpecification; "line-blur"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-blur-transition"?: mapbox_gl.TransitionSpecification; "line-dasharray"?: mapbox_gl.DataDrivenPropertyValueSpecification>; "line-pattern"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-gradient"?: mapbox_gl.ExpressionSpecification; "line-gradient-use-theme"?: mapbox_gl.PropertyValueSpecification; "line-trim-offset"?: [number, number]; "line-trim-fade-range"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "line-trim-color"?: mapbox_gl.PropertyValueSpecification; "line-trim-color-transition"?: mapbox_gl.TransitionSpecification; "line-trim-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "line-emissive-strength"?: mapbox_gl.PropertyValueSpecification; "line-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; "line-border-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-border-width-transition"?: mapbox_gl.TransitionSpecification; "line-border-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-border-color-transition"?: mapbox_gl.TransitionSpecification; "line-border-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "line-occlusion-opacity"?: mapbox_gl.PropertyValueSpecification; "line-occlusion-opacity-transition"?: mapbox_gl.TransitionSpecification; } | { "icon-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-opacity-transition"?: mapbox_gl.TransitionSpecification; "icon-occlusion-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-occlusion-opacity-transition"?: mapbox_gl.TransitionSpecification; "icon-emissive-strength"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; "text-emissive-strength"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; "icon-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-color-transition"?: mapbox_gl.TransitionSpecification; "icon-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "icon-halo-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-halo-color-transition"?: mapbox_gl.TransitionSpecification; "icon-halo-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "icon-halo-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-halo-width-transition"?: mapbox_gl.TransitionSpecification; "icon-halo-blur"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-halo-blur-transition"?: mapbox_gl.TransitionSpecification; "icon-translate"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "icon-translate-transition"?: mapbox_gl.TransitionSpecification; "icon-translate-anchor"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "icon-image-cross-fade"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-image-cross-fade-transition"?: mapbox_gl.TransitionSpecification; "text-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-opacity-transition"?: mapbox_gl.TransitionSpecification; "text-occlusion-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-occlusion-opacity-transition"?: mapbox_gl.TransitionSpecification; "text-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-color-transition"?: mapbox_gl.TransitionSpecification; "text-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "text-halo-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-halo-color-transition"?: mapbox_gl.TransitionSpecification; "text-halo-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "text-halo-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-halo-width-transition"?: mapbox_gl.TransitionSpecification; "text-halo-blur"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-halo-blur-transition"?: mapbox_gl.TransitionSpecification; "text-translate"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "text-translate-transition"?: mapbox_gl.TransitionSpecification; "text-translate-anchor"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "icon-color-saturation"?: mapbox_gl.ExpressionSpecification; "icon-color-contrast"?: mapbox_gl.ExpressionSpecification; "icon-color-brightness-min"?: mapbox_gl.ExpressionSpecification; "icon-color-brightness-max"?: mapbox_gl.ExpressionSpecification; "symbol-z-offset"?: mapbox_gl.DataDrivenPropertyValueSpecification; "symbol-z-offset-transition"?: mapbox_gl.TransitionSpecification; } | { "circle-radius"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-radius-transition"?: mapbox_gl.TransitionSpecification; "circle-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-color-transition"?: mapbox_gl.TransitionSpecification; "circle-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "circle-blur"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-blur-transition"?: mapbox_gl.TransitionSpecification; "circle-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-opacity-transition"?: mapbox_gl.TransitionSpecification; "circle-translate"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "circle-translate-transition"?: mapbox_gl.TransitionSpecification; "circle-translate-anchor"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "circle-pitch-scale"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "circle-pitch-alignment"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "circle-stroke-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-stroke-width-transition"?: mapbox_gl.TransitionSpecification; "circle-stroke-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-stroke-color-transition"?: mapbox_gl.TransitionSpecification; "circle-stroke-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "circle-stroke-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-stroke-opacity-transition"?: mapbox_gl.TransitionSpecification; "circle-emissive-strength"?: mapbox_gl.PropertyValueSpecification; "circle-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; } | { "heatmap-radius"?: mapbox_gl.DataDrivenPropertyValueSpecification; "heatmap-radius-transition"?: mapbox_gl.TransitionSpecification; "heatmap-weight"?: mapbox_gl.DataDrivenPropertyValueSpecification; "heatmap-intensity"?: mapbox_gl.PropertyValueSpecification; "heatmap-intensity-transition"?: mapbox_gl.TransitionSpecification; "heatmap-color"?: mapbox_gl.ExpressionSpecification; "heatmap-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "heatmap-opacity"?: mapbox_gl.PropertyValueSpecification; "heatmap-opacity-transition"?: mapbox_gl.TransitionSpecification; } | { "fill-extrusion-opacity"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-opacity-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-color-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-translate"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "fill-extrusion-translate-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-translate-anchor"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "fill-extrusion-pattern"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-height"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-height-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-base"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-base-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-height-alignment"?: "terrain" | "flat"; "fill-extrusion-base-alignment"?: "terrain" | "flat"; "fill-extrusion-vertical-gradient"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-ambient-occlusion-intensity"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-ambient-occlusion-intensity-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-ambient-occlusion-radius"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-ambient-occlusion-radius-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-ambient-occlusion-wall-radius"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-ambient-occlusion-wall-radius-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-ambient-occlusion-ground-radius"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-ambient-occlusion-ground-radius-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-ambient-occlusion-ground-attenuation"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-ambient-occlusion-ground-attenuation-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-flood-light-color"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-flood-light-color-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-flood-light-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-flood-light-intensity"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-flood-light-intensity-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-flood-light-wall-radius"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-flood-light-wall-radius-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-flood-light-ground-radius"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-flood-light-ground-radius-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-flood-light-ground-attenuation"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-flood-light-ground-attenuation-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-vertical-scale"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-vertical-scale-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-rounded-roof"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-cutoff-fade-range"?: mapbox_gl.ExpressionSpecification; "fill-extrusion-emissive-strength"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-line-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-line-width-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-cast-shadows"?: boolean; } | { "raster-opacity"?: mapbox_gl.PropertyValueSpecification; "raster-opacity-transition"?: mapbox_gl.TransitionSpecification; "raster-color"?: mapbox_gl.ExpressionSpecification; "raster-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "raster-color-mix"?: mapbox_gl.PropertyValueSpecification<[number, number, number, number]>; "raster-color-mix-transition"?: mapbox_gl.TransitionSpecification; "raster-color-range"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "raster-color-range-transition"?: mapbox_gl.TransitionSpecification; "raster-hue-rotate"?: mapbox_gl.PropertyValueSpecification; "raster-hue-rotate-transition"?: mapbox_gl.TransitionSpecification; "raster-brightness-min"?: mapbox_gl.PropertyValueSpecification; "raster-brightness-min-transition"?: mapbox_gl.TransitionSpecification; "raster-brightness-max"?: mapbox_gl.PropertyValueSpecification; "raster-brightness-max-transition"?: mapbox_gl.TransitionSpecification; "raster-saturation"?: mapbox_gl.PropertyValueSpecification; "raster-saturation-transition"?: mapbox_gl.TransitionSpecification; "raster-contrast"?: mapbox_gl.PropertyValueSpecification; "raster-contrast-transition"?: mapbox_gl.TransitionSpecification; "raster-resampling"?: mapbox_gl.PropertyValueSpecification<"linear" | "nearest">; "raster-fade-duration"?: mapbox_gl.PropertyValueSpecification; "raster-emissive-strength"?: mapbox_gl.PropertyValueSpecification; "raster-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; "raster-array-band"?: string; "raster-elevation"?: mapbox_gl.PropertyValueSpecification; "raster-elevation-transition"?: mapbox_gl.TransitionSpecification; } | { "raster-particle-array-band"?: string; "raster-particle-count"?: number; "raster-particle-color"?: mapbox_gl.ExpressionSpecification; "raster-particle-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "raster-particle-max-speed"?: number; "raster-particle-speed-factor"?: mapbox_gl.PropertyValueSpecification; "raster-particle-speed-factor-transition"?: mapbox_gl.TransitionSpecification; "raster-particle-fade-opacity-factor"?: mapbox_gl.PropertyValueSpecification; "raster-particle-fade-opacity-factor-transition"?: mapbox_gl.TransitionSpecification; "raster-particle-reset-rate-factor"?: number; "raster-particle-elevation"?: mapbox_gl.PropertyValueSpecification; "raster-particle-elevation-transition"?: mapbox_gl.TransitionSpecification; } | { "hillshade-illumination-direction"?: mapbox_gl.PropertyValueSpecification; "hillshade-illumination-anchor"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "hillshade-exaggeration"?: mapbox_gl.PropertyValueSpecification; "hillshade-exaggeration-transition"?: mapbox_gl.TransitionSpecification; "hillshade-shadow-color"?: mapbox_gl.PropertyValueSpecification; "hillshade-shadow-color-transition"?: mapbox_gl.TransitionSpecification; "hillshade-shadow-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "hillshade-highlight-color"?: mapbox_gl.PropertyValueSpecification; "hillshade-highlight-color-transition"?: mapbox_gl.TransitionSpecification; "hillshade-highlight-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "hillshade-accent-color"?: mapbox_gl.PropertyValueSpecification; "hillshade-accent-color-transition"?: mapbox_gl.TransitionSpecification; "hillshade-accent-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "hillshade-emissive-strength"?: mapbox_gl.PropertyValueSpecification; "hillshade-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; } | { "model-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "model-opacity-transition"?: mapbox_gl.TransitionSpecification; "model-rotation"?: mapbox_gl.DataDrivenPropertyValueSpecification<[number, number, number]>; "model-rotation-transition"?: mapbox_gl.TransitionSpecification; "model-scale"?: mapbox_gl.DataDrivenPropertyValueSpecification<[number, number, number]>; "model-scale-transition"?: mapbox_gl.TransitionSpecification; "model-translation"?: mapbox_gl.DataDrivenPropertyValueSpecification<[number, number, number]>; "model-translation-transition"?: mapbox_gl.TransitionSpecification; "model-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "model-color-transition"?: mapbox_gl.TransitionSpecification; "model-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "model-color-mix-intensity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "model-color-mix-intensity-transition"?: mapbox_gl.TransitionSpecification; "model-type"?: "common-3d" | "location-indicator"; "model-cast-shadows"?: boolean; "model-receive-shadows"?: boolean; "model-ambient-occlusion-intensity"?: mapbox_gl.PropertyValueSpecification; "model-ambient-occlusion-intensity-transition"?: mapbox_gl.TransitionSpecification; "model-emissive-strength"?: mapbox_gl.DataDrivenPropertyValueSpecification; "model-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; "model-roughness"?: mapbox_gl.DataDrivenPropertyValueSpecification; "model-roughness-transition"?: mapbox_gl.TransitionSpecification; "model-height-based-emissive-strength-multiplier"?: mapbox_gl.DataDrivenPropertyValueSpecification<[number, number, number, number, number]>; "model-height-based-emissive-strength-multiplier-transition"?: mapbox_gl.TransitionSpecification; "model-cutoff-fade-range"?: mapbox_gl.ExpressionSpecification; "model-front-cutoff"?: mapbox_gl.PropertyValueSpecification<[number, number, number]>; } | { "background-pitch-alignment"?: "map" | "viewport" | mapbox_gl.ExpressionSpecification; "background-color"?: mapbox_gl.PropertyValueSpecification; "background-color-transition"?: mapbox_gl.TransitionSpecification; "background-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "background-pattern"?: mapbox_gl.PropertyValueSpecification; "background-opacity"?: mapbox_gl.PropertyValueSpecification; "background-opacity-transition"?: mapbox_gl.TransitionSpecification; "background-emissive-strength"?: mapbox_gl.PropertyValueSpecification; "background-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; } | { "sky-type"?: mapbox_gl.PropertyValueSpecification<"gradient" | "atmosphere">; "sky-atmosphere-sun"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "sky-atmosphere-sun-intensity"?: number; "sky-gradient-center"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "sky-gradient-radius"?: mapbox_gl.PropertyValueSpecification; "sky-gradient"?: mapbox_gl.ExpressionSpecification; "sky-gradient-use-theme"?: mapbox_gl.PropertyValueSpecification; "sky-atmosphere-halo-color"?: mapbox_gl.ColorSpecification; "sky-atmosphere-halo-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "sky-atmosphere-color"?: mapbox_gl.ColorSpecification; "sky-atmosphere-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "sky-opacity"?: mapbox_gl.PropertyValueSpecification; "sky-opacity-transition"?: mapbox_gl.TransitionSpecification; } | undefined>; readonly labelPaintSignal: _angular_core.Signal<{ "fill-antialias"?: mapbox_gl.PropertyValueSpecification; "fill-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-opacity-transition"?: mapbox_gl.TransitionSpecification; "fill-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-color-transition"?: mapbox_gl.TransitionSpecification; "fill-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "fill-outline-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-outline-color-transition"?: mapbox_gl.TransitionSpecification; "fill-outline-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "fill-translate"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "fill-translate-transition"?: mapbox_gl.TransitionSpecification; "fill-translate-anchor"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "fill-pattern"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-emissive-strength"?: mapbox_gl.PropertyValueSpecification; "fill-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; "fill-z-offset"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-z-offset-transition"?: mapbox_gl.TransitionSpecification; "fill-bridge-guard-rail-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-bridge-guard-rail-color-transition"?: mapbox_gl.TransitionSpecification; "fill-bridge-guard-rail-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "fill-tunnel-structure-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-tunnel-structure-color-transition"?: mapbox_gl.TransitionSpecification; "fill-tunnel-structure-color-use-theme"?: mapbox_gl.PropertyValueSpecification; } | { "line-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-opacity-transition"?: mapbox_gl.TransitionSpecification; "line-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-color-transition"?: mapbox_gl.TransitionSpecification; "line-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "line-translate"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "line-translate-transition"?: mapbox_gl.TransitionSpecification; "line-translate-anchor"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "line-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-width-transition"?: mapbox_gl.TransitionSpecification; "line-gap-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-gap-width-transition"?: mapbox_gl.TransitionSpecification; "line-offset"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-offset-transition"?: mapbox_gl.TransitionSpecification; "line-blur"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-blur-transition"?: mapbox_gl.TransitionSpecification; "line-dasharray"?: mapbox_gl.DataDrivenPropertyValueSpecification>; "line-pattern"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-gradient"?: mapbox_gl.ExpressionSpecification; "line-gradient-use-theme"?: mapbox_gl.PropertyValueSpecification; "line-trim-offset"?: [number, number]; "line-trim-fade-range"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "line-trim-color"?: mapbox_gl.PropertyValueSpecification; "line-trim-color-transition"?: mapbox_gl.TransitionSpecification; "line-trim-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "line-emissive-strength"?: mapbox_gl.PropertyValueSpecification; "line-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; "line-border-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-border-width-transition"?: mapbox_gl.TransitionSpecification; "line-border-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "line-border-color-transition"?: mapbox_gl.TransitionSpecification; "line-border-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "line-occlusion-opacity"?: mapbox_gl.PropertyValueSpecification; "line-occlusion-opacity-transition"?: mapbox_gl.TransitionSpecification; } | { "icon-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-opacity-transition"?: mapbox_gl.TransitionSpecification; "icon-occlusion-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-occlusion-opacity-transition"?: mapbox_gl.TransitionSpecification; "icon-emissive-strength"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; "text-emissive-strength"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; "icon-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-color-transition"?: mapbox_gl.TransitionSpecification; "icon-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "icon-halo-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-halo-color-transition"?: mapbox_gl.TransitionSpecification; "icon-halo-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "icon-halo-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-halo-width-transition"?: mapbox_gl.TransitionSpecification; "icon-halo-blur"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-halo-blur-transition"?: mapbox_gl.TransitionSpecification; "icon-translate"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "icon-translate-transition"?: mapbox_gl.TransitionSpecification; "icon-translate-anchor"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "icon-image-cross-fade"?: mapbox_gl.DataDrivenPropertyValueSpecification; "icon-image-cross-fade-transition"?: mapbox_gl.TransitionSpecification; "text-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-opacity-transition"?: mapbox_gl.TransitionSpecification; "text-occlusion-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-occlusion-opacity-transition"?: mapbox_gl.TransitionSpecification; "text-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-color-transition"?: mapbox_gl.TransitionSpecification; "text-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "text-halo-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-halo-color-transition"?: mapbox_gl.TransitionSpecification; "text-halo-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "text-halo-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-halo-width-transition"?: mapbox_gl.TransitionSpecification; "text-halo-blur"?: mapbox_gl.DataDrivenPropertyValueSpecification; "text-halo-blur-transition"?: mapbox_gl.TransitionSpecification; "text-translate"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "text-translate-transition"?: mapbox_gl.TransitionSpecification; "text-translate-anchor"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "icon-color-saturation"?: mapbox_gl.ExpressionSpecification; "icon-color-contrast"?: mapbox_gl.ExpressionSpecification; "icon-color-brightness-min"?: mapbox_gl.ExpressionSpecification; "icon-color-brightness-max"?: mapbox_gl.ExpressionSpecification; "symbol-z-offset"?: mapbox_gl.DataDrivenPropertyValueSpecification; "symbol-z-offset-transition"?: mapbox_gl.TransitionSpecification; } | { "circle-radius"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-radius-transition"?: mapbox_gl.TransitionSpecification; "circle-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-color-transition"?: mapbox_gl.TransitionSpecification; "circle-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "circle-blur"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-blur-transition"?: mapbox_gl.TransitionSpecification; "circle-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-opacity-transition"?: mapbox_gl.TransitionSpecification; "circle-translate"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "circle-translate-transition"?: mapbox_gl.TransitionSpecification; "circle-translate-anchor"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "circle-pitch-scale"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "circle-pitch-alignment"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "circle-stroke-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-stroke-width-transition"?: mapbox_gl.TransitionSpecification; "circle-stroke-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-stroke-color-transition"?: mapbox_gl.TransitionSpecification; "circle-stroke-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "circle-stroke-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "circle-stroke-opacity-transition"?: mapbox_gl.TransitionSpecification; "circle-emissive-strength"?: mapbox_gl.PropertyValueSpecification; "circle-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; } | { "heatmap-radius"?: mapbox_gl.DataDrivenPropertyValueSpecification; "heatmap-radius-transition"?: mapbox_gl.TransitionSpecification; "heatmap-weight"?: mapbox_gl.DataDrivenPropertyValueSpecification; "heatmap-intensity"?: mapbox_gl.PropertyValueSpecification; "heatmap-intensity-transition"?: mapbox_gl.TransitionSpecification; "heatmap-color"?: mapbox_gl.ExpressionSpecification; "heatmap-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "heatmap-opacity"?: mapbox_gl.PropertyValueSpecification; "heatmap-opacity-transition"?: mapbox_gl.TransitionSpecification; } | { "fill-extrusion-opacity"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-opacity-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-color-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-translate"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "fill-extrusion-translate-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-translate-anchor"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "fill-extrusion-pattern"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-height"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-height-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-base"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-base-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-height-alignment"?: "terrain" | "flat"; "fill-extrusion-base-alignment"?: "terrain" | "flat"; "fill-extrusion-vertical-gradient"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-ambient-occlusion-intensity"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-ambient-occlusion-intensity-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-ambient-occlusion-radius"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-ambient-occlusion-radius-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-ambient-occlusion-wall-radius"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-ambient-occlusion-wall-radius-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-ambient-occlusion-ground-radius"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-ambient-occlusion-ground-radius-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-ambient-occlusion-ground-attenuation"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-ambient-occlusion-ground-attenuation-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-flood-light-color"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-flood-light-color-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-flood-light-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-flood-light-intensity"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-flood-light-intensity-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-flood-light-wall-radius"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-flood-light-wall-radius-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-flood-light-ground-radius"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-flood-light-ground-radius-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-flood-light-ground-attenuation"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-flood-light-ground-attenuation-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-vertical-scale"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-vertical-scale-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-rounded-roof"?: mapbox_gl.PropertyValueSpecification; "fill-extrusion-cutoff-fade-range"?: mapbox_gl.ExpressionSpecification; "fill-extrusion-emissive-strength"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-line-width"?: mapbox_gl.DataDrivenPropertyValueSpecification; "fill-extrusion-line-width-transition"?: mapbox_gl.TransitionSpecification; "fill-extrusion-cast-shadows"?: boolean; } | { "raster-opacity"?: mapbox_gl.PropertyValueSpecification; "raster-opacity-transition"?: mapbox_gl.TransitionSpecification; "raster-color"?: mapbox_gl.ExpressionSpecification; "raster-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "raster-color-mix"?: mapbox_gl.PropertyValueSpecification<[number, number, number, number]>; "raster-color-mix-transition"?: mapbox_gl.TransitionSpecification; "raster-color-range"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "raster-color-range-transition"?: mapbox_gl.TransitionSpecification; "raster-hue-rotate"?: mapbox_gl.PropertyValueSpecification; "raster-hue-rotate-transition"?: mapbox_gl.TransitionSpecification; "raster-brightness-min"?: mapbox_gl.PropertyValueSpecification; "raster-brightness-min-transition"?: mapbox_gl.TransitionSpecification; "raster-brightness-max"?: mapbox_gl.PropertyValueSpecification; "raster-brightness-max-transition"?: mapbox_gl.TransitionSpecification; "raster-saturation"?: mapbox_gl.PropertyValueSpecification; "raster-saturation-transition"?: mapbox_gl.TransitionSpecification; "raster-contrast"?: mapbox_gl.PropertyValueSpecification; "raster-contrast-transition"?: mapbox_gl.TransitionSpecification; "raster-resampling"?: mapbox_gl.PropertyValueSpecification<"linear" | "nearest">; "raster-fade-duration"?: mapbox_gl.PropertyValueSpecification; "raster-emissive-strength"?: mapbox_gl.PropertyValueSpecification; "raster-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; "raster-array-band"?: string; "raster-elevation"?: mapbox_gl.PropertyValueSpecification; "raster-elevation-transition"?: mapbox_gl.TransitionSpecification; } | { "raster-particle-array-band"?: string; "raster-particle-count"?: number; "raster-particle-color"?: mapbox_gl.ExpressionSpecification; "raster-particle-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "raster-particle-max-speed"?: number; "raster-particle-speed-factor"?: mapbox_gl.PropertyValueSpecification; "raster-particle-speed-factor-transition"?: mapbox_gl.TransitionSpecification; "raster-particle-fade-opacity-factor"?: mapbox_gl.PropertyValueSpecification; "raster-particle-fade-opacity-factor-transition"?: mapbox_gl.TransitionSpecification; "raster-particle-reset-rate-factor"?: number; "raster-particle-elevation"?: mapbox_gl.PropertyValueSpecification; "raster-particle-elevation-transition"?: mapbox_gl.TransitionSpecification; } | { "hillshade-illumination-direction"?: mapbox_gl.PropertyValueSpecification; "hillshade-illumination-anchor"?: mapbox_gl.PropertyValueSpecification<"map" | "viewport">; "hillshade-exaggeration"?: mapbox_gl.PropertyValueSpecification; "hillshade-exaggeration-transition"?: mapbox_gl.TransitionSpecification; "hillshade-shadow-color"?: mapbox_gl.PropertyValueSpecification; "hillshade-shadow-color-transition"?: mapbox_gl.TransitionSpecification; "hillshade-shadow-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "hillshade-highlight-color"?: mapbox_gl.PropertyValueSpecification; "hillshade-highlight-color-transition"?: mapbox_gl.TransitionSpecification; "hillshade-highlight-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "hillshade-accent-color"?: mapbox_gl.PropertyValueSpecification; "hillshade-accent-color-transition"?: mapbox_gl.TransitionSpecification; "hillshade-accent-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "hillshade-emissive-strength"?: mapbox_gl.PropertyValueSpecification; "hillshade-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; } | { "model-opacity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "model-opacity-transition"?: mapbox_gl.TransitionSpecification; "model-rotation"?: mapbox_gl.DataDrivenPropertyValueSpecification<[number, number, number]>; "model-rotation-transition"?: mapbox_gl.TransitionSpecification; "model-scale"?: mapbox_gl.DataDrivenPropertyValueSpecification<[number, number, number]>; "model-scale-transition"?: mapbox_gl.TransitionSpecification; "model-translation"?: mapbox_gl.DataDrivenPropertyValueSpecification<[number, number, number]>; "model-translation-transition"?: mapbox_gl.TransitionSpecification; "model-color"?: mapbox_gl.DataDrivenPropertyValueSpecification; "model-color-transition"?: mapbox_gl.TransitionSpecification; "model-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "model-color-mix-intensity"?: mapbox_gl.DataDrivenPropertyValueSpecification; "model-color-mix-intensity-transition"?: mapbox_gl.TransitionSpecification; "model-type"?: "common-3d" | "location-indicator"; "model-cast-shadows"?: boolean; "model-receive-shadows"?: boolean; "model-ambient-occlusion-intensity"?: mapbox_gl.PropertyValueSpecification; "model-ambient-occlusion-intensity-transition"?: mapbox_gl.TransitionSpecification; "model-emissive-strength"?: mapbox_gl.DataDrivenPropertyValueSpecification; "model-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; "model-roughness"?: mapbox_gl.DataDrivenPropertyValueSpecification; "model-roughness-transition"?: mapbox_gl.TransitionSpecification; "model-height-based-emissive-strength-multiplier"?: mapbox_gl.DataDrivenPropertyValueSpecification<[number, number, number, number, number]>; "model-height-based-emissive-strength-multiplier-transition"?: mapbox_gl.TransitionSpecification; "model-cutoff-fade-range"?: mapbox_gl.ExpressionSpecification; "model-front-cutoff"?: mapbox_gl.PropertyValueSpecification<[number, number, number]>; } | { "background-pitch-alignment"?: "map" | "viewport" | mapbox_gl.ExpressionSpecification; "background-color"?: mapbox_gl.PropertyValueSpecification; "background-color-transition"?: mapbox_gl.TransitionSpecification; "background-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "background-pattern"?: mapbox_gl.PropertyValueSpecification; "background-opacity"?: mapbox_gl.PropertyValueSpecification; "background-opacity-transition"?: mapbox_gl.TransitionSpecification; "background-emissive-strength"?: mapbox_gl.PropertyValueSpecification; "background-emissive-strength-transition"?: mapbox_gl.TransitionSpecification; } | { "sky-type"?: mapbox_gl.PropertyValueSpecification<"gradient" | "atmosphere">; "sky-atmosphere-sun"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "sky-atmosphere-sun-intensity"?: number; "sky-gradient-center"?: mapbox_gl.PropertyValueSpecification<[number, number]>; "sky-gradient-radius"?: mapbox_gl.PropertyValueSpecification; "sky-gradient"?: mapbox_gl.ExpressionSpecification; "sky-gradient-use-theme"?: mapbox_gl.PropertyValueSpecification; "sky-atmosphere-halo-color"?: mapbox_gl.ColorSpecification; "sky-atmosphere-halo-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "sky-atmosphere-color"?: mapbox_gl.ColorSpecification; "sky-atmosphere-color-use-theme"?: mapbox_gl.PropertyValueSpecification; "sky-opacity"?: mapbox_gl.PropertyValueSpecification; "sky-opacity-transition"?: mapbox_gl.TransitionSpecification; } | undefined>; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type DbxMapboxInjectionKey = string; interface DbxMapboxInjectionConfig { /** * Unique key that identifies this config specifically. * * Keys should all be unique. The system does not expect duplicate keys. Modifications to injectionConfig should occur through the observable value. */ readonly key: DbxMapboxInjectionKey; /** * Arbitrary injection type. Is used for filtering on configurations. */ readonly type?: string; /** * Injection configuration. The injector is disallowed, as the parent injector must include the mapbox component. */ readonly injectionConfig: ObservableOrValueGetter; } interface DbxMapboxMapInjectionStoreState { /** * Current map of injection keys and configurations. */ readonly map: Map; } /** * Store used for storing injectable content into the map. */ declare class DbxMapboxInjectionStore extends ComponentStore { constructor(); readonly map$: Observable>; readonly allInjectionConfigs$: Observable; readonly addInjectionConfig: (observableOrValue: DbxMapboxInjectionConfig | Observable) => rxjs.Subscription; readonly removeInjectionConfigWithKey: (observableOrValue: string | Observable) => rxjs.Subscription; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } /** * Returns an updated store state with the given injection config added or replaced in the map, keyed by its unique key. * * @param state - The current mapbox injection store state. * @param config - The injection configuration to add or update. * @returns The updated store state containing the new or replaced config. */ declare function updateDbxMapboxMapInjectionStoreStateWithInjectionConfig(state: DbxMapboxMapInjectionStoreState, config: DbxMapboxInjectionConfig): { map: Map; }; /** * Returns an updated store state with the injection config for the given key removed. If the key does not exist, returns the state unchanged. * * @param state - The current mapbox injection store state. * @param key - The injection key to remove from the map. * @returns The updated store state with the key removed, or the original state if the key was not present. */ declare function updateDbxMapboxMapInjectionStoreStateWithRemovedKey(state: DbxMapboxMapInjectionStoreState, key: DbxMapboxInjectionKey): DbxMapboxMapInjectionStoreState; /** * Injects the components configured in the DbxMapboxInjectionStore into the view. */ declare class DbxMapboxInjectionComponent { readonly dbxMapboxMapKeyInjectionStore: DbxMapboxInjectionStore; readonly entriesSignal: _angular_core.Signal<_dereekb_dbx_web_mapbox.DbxMapboxInjectionConfig[] | undefined>; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * Token used by provideMapboxInjectionStoreIfDoesNotExist() to prevent injecting a parent DbxMapboxInjectionStore into the child view. */ declare class DbxMapboxInjectionStoreProviderBlock { readonly dbxMapboxInjectionStore: DbxMapboxInjectionStore; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class DbxMapboxInjectionStoreInjectionBlockDirective { static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } /** * Creates a Provider that initializes a new DbxMapboxInjectionStore if a parent does not exist. * * If a DbxMapboxInjectionStoreInjectionBlock is available in the context, and references the same dbxMapboxInjectionStore that is attempting to be injected, a new DbxMapboxInjectionStore is created. * * @returns */ declare function provideMapboxInjectionStoreIfParentIsUnavailable(): Provider; declare class DbxMapboxConfig { readonly defaultStyle?: MapOptions['style']; readonly defaultZoom?: MapboxZoomLevel; readonly defaultCenter?: LatLngPointInput; readonly defaultStoreRefreshPeriod?: number; /** * Width to use for the mapbox layout drawer (mat-sidenav). * * Overrides the `--mat-sidenav-container-width` CSS token on the layout component. * Defaults to 'auto' so the drawer width is determined by its content rather than * the M3 default of 360px. */ readonly drawerWidth?: string; /** * Long press that opens the map's right-click menu, for users that cannot right-click (touch screens). * * On by default with the default duration and tolerance. Set to false to turn it off. */ readonly longPress?: DbxMapboxLongPressConfigInput; } declare const DEFAULT_MAPBOX_STYLE: KnownMapboxStyle; declare const DEFAULT_MAPBOX_CENTER: LatLngPointInput; declare const DEFAULT_MAPBOX_ZOOM: MapboxZoomLevel; declare const DEFAULT_MAPBOX_LAYOUT_DRAWER_WIDTH = "auto"; declare const DEFAULT_MAPBOX_MAP_STORE_TIMER_REFRESH_PERIOD: Milliseconds; declare class DbxMapboxService { private readonly _config; get defaultStyle(): string | mapbox_gl.StyleSpecification; get defaultZoom(): MapboxZoomLevel; get defaultCenter(): LatLngPointInput; get drawerWidth(): string; /** * The app-wide long press config, or undefined when the long press is off. * * @returns The resolved config. */ get longPressConfig(): Maybe; get mapboxMapStoreTimerRefreshPeriod(): number; initializationOptions(): Partial; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } type DbxMapboxLayoutSide = 'left' | 'right'; type DbxMapboxLayoutMode = 'side' | 'push'; /** * Responsive component meant to split a left and right column. * * The left column is smaller than the right column, which contains the primary content. * * Requires a TwoColumnsContextStore to be provided. */ declare class DbxMapboxLayoutComponent implements OnInit { readonly dbxMapboxService: DbxMapboxService; readonly dbxMapboxMapStore: DbxMapboxMapStore; private readonly _viewResized; private readonly _refreshContentMargins; readonly drawerOpenedChange: _angular_core.OutputEmitterRef; readonly drawerContainer: Signal; readonly drawerContainerElement: Signal>; readonly drawerContent: Signal>; readonly side: _angular_core.InputSignalWithTransform>; readonly mode: _angular_core.InputSignalWithTransform>; /** * Forces the drawer to assume the drawer has content if true, or assume it has no content if false. */ readonly forceHasDrawerContent: _angular_core.InputSignal>; readonly drawerButtonColor: _angular_core.InputSignalWithTransform>; readonly openDrawer: _angular_core.InputSignal>; readonly isDrawerOpenSignal: _angular_core.WritableSignal>; protected readonly _openDrawerEffect: _angular_core.EffectRef; readonly storeHasDrawerContent: Signal; readonly drawerHasContentSignal: Signal; readonly refreshContentMargins$: Subject; readonly isOpenAndHasContentSignal: Signal>; readonly viewResized$: Observable; readonly side$: Observable; readonly mode$: Observable; readonly drawerHasContent$: Observable; readonly isOpenAndHasContent$: Observable>; readonly positionSignal: Signal<'start' | 'end'>; readonly drawerClassesSignal: Signal; readonly buttonIconSignal: Signal; private readonly _reszieSyncSub; private readonly _toggleSyncSub; ngOnInit(): void; viewResized(event: ResizedEvent): void; drawerOpened(opened: boolean): void; toggleDrawer(open?: Maybe): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * Directive that synchronizes a map's virtual size with the size of the element. */ declare class DbxMapboxLayoutVirtualResizeSyncComponent { readonly dbxMapboxLayoutComponent: DbxMapboxLayoutComponent; readonly resizedVector$: rxjs.Observable<_dereekb_util.Maybe>>; constructor(); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } /** * Directive that configures a MapComponent with content from DbxMapboxService. Connects a host MapService to a parent DbxMapboxMapStore if available. */ declare class DbxMapboxMapDirective { readonly mapService: MapService; readonly mapboxMap: MapComponent; readonly dbxMapboxService: DbxMapboxService; readonly dbxMapboxMapStore: DbxMapboxMapStore | null; constructor(); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } /** * Content drawer that connects with DbxMapboxMapStore to show the content. */ declare class DbxMapboxLayoutDrawerComponent { readonly dbxMapboxMapStore: DbxMapboxMapStore; readonly drawerConfigSignal: _angular_core.Signal<_dereekb_util.Maybe<_dereekb_dbx_core.DbxInjectionComponentConfig>>; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * Directive that connects a host MatMenuTrigger to a DbxMapboxMapStore and opens the menu on a right-click, or a long press, on the map. * * The map dissapears if the mouse scrolls anywhere else on the map. */ declare class DbxMapboxMenuComponent { readonly dbxMapboxMapStore: DbxMapboxMapStore; readonly matMenuTrigger: MatMenuTrigger; readonly active: _angular_core.InputSignalWithTransform>; readonly posSignal: _angular_core.WritableSignal<{ x: string; y: string; }>; readonly active$: rxjs.Observable; private readonly _preventRightClick; constructor(); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * DbxMapboxMarkerSize. Numbers are converted to pixels. */ type DbxMapboxMarkerSize = 'small' | 'medium' | 'large' | 'tall' | Pixels; /** * Presentation style. * * - normal: Text under dot with optional icon within dot * - chip: "dbx-chip"-like presentation */ type DbxMapboxMarkerPresentation = 'normal' | 'chip' | 'chip-small'; interface DbxMapboxMarkerDisplayConfig { /** * Presentation style. Defaults to "normal" */ readonly presentation?: DbxMapboxMarkerPresentation; /** * Additional classes to add to the marker. */ readonly markerClasses?: Maybe; /** * Marker icon to display. */ readonly icon?: Maybe; /** * Marker label to display. */ readonly label?: Maybe; /** * Image URL or Factory that returns an image URL. */ readonly image?: Maybe>; /** * Size of the marker. */ readonly size?: Maybe; /** * ClickableAnchor for the marker. */ readonly anchor?: Maybe; /** * Additional icon content styling. Style is not applied to the entire marker. Use markerClasses instead. */ readonly style?: Maybe; } type DbxMapboxMarker = UniqueModel & LatLngInputRef & DbxMapboxMarkerDisplayConfig; /** * MapFunction that converts the input data to a DbxMapboxMarker. */ type DbxMapboxMarkerFactory = (value: T, index: number) => DbxMapboxMarker; /** * Creates the styling for rendering a dot. * * @param background * @param color * @returns */ declare function dbxMapboxColoredDotStyle(background: string, color?: string): { background: string; padding: string; color: string | undefined; 'border-radius': string; }; declare class DbxMapboxMarkerComponent implements OnDestroy { private readonly _dbxMapboxChangeService; private static _latLngPoint; readonly marker: _angular_core.InputSignal>; readonly latLngSignal: _angular_core.Signal<_dereekb_util.LatLngPoint | undefined>; readonly presentationSignal: _angular_core.Signal<_dereekb_dbx_web_mapbox.DbxMapboxMarkerPresentation>; readonly styleSignal: _angular_core.Signal>; readonly presentationCssClassSignal: _angular_core.Signal; ngOnDestroy(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * Component used to render a set of DbxMapboxMarker values from the input data and marker factory. */ declare class DbxMapboxMarkersComponent { readonly data: _angular_core.InputSignal>; readonly markerFactory: _angular_core.InputSignal>>; readonly markersSignal: _angular_core.Signal; trackMarkerById(index: number, marker: DbxMapboxMarker): string; static ɵfac: _angular_core.ɵɵFactoryDeclaration, never>; static ɵcmp: _angular_core.ɵɵComponentDeclaration, "dbx-mapbox-markers", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "markerFactory": { "alias": "markerFactory"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>; } /** * Screen-space box, in the same shape as a DOMRect. */ interface DbxMapboxScreenRect { readonly left: Pixels; readonly top: Pixels; readonly right: Pixels; readonly bottom: Pixels; } /** * Offset of a popup from its anchor point. Same shape as the mapbox-gl Popup offset option. * * Use a per-anchor record when the popup's tail should keep a different distance from the marker depending on which side of the marker the popup opens. */ type DbxMapboxPopupOffset = Pixels | PointLike | Record; /** * Max width of a popup. Same shape as the mapbox-gl Popup maxWidth option. */ type DbxMapboxPopupMaxWidth = PixelsString | 'none'; /** * Input for mapboxPopupAnchorOffset(). */ interface MapboxPopupAnchorOffsetConfig { /** * Horizontal distance between the popup's tail and the anchor point, used when the popup opens beside the marker. */ readonly x: Pixels; /** * Vertical distance between the popup's tail and the anchor point, used when the popup opens above or below the marker. */ readonly y: Pixels; } /** * Creates the offset for every anchor mapbox-gl may pick. * * When no fixed anchor is set, mapbox-gl places the popup on whichever side of the anchor point fits in the map, so each side needs its own offset. * * @param config - Distances to keep from the anchor point. * @returns The offset for each anchor. */ declare function mapboxPopupAnchorOffset(config: MapboxPopupAnchorOffsetConfig): Record; /** * Default popup offset. Fits a chip or small marker, which is wider than it is tall. */ declare const DEFAULT_DBX_MAPBOX_POPUP_OFFSET: Record; /** * Default space kept between a popup and the edge of the visible map when the map pans to fit the popup. */ declare const DEFAULT_DBX_MAPBOX_POPUP_VIEW_PADDING: Pixels; /** * Returns the overlap of two boxes, e.g. the map's box clipped to the browser window. * * @param a - The first box. * @param b - The second box. * @returns The overlapping box. */ declare function mapboxScreenRectIntersection(a: DbxMapboxScreenRect, b: DbxMapboxScreenRect): DbxMapboxScreenRect; /** * Returns the part of the element the user can actually see: its box clipped by the browser window and by every ancestor that hides its overflow (a rounded map container, a drawer, the page). * * @param element - The element to measure, e.g. the map. * @returns The visible box, in screen space. */ declare function mapboxVisibleElementScreenRect(element: Element): DbxMapboxScreenRect; /** * Input for mapboxPopupPanIntoViewOffset(). */ interface MapboxPopupPanIntoViewOffsetInput { /** * Where the popup currently sits on screen. */ readonly popup: DbxMapboxScreenRect; /** * The part of the map the user can actually see. */ readonly view: DbxMapboxScreenRect; /** * Space to keep between the popup and the edge of the view. */ readonly padding: Pixels; } /** * Pixel offset to pass to the map's panBy() so the popup ends up fully inside the view. * * A positive x/y pans the camera right/down, which moves the popup left/up. When the popup is larger than the view on an axis, its top/left edge is kept visible. * * @param input - The popup box, the visible box, and the padding to keep. * @returns The [x, y] pan offset. [0, 0] when the popup already fits. */ declare function mapboxPopupPanIntoViewOffset(input: MapboxPopupPanIntoViewOffsetInput): [Pixels, Pixels]; /** * CSS class added to every popup rendered by DbxMapboxPopupComponent. */ declare const DBX_MAPBOX_POPUP_CSS_CLASS = "dbx-mapbox-popup"; /** * Display configuration for a DbxMapboxPopupComponent. */ interface DbxMapboxPopupComponentConfig { /** * Offset from the anchor point. Defaults to DEFAULT_DBX_MAPBOX_POPUP_OFFSET. */ readonly offset?: Maybe; /** * Fixed side of the anchor point to open on. When unset mapbox-gl picks the side that fits in the map. */ readonly anchor?: Maybe; /** * Additional CSS classes to add to the popup element. */ readonly popupClass?: Maybe; /** * Max width of the popup. Defaults to 'none', so the width comes from the content and the dbx-mapbox-popup styles. */ readonly maxWidth?: Maybe; /** * Whether to pan the map so the whole popup is visible each time it opens or moves. Defaults to true. */ readonly autoPanIntoView?: Maybe; /** * Space to keep between the popup and the edge of the visible map when panning. Defaults to DEFAULT_DBX_MAPBOX_POPUP_VIEW_PADDING. */ readonly panIntoViewPadding?: Maybe; } /** * Popup anchored to a point on the map. Renders the projected content in a mapbox-gl popup. * * The popup adds no surface of its own: the content provides it, typically a mat-card. The popup's tail takes the mat-card surface color. It has no close button and does not close when the map is clicked, so the owner decides when it closes; a dbx-dialog-content-close placed in the content floats in its top-right corner. * * When it opens, moves to another point, or its content changes size, the map pans so the whole popup is visible, measured against the part of the map the user can actually see. * * Must be placed within a mgl-map, e.g. through the DbxMapboxInjectionStore. Use dbxMapboxItemPopupController() to open a popup for a clicked marker. * * @dbxWebComponent * @dbxWebSlug mapbox-popup * @dbxWebCategory overlay * @dbxWebRelated popover, dialog-content * @dbxWebMinimalExample ```html * Content * ``` * * @example * ```html * * * * * * {{ place.name }} * * {{ place.description }} * * * * ``` */ declare class DbxMapboxPopupComponent { private static readonly _latLngPoint; private readonly _mapService; private readonly _injector; /** * Point the popup is anchored to. */ readonly latLng: _angular_core.InputSignal; readonly config: _angular_core.InputSignal>; readonly offset: _angular_core.InputSignal>; readonly anchor: _angular_core.InputSignal>; readonly popupClass: _angular_core.InputSignal>; readonly maxWidth: _angular_core.InputSignal>; readonly autoPanIntoView: _angular_core.InputSignal>; readonly panIntoViewPadding: _angular_core.InputSignal>; /** * Emitted when mapbox-gl closes the popup. */ readonly popupClose: _angular_core.OutputEmitterRef; readonly contentElement: _angular_core.Signal>; readonly lngLatSignal: _angular_core.Signal; readonly offsetSignal: _angular_core.Signal>; readonly anchorSignal: _angular_core.Signal<"center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | undefined>; readonly maxWidthSignal: _angular_core.Signal; readonly autoPanIntoViewSignal: _angular_core.Signal; readonly panIntoViewPaddingSignal: _angular_core.Signal; readonly classNameSignal: _angular_core.Signal; constructor(); /** * Re-checks the popup's position when its content changes size, e.g. when an image or async content finishes loading. * * @param event - The resize of the popup's content. */ onContentResized(event: ResizedEvent): void; /** * Pans the map so the whole popup is visible. * * mapbox-gl already picks the side of the anchor point with the most room, but it only knows the size of the map element. The part of the map the user sees can be smaller: clipped by its container, the window, or a drawer. * * Runs automatically when the popup opens, moves, or its content changes size. */ panIntoView(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * Token used by provideMapboxStoreIfDoesNotExist() to prevent injecting a parent DbxMapboxMapStore into the child view. */ declare class DbxMapboxMapStoreProviderBlock { readonly dbxMapboxMapStore: DbxMapboxMapStore; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class DbxMapboxMapStoreInjectionBlockDirective { static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } /** * Creates a Provider that initializes a new DbxMapboxMapStore if a parent does not exist. * * If a DbxMapboxMapStoreInjectionBlock is available in the context, and references the same dbxMapboxMapStore that is attempting to be injected, a new DbxMapboxMapStore is created. * * @returns */ declare function provideMapboxStoreIfParentIsUnavailable(): Provider; declare class DbxMapboxModule { static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵmod: _angular_core.ɵɵNgModuleDeclaration; static ɵinj: _angular_core.ɵɵInjectorDeclaration; } /** * Relative url the mapbox-gl CSP web worker asset is expected to be served from. * * The asset itself is copied out of `node_modules/mapbox-gl/dist/mapbox-gl-csp-worker.js` * by the consuming app's build configuration, which keeps it in version lockstep with the * `mapbox-gl` the app actually bundles. */ declare const DEFAULT_DBX_MAPBOX_WORKER_URL = "assets/mapbox-gl/mapbox-gl-csp-worker.js"; /** * Configuration for {@link configureDbxMapboxWorker}. */ interface DbxMapboxWorkerConfig { /** * Whether or not to load mapbox-gl's web worker from a self-hosted asset instead of the * default blob url. * * True by default. Set to false only to restore mapbox-gl's stock blob worker, which is * broken in Angular/esbuild apps on mapbox-gl 3.26.0 and up. */ readonly enabled?: Maybe; /** * Url the mapbox-gl CSP web worker asset is served from. * * Defaults to {@link DEFAULT_DBX_MAPBOX_WORKER_URL}. */ readonly workerUrl?: Maybe; } /** * Result of {@link configureDbxMapboxWorker}. */ interface DbxMapboxWorkerConfigurationResult { /** * Whether or not the self-hosted worker was configured on mapbox-gl. */ readonly configured: boolean; /** * Url that was configured, if any. */ readonly workerUrl: Maybe; /** * Whether or not the configured worker asset could be retrieved. * * Null when no check was performed. */ readonly available: Maybe; } /** * Checks whether the mapbox-gl web worker asset is actually served from the given url. * * @param workerUrl - Url the worker asset is expected at. * @returns True when the asset responds successfully. */ declare function isDbxMapboxWorkerAssetAvailable(workerUrl: string): Promise; /** * Configures mapbox-gl to load its web worker from a self-hosted copy of mapbox's prebuilt * CSP worker rather than from the blob url it generates itself. * * mapbox-gl's default worker is built by stringifying two of its own functions into a blob. * Only those function bodies are serialized, so any helper the bundler hoists to module * scope is missing at runtime. `@angular/build` unconditionally disables esbuild's * `object-rest-spread` support, which rewrites every object spread in mapbox-gl 3.26.0+ into * exactly such a hoisted helper, and the worker then dies with a `ReferenceError` while * loading tiles. Pointing `workerUrl` at a real file — mapbox's own documented CSP escape * hatch — sidesteps the bug entirely, at any mapbox-gl version. * * Must be applied before the first `Map` is constructed. * * @param inputConfig - Configuration. Optional. * @returns The applied configuration. */ declare function configureDbxMapboxWorker(inputConfig?: Maybe): Promise; /** * Configuration for provideDbxMapbox(). */ interface ProvideDbxMapboxConfig { readonly dbxMapboxConfig: DbxMapboxConfig; readonly ngxMapboxGLModuleConfig: Parameters[0]; /** * Configuration for the self-hosted mapbox-gl web worker. * * Enabled by default. See {@link configureDbxMapboxWorker} for why it is needed and * which build asset the app must copy. */ readonly worker?: Maybe; } /** * Creates EnvironmentProviders for providing DbxMapboxConfig and configuring the NgxMapboxGLModule. * * Also registers an app initializer that points mapbox-gl at the self-hosted CSP web worker * asset before any map is created. * * @param config - Configuration. * @returns EnvironmentProviders. */ declare function provideDbxMapbox(config: ProvideDbxMapboxConfig): EnvironmentProviders; /** * Default DbxMapboxInjectionStore key used by dbxMapboxItemPopupController(). */ declare const DEFAULT_DBX_MAPBOX_ITEM_POPUP_KEY: DbxMapboxInjectionKey; /** * Default selector for map click targets that keep the item popup open. * * A click on a marker belongs to the marker (which typically moves the popup to its own item), and a click inside a popup belongs to the popup. */ declare const DEFAULT_DBX_MAPBOX_ITEM_POPUP_KEEP_OPEN_CLICK_SELECTOR = ".mapboxgl-marker, .mapboxgl-popup"; /** * Returns where on the map the popup for the input item is anchored. */ type DbxMapboxItemPopupLatLngFunction = (item: T) => LatLngPointInput; /** * Context provided to the content component of an item popup. * * Inject it in the content component to read the item and to close the popup. */ declare abstract class DbxMapboxItemPopupContext { /** * The item the popup is showing. Changes when the popup moves to another item. */ abstract readonly item: Signal; /** * Closes the popup. */ abstract close(): void; /** * Pans the map so the whole popup is visible. Call it after the content changes size, e.g. after it finishes loading. */ abstract panIntoView(): void; } /** * dbxMapboxItemPopupController() configuration. */ interface DbxMapboxItemPopupControllerConfig { /** * DbxMapboxInjectionStore key for the popup. Only one popup per key is open at a time. * * Defaults to DEFAULT_DBX_MAPBOX_ITEM_POPUP_KEY. */ readonly key?: Maybe; /** * Returns where on the map the popup for an item is anchored. */ readonly latLng: DbxMapboxItemPopupLatLngFunction; /** * Component rendered inside the popup. It can inject DbxMapboxItemPopupContext to read the item. */ readonly content: DbxInjectionComponentConfigWithoutInjector; /** * Display configuration for the popup. */ readonly popup?: Maybe; /** * Whether to close the popup when the map is clicked away from any marker or popup. * * Requires a DbxMapboxMapStore. Defaults to true. */ readonly closeOnMapClick?: Maybe; /** * Selector for map click targets that keep the popup open. * * Defaults to DEFAULT_DBX_MAPBOX_ITEM_POPUP_KEEP_OPEN_CLICK_SELECTOR. */ readonly keepOpenClickSelector?: Maybe; } /** * Opens a single popup for one item at a time, e.g. the item whose marker was clicked. */ interface DbxMapboxItemPopupController extends Destroyable { /** * DbxMapboxInjectionStore key the popup is added with. */ readonly key: DbxMapboxInjectionKey; /** * The item the open popup is showing, if a popup is open. */ readonly item: Signal>; /** * Whether the popup is open. */ readonly isOpen: Signal; /** * Opens the popup for the input item. When the popup is already open it moves to the input item right away, so the user can click from marker to marker. * * @param item - The item to show. */ open(item: T): void; /** * Closes the popup, if open. */ close(): void; } /** * Data passed to DbxMapboxItemPopupComponent through the DbxMapboxInjectionStore. Created by dbxMapboxItemPopupController(). */ interface DbxMapboxItemPopupComponentData { readonly item: Signal; readonly latLng: DbxMapboxItemPopupLatLngFunction; readonly content: DbxInjectionComponentConfigWithoutInjector; readonly popup?: Maybe; /** * Closes this popup. Does nothing when the controller has since closed it and opened a new one. */ readonly close: () => void; } /** * Popup for a single item, added to the map by dbxMapboxItemPopupController(). * * Renders the controller's content component inside a DbxMapboxPopupComponent anchored to the item, and provides DbxMapboxItemPopupContext to that content. */ declare class DbxMapboxItemPopupComponent extends DbxMapboxItemPopupContext { private readonly _data; readonly popupComponent: _angular_core.Signal; readonly item: _angular_core.Signal; readonly content: _dereekb_dbx_core.DbxInjectionComponentConfigWithoutInjector; readonly popupConfig: _dereekb_util.Maybe<_dereekb_dbx_web_mapbox.DbxMapboxPopupComponentConfig>; readonly latLngSignal: _angular_core.Signal<_dereekb_util.LatLngPointInput>; close(): void; panIntoView(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration, never>; static ɵcmp: _angular_core.ɵɵComponentDeclaration, "dbx-mapbox-item-popup", never, {}, {}, never, never, true, never>; } /** * Creates a DbxMapboxItemPopupController that shows one item at a time in a popup on the map, e.g. the item whose marker was clicked. * * The popup is added through the DbxMapboxInjectionStore, so the map must render a dbx-mapbox-injection. Opening another item while the popup is open moves the same popup to that item instead of closing and reopening it. By default the popup closes when the map is clicked away from any marker or popup. * * Must be run within an Angular injection context. The popup is closed when the context is destroyed. * * @param config - Which content to show and where to anchor it. * @returns The controller. * * @example * ```ts * readonly placePopup = dbxMapboxItemPopupController({ * latLng: (place) => place.latLng, * content: { componentClass: PlacePopupContentComponent } * }); * * readonly markerFactory: DbxMapboxMarkerFactory = (place) => ({ * latLng: place.latLng, * label: place.name, * anchor: { onClick: () => this.placePopup.open(place) } * }); * ``` */ declare function dbxMapboxItemPopupController(config: DbxMapboxItemPopupControllerConfig): DbxMapboxItemPopupController; /** * Default style used by mapboxStaticImageUrl(). */ declare const DEFAULT_MAPBOX_STATIC_IMAGE_STYLE: KnownMapboxStyle; /** * Input for mapboxStaticImageUrl(). */ interface MapboxStaticImageUrlConfig { /** * Center of the image. */ readonly latLng: LatLngPointInput; /** * Zoom level of the image. */ readonly zoom: MapboxZoomLevel; /** * Image width. The Static Images API allows up to 1280. */ readonly width: Pixels; /** * Image height. The Static Images API allows up to 1280. */ readonly height: Pixels; /** * Mapbox access token used to request the image. */ readonly accessToken: string; /** * Style to render, either as a style URL (mapbox://styles/username/style_id) or as "username/style_id". * * Defaults to DEFAULT_MAPBOX_STATIC_IMAGE_STYLE. */ readonly style?: KnownMapboxStyle | string; readonly bearing?: MapboxBearing; readonly pitch?: MapboxPitch; /** * Whether to request the image at double resolution for high density screens. * * Defaults to true. */ readonly retina?: boolean; /** * Whether to draw the Mapbox logo on the image. * * Defaults to false, for images shown next to a map that already displays it. */ readonly logo?: boolean; /** * Whether to draw the attribution on the image. * * Defaults to false, for images shown next to a map that already displays it. */ readonly attribution?: boolean; } /** * Creates a Mapbox Static Images API URL for an image of the map centered on a point. * * Useful as a placeholder picture of a place, e.g. the hero image of a map popup. * * @param config - What to render and how. * @returns The image URL. * @see https://docs.mapbox.com/api/maps/static-images/ */ declare function mapboxStaticImageUrl(config: MapboxStaticImageUrlConfig): WebsiteUrlWithPrefix; /** * Convenience type used in .environment.ts files for building configuration. */ interface DbxMapboxEnvironmentOptions extends DbxMapboxConfig { readonly token: string; } export { DBX_MAPBOX_CIRCLE_LABEL_LAYOUT, DBX_MAPBOX_CIRCLE_METERS_PER_RADIUS_UNIT, DBX_MAPBOX_CIRCLE_RING_STEPS, DBX_MAPBOX_EARTH_RADIUS_METERS, DBX_MAPBOX_LONG_PRESS_EVENT_TYPE, DBX_MAPBOX_LONG_PRESS_TOUCH_MOUSE_GUARD_TIME, DBX_MAPBOX_POPUP_CSS_CLASS, DEFAULT_DBX_MAPBOX_CIRCLE_COLOR, DEFAULT_DBX_MAPBOX_CIRCLE_FILL_OPACITY, DEFAULT_DBX_MAPBOX_CIRCLE_LABEL_OPACITY, DEFAULT_DBX_MAPBOX_CIRCLE_LINE_OPACITY, DEFAULT_DBX_MAPBOX_ITEM_POPUP_KEEP_OPEN_CLICK_SELECTOR, DEFAULT_DBX_MAPBOX_ITEM_POPUP_KEY, DEFAULT_DBX_MAPBOX_POPUP_OFFSET, DEFAULT_DBX_MAPBOX_POPUP_VIEW_PADDING, DEFAULT_DBX_MAPBOX_WORKER_URL, DEFAULT_MAPBOX_CENTER, DEFAULT_MAPBOX_LAYOUT_DRAWER_WIDTH, DEFAULT_MAPBOX_LONG_PRESS_DURATION, DEFAULT_MAPBOX_LONG_PRESS_TOLERANCE, DEFAULT_MAPBOX_MAP_STORE_TIMER_REFRESH_PERIOD, DEFAULT_MAPBOX_STATIC_IMAGE_STYLE, DEFAULT_MAPBOX_STYLE, DEFAULT_MAPBOX_ZOOM, DbxMapboxChangeService, DbxMapboxCircleComponent, DbxMapboxConfig, DbxMapboxInjectionComponent, DbxMapboxInjectionStore, DbxMapboxInjectionStoreInjectionBlockDirective, DbxMapboxInjectionStoreProviderBlock, DbxMapboxItemPopupComponent, DbxMapboxItemPopupContext, DbxMapboxLayoutComponent, DbxMapboxLayoutDrawerComponent, DbxMapboxLayoutVirtualResizeSyncComponent, DbxMapboxMapDirective, DbxMapboxMapStore, DbxMapboxMapStoreInjectionBlockDirective, DbxMapboxMapStoreProviderBlock, DbxMapboxMarkerComponent, DbxMapboxMarkersComponent, DbxMapboxMenuComponent, DbxMapboxModule, DbxMapboxPopupComponent, DbxMapboxService, KNOWN_MAPBOX_STYLES, MAPBOX_MAX_ZOOM_LEVEL, MAPBOX_MIN_ZOOM_LEVEL, configureDbxMapboxWorker, dbxMapboxCircleFeature, dbxMapboxCircleRadiusInMeters, dbxMapboxCircleRing, dbxMapboxColoredDotStyle, dbxMapboxItemPopupController, dbxMapboxLongPressTracker, dbxMapboxRightClickEventClientPosition, filterByMapboxViewportBound, isDbxMapboxLongPressEvent, isDbxMapboxWorkerAssetAvailable, isTouchSourcedMouseEvent, mapboxClientPointToMapPoint, mapboxMapPointToClientPoint, mapboxPopupAnchorOffset, mapboxPopupPanIntoViewOffset, mapboxScreenRectIntersection, mapboxStaticImageUrl, mapboxViewportBoundFunction, mapboxVisibleElementScreenRect, mapboxZoomLevel, provideDbxMapbox, provideMapboxInjectionStoreIfParentIsUnavailable, provideMapboxStoreIfParentIsUnavailable, resolveDbxMapboxLongPressConfig, suppressNextClickEvent, updateDbxMapboxMapInjectionStoreStateWithInjectionConfig, updateDbxMapboxMapInjectionStoreStateWithRemovedKey }; export type { DbxMapboxCircle, DbxMapboxCircleDisplayConfig, DbxMapboxCircleFeatureProperties, DbxMapboxCircleRadiusUnit, DbxMapboxClickEvent, DbxMapboxEnvironmentOptions, DbxMapboxInjectionConfig, DbxMapboxInjectionKey, DbxMapboxItemPopupComponentData, DbxMapboxItemPopupController, DbxMapboxItemPopupControllerConfig, DbxMapboxItemPopupLatLngFunction, DbxMapboxLayerLayout, DbxMapboxLayerPaint, DbxMapboxLayoutMode, DbxMapboxLayoutSide, DbxMapboxLongPressConfig, DbxMapboxLongPressConfigInput, DbxMapboxLongPressEvent, DbxMapboxLongPressSource, DbxMapboxLongPressTracker, DbxMapboxLongPressTrackerConfig, DbxMapboxLongPressTrackerResult, DbxMapboxLongPressTrackerStart, DbxMapboxLongPressTrackerState, DbxMapboxMapInjectionStoreState, DbxMapboxMarginCalculationSizing, DbxMapboxMarker, DbxMapboxMarkerDisplayConfig, DbxMapboxMarkerFactory, DbxMapboxMarkerPresentation, DbxMapboxMarkerSize, DbxMapboxPopupComponentConfig, DbxMapboxPopupMaxWidth, DbxMapboxPopupOffset, DbxMapboxResolvedLongPressConfig, DbxMapboxRightClickEvent, DbxMapboxScreenRect, DbxMapboxStoreBoundRefreshSettings, DbxMapboxStoreBoundRefreshType, DbxMapboxStoreState, DbxMapboxWorkerConfig, DbxMapboxWorkerConfigurationResult, FilterMapboxBoundConfig, FilterMapboxBoundReadItemValueFunction, KnownMapboxStyle, MapboxBearing, MapboxCanvasContainerLike, MapboxCanvasContainerPointInput, MapboxEaseTo, MapboxEaseToOptions, MapboxEaseToPositionOptions, MapboxEventData, MapboxFitBounds, MapboxFitBoundsOptions, MapboxFitPositions, MapboxFlyTo, MapboxFlyToOptions, MapboxFlyToPositionOptions, MapboxJumpTo, MapboxJumpToPositionOptions, MapboxMapLifecycleState, MapboxMapMoveState, MapboxMapRotateState, MapboxMapZoomState, MapboxPitch, MapboxPopupAnchorOffsetConfig, MapboxPopupPanIntoViewOffsetInput, MapboxResetNorth, MapboxResetNorthPitch, MapboxRotateTo, MapboxSetStyleOptions, MapboxSnapToNorth, MapboxStaticImageUrlConfig, MapboxStyleConfig, MapboxTileSize, MapboxViewportBoundFunction, MapboxViewportBoundFunctionConfig, MapboxViewportBoundFunctionInput, MapboxViewportBoundFunctionItem, MapboxViewportBoundFunctionItemValue, MapboxZoomLevel, MapboxZoomLevelRange, ProvideDbxMapboxConfig, ResolveDbxMapboxLongPressConfigInput, StringMapboxListenerPair, TypedMapboxListenerPair };