/**
 * The Permalink service for GMF, which uses the `ngeo.statemanager.Service` to
 * manage the GMF application state. Here's the list of states are are managed:
 *
 * - the map center and zoom level
 * - the current background layer selected
 * - whether to add a crosshair feature in the map or not
 * - the dimensions value
 *
 * For time layers the time range or time value is added
 *
 * It can also be used to add different types of things in the map,
 * such as features, external data sources, etc.
 *
 * This is made using parameters in the url, which can be static
 * (i.e. parameters that always have the same name) or dynamic
 * (i.e. parameters that have a static prefix but with a full name
 * being dynamic).
 *
 * Here's a complete list of possible parameters and what they do. But
 * first, a legend
 *
 * === Parameters [type] ===
 *
 * - `[paramameter_name]` (type)
 *     [parameter documentation]
 *
 *
 * === Parameters (static) ===
 *
 * A static parameter always have the same name.
 *
 * - `baselayer_ref` - "string"
 *     The name of the base layer that should be set visible as
 *     default in the map. If none is set, then the default one in the
 *     loaded theme is set instead.
 *
 * - `eds_n` (string), `eds_u` (string)
 *     These parameters stand for:
 *      - eds_n: "External Data Sources Names"
 *      - eds_u: "External Data Sources URLs"
 *     These parameters define external WMS/WMTS data sources to add
 *     to the map upon initialization. Both values are comma-separated
 *     lists, `eds_u` containing the urls to the services and `eds_n`
 *     the layer names (separated by `;`). Here's an example:
 *     &eds_n=a;b;c,d,e&eds_u=host1.com,host2.com,host3.com, which reads as:
 *      - host1.com - layers: a, b and c
 *      - host2.com - layers: d
 *      - host3.com - layers: e
 *     For these parameters to work properly, they must define the
 *     same number of elements, i.e. same number of names and urls.
 *
 * - `map_crosshair` (boolean)
 *     If this parameter set to `true`, then a crosshair marker will be
 *     added to the center of the map upon initialization. The marker
 *     will stay at this location.
 *
 * - `map_tooltip` (string)
 *     If set, then the text defined in this parameter will be added
 *     as a tooltip at center of the map upon initialization.
 *
 * - `map_x` (number), `map_y` (number)
 *     These two parameters define a coordinate the map view should be
 *     centered to upon initialization. The value must be in the map
 *     view projection.
 *
 * - `map_zoom` (number)
 *     Defines the zoom level the map view should be zoomed to upon
 *     initialization.
 *
 * - `rl_features` (string)
 *     This parameter defines vector features to add to the map upon
 *     initialization. In addition, if the application includes the
 *     draw tool, the features added can be modified. The draw tool
 *     can also be used to add new features, which are automatically
 *     added in the url.
 *
 * - `tree_groups` (string)
 *     Defines the layer groups that should be added to the layer tree
 *     upon application initialization as a comma-separated list. For
 *     example: Layers,Filters,Externals
 *
 * - `wfs_layer` (string)
 *     If set, this parameter defines the name of a layer that
 *     supports WFS to use to fetch features and add them to the map
 *     upon initialization. The dynamic parameter `wfs_[]` is
 *     required to identify the features to fetch.
 *
 * - `wfs_ngroups` (number)
 *     If set, then `wfs_layer` represents the name of a group and
 *     this property defines how many layers are in it. Requires
 *     `wfs_layer` to be set.
 *
 * - `wfs_show_features` (boolean)
 *     If set to `false` or `0`, then the features returned by the
 *     `wfs_layer` parameter will not be shown in the map.
 *
 *
 * === Parameters (dynamic) ===
 *
 * Dynamic parameters have variable names, which is always composed of:
 *  - a static prefix
 *  - a variable suffix
 *
 * The same dynamic parameter can be set multiple times, with
 * different suffix values as name.
 *
 * For example: `&wfs_a=&wfs_b=`.
 * - `wfs_` is the static prefix
 * - the name used as reference for this dynamic parameter is `wfs_[]`
 * - therefore, this example has 2 `wfs_[]` parameters set, with `a`
 *   and `b` being the variable suffix
 *
 *
 * - `dim_[]` (string)
 *     Variable suffix: the name of a dimension
 *     Value: *
 *     Defines the value of a specific dimension to set upon loading
 *     the application. For example: `&dim_time=2019-01-25T14:45:51.986Z`.
 *     WMS data sources that support the dimension set will be
 *     initialized with its value.
 *
 * - `tree_enable_[]` (boolean)
 *     Variable suffix: the name of a layer group
 *     Value: whether the group should be enabled or not in the layer tree
 *     For example: `&tree_enable_polygon=true&tree_enable_point=false`
 *     means that the group `polygon` will be enabled in the layer
 *     tree, but not `point`.
 *
 * - `tree_group_layers_[]` (string)
 *     Variable suffix: the name of a layer group
 *     Value: a comma-separated list of layers within the group that
 *     should be enabled upon initialization.
 *     For example: `&tree_group_layers_polygon=forest,lake` means
 *     that only the layers `forest` and `lake` within the group
 *     `polygon` would be enabled upon initialization.
 *
 * - `tree_opacity_[]` (number)
 *     Variable suffix: the name of a layer group
 *     Value: Number between 0 (transparent) and 1 (opaque)
 *     Defines the opacity of a layer group upon initialization.
 *
 * - `tree_time_[]` (date)
 *     Variable suffix: the name of a layer group or layer
 *     Value: a date or date interval with the resolution of the time
 *     of the layer or group
 *     Defines the time or time interval for a time layer or a group.
 *
 * - `wfs_[]` (string)
 *     Variable suffix: the name of an attribute
 *     Value: A comma-separated list of values for the attribute
 *     This parameter requires `wfs_layer` in order to work
 *     properly. If set, it defines the filters to build to fetch the
 *     features to add to the map. For example:
 *     `&wfs_layer=fuel&wfs_osm_id=1420918679,441134960` the layer
 *     `fuel` will be fetched features with the attribute `osm_id`
 *     equal to `1420918679` or `441134960`.
 *     If `wfs_ngroups` is set, then an index is added to after the
 *     prefix of the `wfs_[]` parameter, for example:
 *     `wfs_ngroups=2&wfs_0_[]=&wfs_1_[]=`
 *
 *
 * === More documentation ===
 *
 * To have the whole possibilities offer by the permalink, these services
 * should be instantiated: ngeoBackgroundLayerMgr, ngeoFeatureOverlayMgr,
 * ngeoFeatureHelper, gmfPermalinkOptions, gmfThemes, gmfObjectEditingManager,
 * gmfThemeManager, defaultTheme, gmfTreeManager, ngeoWfsPermalink,
 * ngeoAutoProjection and ngeoFeatures.
 *
 * Used functionalities:
 *
 *  - `default_theme`: Theme to use by default.
 *
 * @class
 * @param {angular.IQService} $q The Angular $q service.
 * @param {angular.ITimeoutService} $timeout Angular timeout service.
 * @param {angular.IScope} $rootScope Angular rootScope.
 * @param {angular.auto.IInjectorService} $injector Main injector.
 * @param {import('ngeo/misc/debounce').miscDebounce<function(): void>} ngeoDebounce ngeo Debounce factory.
 * @param {angular.gettext.gettextCatalog} gettextCatalog Gettext service.
 * @param {import('ngeo/misc/EventHelper').EventHelper} ngeoEventHelper Ngeo event helper service
 * @param {import('ngeo/statemanager/Service').StatemanagerService} ngeoStateManager The ngeo statemanager
 *    service.
 * @param {import('ngeo/statemanager/Location').StatemanagerLocation} ngeoLocation ngeo location service.
 * @param {import('gmf/datasource/LayerBeingSwipe').LayerBeingSwipe} gmfLayerBeingSwipe
 * @param {import('gmf/options').gmfPermalinkOptions} gmfPermalinkOptions The options.
 * @param {import('gmf/datasource/Manager').DatasourceManager} gmfDataSourcesManager The gmf datasourcemanager
 *    service.
 * @param {import('ngeo/misc/WMSTime').WMSTime} ngeoWMSTime The ngeo  wmstime service
 * @ngdoc service
 * @ngname gmfPermalink
 */
export function PermalinkService($q: angular.IQService, $timeout: angular.ITimeoutService, $rootScope: angular.IScope, $injector: angular.auto.IInjectorService, ngeoDebounce: import("ngeo/misc/debounce").miscDebounce<() => void>, gettextCatalog: angular.gettext.gettextCatalog, ngeoEventHelper: import("ngeo/misc/EventHelper").EventHelper, ngeoStateManager: import("ngeo/statemanager/Service").StatemanagerService, ngeoLocation: import("ngeo/statemanager/Location").StatemanagerLocation, gmfLayerBeingSwipe: import("gmf/datasource/LayerBeingSwipe").LayerBeingSwipe, gmfPermalinkOptions: import("gmf/options").gmfPermalinkOptions, gmfDataSourcesManager: import("gmf/datasource/Manager").DatasourceManager, ngeoWMSTime: import("ngeo/misc/WMSTime").WMSTime): void;
export class PermalinkService {
    /**
     * The Permalink service for GMF, which uses the `ngeo.statemanager.Service` to
     * manage the GMF application state. Here's the list of states are are managed:
     *
     * - the map center and zoom level
     * - the current background layer selected
     * - whether to add a crosshair feature in the map or not
     * - the dimensions value
     *
     * For time layers the time range or time value is added
     *
     * It can also be used to add different types of things in the map,
     * such as features, external data sources, etc.
     *
     * This is made using parameters in the url, which can be static
     * (i.e. parameters that always have the same name) or dynamic
     * (i.e. parameters that have a static prefix but with a full name
     * being dynamic).
     *
     * Here's a complete list of possible parameters and what they do. But
     * first, a legend
     *
     * === Parameters [type] ===
     *
     * - `[paramameter_name]` (type)
     *     [parameter documentation]
     *
     *
     * === Parameters (static) ===
     *
     * A static parameter always have the same name.
     *
     * - `baselayer_ref` - "string"
     *     The name of the base layer that should be set visible as
     *     default in the map. If none is set, then the default one in the
     *     loaded theme is set instead.
     *
     * - `eds_n` (string), `eds_u` (string)
     *     These parameters stand for:
     *      - eds_n: "External Data Sources Names"
     *      - eds_u: "External Data Sources URLs"
     *     These parameters define external WMS/WMTS data sources to add
     *     to the map upon initialization. Both values are comma-separated
     *     lists, `eds_u` containing the urls to the services and `eds_n`
     *     the layer names (separated by `;`). Here's an example:
     *     &eds_n=a;b;c,d,e&eds_u=host1.com,host2.com,host3.com, which reads as:
     *      - host1.com - layers: a, b and c
     *      - host2.com - layers: d
     *      - host3.com - layers: e
     *     For these parameters to work properly, they must define the
     *     same number of elements, i.e. same number of names and urls.
     *
     * - `map_crosshair` (boolean)
     *     If this parameter set to `true`, then a crosshair marker will be
     *     added to the center of the map upon initialization. The marker
     *     will stay at this location.
     *
     * - `map_tooltip` (string)
     *     If set, then the text defined in this parameter will be added
     *     as a tooltip at center of the map upon initialization.
     *
     * - `map_x` (number), `map_y` (number)
     *     These two parameters define a coordinate the map view should be
     *     centered to upon initialization. The value must be in the map
     *     view projection.
     *
     * - `map_zoom` (number)
     *     Defines the zoom level the map view should be zoomed to upon
     *     initialization.
     *
     * - `rl_features` (string)
     *     This parameter defines vector features to add to the map upon
     *     initialization. In addition, if the application includes the
     *     draw tool, the features added can be modified. The draw tool
     *     can also be used to add new features, which are automatically
     *     added in the url.
     *
     * - `tree_groups` (string)
     *     Defines the layer groups that should be added to the layer tree
     *     upon application initialization as a comma-separated list. For
     *     example: Layers,Filters,Externals
     *
     * - `wfs_layer` (string)
     *     If set, this parameter defines the name of a layer that
     *     supports WFS to use to fetch features and add them to the map
     *     upon initialization. The dynamic parameter `wfs_[]` is
     *     required to identify the features to fetch.
     *
     * - `wfs_ngroups` (number)
     *     If set, then `wfs_layer` represents the name of a group and
     *     this property defines how many layers are in it. Requires
     *     `wfs_layer` to be set.
     *
     * - `wfs_show_features` (boolean)
     *     If set to `false` or `0`, then the features returned by the
     *     `wfs_layer` parameter will not be shown in the map.
     *
     *
     * === Parameters (dynamic) ===
     *
     * Dynamic parameters have variable names, which is always composed of:
     *  - a static prefix
     *  - a variable suffix
     *
     * The same dynamic parameter can be set multiple times, with
     * different suffix values as name.
     *
     * For example: `&wfs_a=&wfs_b=`.
     * - `wfs_` is the static prefix
     * - the name used as reference for this dynamic parameter is `wfs_[]`
     * - therefore, this example has 2 `wfs_[]` parameters set, with `a`
     *   and `b` being the variable suffix
     *
     *
     * - `dim_[]` (string)
     *     Variable suffix: the name of a dimension
     *     Value: *
     *     Defines the value of a specific dimension to set upon loading
     *     the application. For example: `&dim_time=2019-01-25T14:45:51.986Z`.
     *     WMS data sources that support the dimension set will be
     *     initialized with its value.
     *
     * - `tree_enable_[]` (boolean)
     *     Variable suffix: the name of a layer group
     *     Value: whether the group should be enabled or not in the layer tree
     *     For example: `&tree_enable_polygon=true&tree_enable_point=false`
     *     means that the group `polygon` will be enabled in the layer
     *     tree, but not `point`.
     *
     * - `tree_group_layers_[]` (string)
     *     Variable suffix: the name of a layer group
     *     Value: a comma-separated list of layers within the group that
     *     should be enabled upon initialization.
     *     For example: `&tree_group_layers_polygon=forest,lake` means
     *     that only the layers `forest` and `lake` within the group
     *     `polygon` would be enabled upon initialization.
     *
     * - `tree_opacity_[]` (number)
     *     Variable suffix: the name of a layer group
     *     Value: Number between 0 (transparent) and 1 (opaque)
     *     Defines the opacity of a layer group upon initialization.
     *
     * - `tree_time_[]` (date)
     *     Variable suffix: the name of a layer group or layer
     *     Value: a date or date interval with the resolution of the time
     *     of the layer or group
     *     Defines the time or time interval for a time layer or a group.
     *
     * - `wfs_[]` (string)
     *     Variable suffix: the name of an attribute
     *     Value: A comma-separated list of values for the attribute
     *     This parameter requires `wfs_layer` in order to work
     *     properly. If set, it defines the filters to build to fetch the
     *     features to add to the map. For example:
     *     `&wfs_layer=fuel&wfs_osm_id=1420918679,441134960` the layer
     *     `fuel` will be fetched features with the attribute `osm_id`
     *     equal to `1420918679` or `441134960`.
     *     If `wfs_ngroups` is set, then an index is added to after the
     *     prefix of the `wfs_[]` parameter, for example:
     *     `wfs_ngroups=2&wfs_0_[]=&wfs_1_[]=`
     *
     *
     * === More documentation ===
     *
     * To have the whole possibilities offer by the permalink, these services
     * should be instantiated: ngeoBackgroundLayerMgr, ngeoFeatureOverlayMgr,
     * ngeoFeatureHelper, gmfPermalinkOptions, gmfThemes, gmfObjectEditingManager,
     * gmfThemeManager, defaultTheme, gmfTreeManager, ngeoWfsPermalink,
     * ngeoAutoProjection and ngeoFeatures.
     *
     * Used functionalities:
     *
     *  - `default_theme`: Theme to use by default.
     *
     * @class
     * @param {angular.IQService} $q The Angular $q service.
     * @param {angular.ITimeoutService} $timeout Angular timeout service.
     * @param {angular.IScope} $rootScope Angular rootScope.
     * @param {angular.auto.IInjectorService} $injector Main injector.
     * @param {import('ngeo/misc/debounce').miscDebounce<function(): void>} ngeoDebounce ngeo Debounce factory.
     * @param {angular.gettext.gettextCatalog} gettextCatalog Gettext service.
     * @param {import('ngeo/misc/EventHelper').EventHelper} ngeoEventHelper Ngeo event helper service
     * @param {import('ngeo/statemanager/Service').StatemanagerService} ngeoStateManager The ngeo statemanager
     *    service.
     * @param {import('ngeo/statemanager/Location').StatemanagerLocation} ngeoLocation ngeo location service.
     * @param {import('gmf/datasource/LayerBeingSwipe').LayerBeingSwipe} gmfLayerBeingSwipe
     * @param {import('gmf/options').gmfPermalinkOptions} gmfPermalinkOptions The options.
     * @param {import('gmf/datasource/Manager').DatasourceManager} gmfDataSourcesManager The gmf datasourcemanager
     *    service.
     * @param {import('ngeo/misc/WMSTime').WMSTime} ngeoWMSTime The ngeo  wmstime service
     * @ngdoc service
     * @ngname gmfPermalink
     */
    constructor($q: angular.IQService, $timeout: angular.ITimeoutService, $rootScope: angular.IScope, $injector: angular.auto.IInjectorService, ngeoDebounce: import("ngeo/misc/debounce").miscDebounce<() => void>, gettextCatalog: angular.gettext.gettextCatalog, ngeoEventHelper: import("ngeo/misc/EventHelper").EventHelper, ngeoStateManager: import("ngeo/statemanager/Service").StatemanagerService, ngeoLocation: import("ngeo/statemanager/Location").StatemanagerLocation, gmfLayerBeingSwipe: import("gmf/datasource/LayerBeingSwipe").LayerBeingSwipe, gmfPermalinkOptions: import("gmf/options").gmfPermalinkOptions, gmfDataSourcesManager: import("gmf/datasource/Manager").DatasourceManager, ngeoWMSTime: import("ngeo/misc/WMSTime").WMSTime);
    /**
     * @type {angular.IQService}
     */
    q_: angular.IQService;
    /**
     * @type {angular.IScope}
     */
    rootScope_: angular.IScope;
    /**
     * @type {angular.ITimeoutService}
     */
    $timeout_: angular.ITimeoutService;
    /**
     * The key for map view 'propertychange' event.
     *
     * @type {?import('ol/events').EventsKey}
     */
    mapViewPropertyChangeEventKey_: import("ol/events").EventsKey | null;
    /**
     * @type {import('ngeo/misc/debounce').miscDebounce<function(): void>}
     */
    ngeoDebounce_: import("ngeo/misc/debounce").miscDebounce<() => void>;
    /**
     * @type {import('ngeo/misc/EventHelper').EventHelper}
     */
    ngeoEventHelper_: import("ngeo/misc/EventHelper").EventHelper;
    /**
     * @type {import('ngeo/statemanager/Service').StatemanagerService}
     */
    ngeoStateManager_: import("ngeo/statemanager/Service").StatemanagerService;
    /**
     * @type {import('gmf/datasource/Manager').DatasourceManager}
     */
    gmfDataSourcesManager_: import("gmf/datasource/Manager").DatasourceManager;
    /**
     * @type {import('ngeo/misc/WMSTime').WMSTime}
     */
    ngeoWMSTime_: import("ngeo/misc/WMSTime").WMSTime;
    /**
     * @type {?import('ol/Collection').default<olFeature<import('ol/geom/Geometry').default>>}
     */
    ngeoFeatures_: import("ol/Collection").default<olFeature<import("ol/geom/Geometry").default>> | null;
    /**
     * @type {?import('ngeo/map/BackgroundLayerMgr').MapBackgroundLayerManager}
     */
    ngeoBackgroundLayerMgr_: import("ngeo/map/BackgroundLayerMgr").MapBackgroundLayerManager | null;
    /**
     * @type {import('gmf/datasource/LayerBeingSwipe').LayerBeingSwipe}
     */
    gmfLayerBeingSwipe_: import("gmf/datasource/LayerBeingSwipe").LayerBeingSwipe;
    /**
     * @type {?import('ngeo/map/FeatureOverlay').FeatureOverlay}
     */
    featureOverlay_: import("ngeo/map/FeatureOverlay").FeatureOverlay | null;
    /**
     * @type {?import('ngeo/misc/FeatureHelper').FeatureHelper}
     */
    featureHelper_: import("ngeo/misc/FeatureHelper").FeatureHelper | null;
    /**
     * @type {?import('ngeo/query/Querent').Querent}
     */
    ngeoQuerent_: import("ngeo/query/Querent").Querent | null;
    /**
     * @type {boolean}
     */
    crosshairEnabledByDefault_: boolean;
    /**
     * @type {number|undefined}
     */
    pointRecenterZoom_: number | undefined;
    /**
     * @type {?import('gmf/datasource/ExternalDataSourcesManager').ExternalDatSourcesManager}
     */
    gmfExternalDataSourcesManager_: import("gmf/datasource/ExternalDataSourcesManager").ExternalDatSourcesManager | null;
    /**
     * @type {?import('gmf/theme/Themes').ThemesService}
     */
    gmfThemes_: import("gmf/theme/Themes").ThemesService | null;
    /**
     * @type {?import('gmf/objectediting/Manager').ObjecteditingManagerService}
     */
    gmfObjectEditingManager_: import("gmf/objectediting/Manager").ObjecteditingManagerService | null;
    /**
     * @type {?import('gmf/theme/Manager').ThemeManagerService}
     */
    gmfThemeManager_: import("gmf/theme/Manager").ThemeManagerService | null;
    /**
     * @type {string|undefined}
     */
    defaultTheme_: string | undefined;
    /**
     * @type {?import('gmf/layertree/TreeManager').LayertreeTreeManager}
     */
    gmfTreeManager_: import("gmf/layertree/TreeManager").LayertreeTreeManager | null;
    /**
     * @type {import('ngeo/statemanager/Location').StatemanagerLocation}
     */
    ngeoLocation_: import("ngeo/statemanager/Location").StatemanagerLocation;
    /**
     * @type {?import('ngeo/statemanager/WfsPermalink').WfsPermalinkService}
     */
    ngeoWfsPermalink_: import("ngeo/statemanager/WfsPermalink").WfsPermalinkService | null;
    /**
     * @type {import('ngeo/store/user').User}
     */
    gmfUser: any;
    /**
     * @type {?import('ol/Map').default}
     */
    map_: import("ol/Map").default | null;
    /**
     * @type {?import('ngeo/misc/AutoProjection').AutoProjectionService}
     */
    ngeoAutoProjection_: import("ngeo/misc/AutoProjection").AutoProjectionService | null;
    /**
     * @type {import('ol/events').EventsKey[]}
     */
    listenerKeys_: import("ol/events").EventsKey[];
    /**
     * A list of projections that the coordinates in the permalink can be in.
     *
     * @type {?import('ol/proj/Projection').default[]}
     */
    sourceProjections_: import("ol/proj/Projection").default[] | null;
    /**
     * @type {?olFeature<import('ol/geom/Geometry').default>}
     */
    crosshairFeature_: olFeature<import("ol/geom/Geometry").default> | null;
    /**
     * @type {import('ol/style/Style').StyleLike}
     */
    crosshairStyle_: import("ol/style/Style").StyleLike;
    /**
     * @type {?import('ngeo/Popover').default}
     */
    mapTooltip_: import("ngeo/Popover").default | null;
    /**
     * @type {import('ngeo/format/FeatureHash').default}
     */
    featureHashFormat_: import("ngeo/format/FeatureHash").default;
    /**
     * @type {?angular.IPromise<void>}
     */
    setExternalDataSourcesStatePromise_: angular.IPromise<void> | null;
    /**
     * Called when layer being swipe
     *
     * @param {?import('ol/layer/Layer').default<import('ol/source/Source').default>|import('ol/layer/Group').default} layer layer object.
     * @param {?import('ol/layer/Layer').default<import('ol/source/Source').default>|import('ol/layer/Group').default} oldLayer  old layer object.
     */
    handleLayerBeingSwipeChange_(layer: (import("ol/layer/Layer").default<import("ol/source/Source").default> | import("ol/layer/Group").default) | null, oldLayer: (import("ol/layer/Layer").default<import("ol/source/Source").default> | import("ol/layer/Group").default) | null): void;
    /**
     * Called when map swipe value change.
     */
    handleMapSwipeValue_(): void;
    /**
     * Get the coordinate to use to initialize the map view from the state manager.
     *
     * @returns {?import('ol/coordinate').Coordinate} The coordinate for the map view center.
     */
    getMapCenter(): import("ol/coordinate").Coordinate | null;
    /**
     * Get the zoom level to use to initialize the map view from the state manager.
     *
     * @returns {number|undefined} The zoom for the map view.
     */
    getMapZoom(): number | undefined;
    /**
     * Get the map crosshair property from the state manager, if defined.
     *
     * @returns {boolean} Whether map crosshair property is set or not.
     */
    getMapCrosshair(): boolean;
    /**
     * Sets the map crosshair to the center (or the map center if nothing provided).
     * Overwrites an existing map crosshair.
     *
     * @param {?import('ol/coordinate').Coordinate} [opt_center] Optional center coordinate.
     */
    setMapCrosshair(opt_center?: import("ol/coordinate").Coordinate | null): void;
    /**
     * Get the tooltip text from the state manager.
     *
     * @returns {string|undefined} Tooltip text.
     */
    getMapTooltip(): string | undefined;
    /**
     * Sets the map tooltip to the center (or the map center if nothing provided).
     * Overwrites an existing map tooltip.
     *
     * @param {string} tooltipText Text to display in tooltip.
     * @param {?import('ol/coordinate').Coordinate} [opt_center] Optional center coordinate.
     */
    setMapTooltip(tooltipText: string, opt_center?: import("ol/coordinate").Coordinate | null): void;
    /**
     * Get the ngeo features from the state manager for initialization purpose
     *
     * @returns {olFeature<import('ol/geom/Geometry').default>[]} The features read from the state manager.
     */
    getFeatures(): olFeature<import("ol/geom/Geometry").default>[];
    /**
     * @param {Object<string, string>} dimensions The global dimensions object.
     */
    setDimensions(dimensions: {
        [x: string]: string;
    }): void;
    /**
     * Bind an ol3 map object to this service. The service will, from there on,
     * listen to the properties changed within the map view and update the following
     * state properties: map_x, map_y and map_zoom.
     *
     * If the service is already bound to a map, those events are unlistened first.
     *
     * @param {?import('ol/Map').default} map The ol3 map object.
     */
    setMap(map: import("ol/Map").default | null): void;
    /**
     * Listen to the map view property change and update the state accordingly.
     *
     * @param {import('ol/Map').default} map The ol3 map object.
     * @param {?olFeature<import('ol/geom/Geometry').default>} oeFeature ObjectEditing feature
     */
    registerMap_(map: import("ol/Map").default, oeFeature: olFeature<import("ol/geom/Geometry").default> | null): void;
    /**
     * Remove any event listeners from the current map.
     */
    unregisterMap_(): void;
    /**
     * Get the background layer object to use to initialize the map from the state manager.
     *
     * @param {import('ol/layer/Base').default[]} layers Array of background layer objects.
     * @returns {?import('ol/layer/Base').default} Background layer.
     */
    getBackgroundLayer(layers: import("ol/layer/Base").default[]): import("ol/layer/Base").default | null;
    /**
     * Get the background layer opacity to use to initialize the map from the state manager.
     *
     * @returns {?number} Opacity.
     */
    getBackgroundLayerOpacity(): number | null;
    /**
     * Called when the background layer changes. Update the state using the
     * background layer label, i.e. its name.
     */
    handleBackgroundLayerManagerChange_(): void;
    /**
     * Get the current first level node names in the tree manager and update the
     * correspondent state of the permalink.
     */
    refreshFirstLevelGroups(): void;
    /**
     * Update the time values in the state.
     *
     * @param {import('ngeo/layertree/Controller').LayertreeController} treeCtrl Controller.
     * @param {import('ngeo/datasource/OGC').TimeRange} time The start
     * and optionally the end datetime (for time range selection) selected by user
     */
    refreshLayerTime(treeCtrl: import("ngeo/layertree/Controller").LayertreeController, time: import("ngeo/datasource/OGC").TimeRange): void;
    /**
     * Return true if there is a theme specified in the URL path.
     *
     * @param {string[]} pathElements Array of path elements.
     * @returns {boolean} theme in path.
     */
    themeInUrl_(pathElements: string[]): boolean;
    /**
     * @param {string} themeName Theme name.
     */
    setThemeInUrl_(themeName: string): void;
    /**
     * Get the default theme from url, local storage, user functionalities or
     * defaultTheme constant.
     *
     * @returns {?string} default theme name.
     */
    defaultThemeName(): string | null;
    /**
     * Get the default theme from user functionalities.
     *
     * @returns {?string} default theme name.
     */
    defaultThemeNameFromFunctionalities(): string | null;
    initLayers_(): void;
    /**
     * @param {Event|import('ol/events/Event').default} event Collection event.
     */
    handleNgeoFeaturesAdd_(event: Event | import("ol/events/Event").default): void;
    /**
     * @param {Event|import('ol/events/Event').default} event Collection event.
     */
    handleNgeoFeaturesRemove_(event: Event | import("ol/events/Event").default): void;
    /**
     * Listen to any changes that may occur within the feature in order to
     * update the state of the permalink accordingly.
     *
     * @param {olFeature<import('ol/geom/Geometry').default>} feature Feature.
     */
    addNgeoFeature_(feature: olFeature<import("ol/geom/Geometry").default>): void;
    /**
     * Unregister any event listener from the feature.
     *
     * @param {olFeature<import('ol/geom/Geometry').default>} feature Feature.
     */
    removeNgeoFeature_(feature: olFeature<import("ol/geom/Geometry").default>): void;
    /**
     * Called once upon initialization of the permalink service if there's at
     * least one feature in the ngeoFeatures collection, then called every time
     * the collection changes or any of the features within the collection changes.
     */
    handleNgeoFeaturesChange_(): void;
    /**
     * Get the query data for a WFS permalink.
     *
     * @returns {?import('ngeo/statemanager/WfsPermalink').WfsPermalinkData} The query data.
     */
    getWfsPermalinkData_(): import("ngeo/statemanager/WfsPermalink").WfsPermalinkData | null;
    /**
     * Create a filter group for a given prefix from the query params.
     *
     * @param {string} prefix E.g. `wfs_` or `wfs_0_`.
     * @param {string[]} paramKeys All param keys starting with `wfs_`.
     * @returns {import('ngeo/statemanager/WfsPermalink').WfsPermalinkFilterGroup|null} A filter group.
     */
    createFilterGroup_(prefix: string, paramKeys: string[]): import("ngeo/statemanager/WfsPermalink").WfsPermalinkFilterGroup | null;
    /**
     * @returns {angular.IPromise<void>} Promise
     */
    initExternalDataSources_(): angular.IPromise<void>;
    /**
     * @param {Event|import('ol/events/Event').default} evt Collection event.
     */
    handleExternalDSGroupCollectionAdd_(evt: Event | import("ol/events/Event").default): void;
    /**
     * @param {import('ngeo/datasource/Group').default} group Data source group.
     */
    registerExternalDSGroup_(group: import("ngeo/datasource/Group").default): void;
    /**
     * Contains the layer name
     *
     * @param {import('ol/layer/Base').default} layer The layer to inspect
     * @param {string} name The layer name to find
     * @returns {boolean} The containing status
     */
    containsLayerName(layer: import("ol/layer/Base").default, name: string): boolean;
    /**
     * @param {Event|import('ol/events/Event').default} evt Collection event.
     */
    handleExternalDSGroupCollectionRemove_(evt: Event | import("ol/events/Event").default): void;
    /**
     * @param {import('ngeo/datasource/Group').default} group Data source group.
     */
    unregisterExternalDSGroup_(group: import("ngeo/datasource/Group").default): void;
    /**
     * Set the External Data Sources parameters in the url.
     */
    setExternalDataSourcesState_(): void;
    /**
     * Clean the permalink parameters
     *
     * @param {import('gmf/themes').GmfGroup[]} groups firstlevel groups of the tree
     */
    cleanParams(groups: import("gmf/themes").GmfGroup[]): void;
    /**
     * Set the time from permalink in datasource and widget.
     *
     * @param {import('ngeo/layertree/Controller').LayertreeController} treeCtrl Controller
     */
    setNodeTime_(treeCtrl: import("ngeo/layertree/Controller").LayertreeController): void;
}
export namespace PermalinkService {
    let $inject: string[];
}
/**
 * *
 */
export type OpenLayersLayerProperties = string;
export namespace OpenLayersLayerProperties {
    let OPACITY: string;
}
export default myModule;
import angular from 'angular';
import olFeature from 'ol/Feature';
/**
 * @type {angular.IModule}
 * @hidden
 */
declare const myModule: angular.IModule;
