import Map from '@arcgis/core/Map'; import { MapWidget } from './MapWidget.js'; import { MapWidgetModel } from '../__internal__/ChgqPGgf.js'; import 'apprt-core/Mutable'; import '@arcgis/core/geometry/Extent'; import '@arcgis/core/geometry/Polygon'; import '@arcgis/core/layers/support/LOD'; import '@arcgis/core/Camera'; import '@arcgis/core/geometry/Point'; import '@arcgis/core/geometry/SpatialReference'; import '@arcgis/core/layers/Layer'; import '@arcgis/core/layers/support/Sublayer'; import '@arcgis/core/time/TimeExtent'; import '@arcgis/core/Viewpoint'; import '@arcgis/core/views/MapView'; import '@arcgis/core/views/SceneView'; import './VisibilityState.js'; import './Navigation.js'; import './BaseTypes.js'; /** * Registers map-related components as OSGi services. * * Use the service `map-widget.MapWidgetRegistration` to inject an instance of this interface. */ interface MapWidgetRegistration { /** * Register the new default map widget. * If one was previously registered, then it is unregistered. * * The following services are registered: * * * map-widget.MapWidgetModel * * the map widget model provided to interact with the main map * * map-widget.Map * * the @arcgis/core/Map part of the MapWidgetModel, provided if only the layer tree should change * * map-widget.MapWidget * * the map widget, do not use it directly * * @param params components to register `{ map, mapWidgetModel, mapWidget }` * * @example * ```ts * import { InjectedReference } from "apprt-core/InjectedReference"; * import { MapWidgetRegistration } from "map-widget/MapWidgetRegistration"; * import MapWidgetFactory from "map-widget/MapWidgetFactory"; * * class MyComponent { * private _mapregistration: InjectedReference; * private _mapfactory: InjectedReference; * * activate() { * const mapregistration = this._mapregistration!; * const mapfactory = this._mapfactory!; * const map = mapfactory.createMap({...}); * const model = mapfactory.createWidgetModel({map, ...}); * const widget = mapfactory.createWidget({model}); * mapregistration.register({ * map: map, * mapWidgetModel: model, * mapWidget: widget * }); * } * } * ``` */ register(params: { map?: Map; mapWidgetModel?: MapWidgetModel; mapWidget: MapWidget; }): void; /** * Unregister all services. * * @param keepInstances suppress the destruction of widgets. */ unregister(keepInstances: boolean): void; } export type { MapWidgetRegistration };