161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
361847f8eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
461847f8eSopenharmony_ci * you may not use this file except in compliance with the License.
561847f8eSopenharmony_ci * You may obtain a copy of the License at
661847f8eSopenharmony_ci *
761847f8eSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
861847f8eSopenharmony_ci *
961847f8eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1061847f8eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1161847f8eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1261847f8eSopenharmony_ci * See the License for the specific language governing permissions and
1361847f8eSopenharmony_ci * limitations under the License.
1461847f8eSopenharmony_ci */
1561847f8eSopenharmony_ci
1661847f8eSopenharmony_ci/**
1761847f8eSopenharmony_ci * @file
1861847f8eSopenharmony_ci * @kit LocationKit
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ciimport { AsyncCallback, Callback } from './@ohos.base';
2261847f8eSopenharmony_ciimport { WantAgent } from './@ohos.wantAgent';
2361847f8eSopenharmony_ciimport { NotificationRequest } from './notification/notificationRequest';
2461847f8eSopenharmony_ci
2561847f8eSopenharmony_ci/**
2661847f8eSopenharmony_ci * Provides interfaces for acquiring location information, managing location switches,
2761847f8eSopenharmony_ci * geocoding, reverse geocoding, country code, fencing and other functions.
2861847f8eSopenharmony_ci *
2961847f8eSopenharmony_ci * @namespace geoLocationManager
3061847f8eSopenharmony_ci * @since 9
3161847f8eSopenharmony_ci */
3261847f8eSopenharmony_ci/**
3361847f8eSopenharmony_ci * Provides interfaces for acquiring location information, managing location switches,
3461847f8eSopenharmony_ci * geocoding, reverse geocoding, country code, fencing and other functions.
3561847f8eSopenharmony_ci *
3661847f8eSopenharmony_ci * @namespace geoLocationManager
3761847f8eSopenharmony_ci * @syscap SystemCapability.Location.Location.Core
3861847f8eSopenharmony_ci * @atomicservice
3961847f8eSopenharmony_ci * @since 11
4061847f8eSopenharmony_ci */
4161847f8eSopenharmony_cideclare namespace geoLocationManager {
4261847f8eSopenharmony_ci  /**
4361847f8eSopenharmony_ci   * Subscribe location changed.
4461847f8eSopenharmony_ci   *
4561847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
4661847f8eSopenharmony_ci   * @param { 'locationChange' } type - Indicates the location service event to be subscribed to.
4761847f8eSopenharmony_ci   * @param { LocationRequest } request - Indicates the location request parameters.
4861847f8eSopenharmony_ci   * @param { Callback<Location> } callback - Indicates the callback for reporting the location result.
4961847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
5061847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
5161847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.on('locationChange')} due to limited device capabilities.
5261847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
5361847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
5461847f8eSopenharmony_ci   * @throws { BusinessError } 3301200 - Failed to obtain the geographical location.
5561847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
5661847f8eSopenharmony_ci   * @since 9
5761847f8eSopenharmony_ci   */
5861847f8eSopenharmony_ci  /**
5961847f8eSopenharmony_ci   * Subscribe location changed.
6061847f8eSopenharmony_ci   *
6161847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
6261847f8eSopenharmony_ci   * @param { 'locationChange' } type - Indicates the location service event to be subscribed to.
6361847f8eSopenharmony_ci   * @param { LocationRequest } request - Indicates the location request parameters.
6461847f8eSopenharmony_ci   * @param { Callback<Location> } callback - Indicates the callback for reporting the location result.
6561847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
6661847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
6761847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.on('locationChange')} due to limited device capabilities.
6861847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
6961847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
7061847f8eSopenharmony_ci   * @throws { BusinessError } 3301200 - Failed to obtain the geographical location.
7161847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
7261847f8eSopenharmony_ci   * @atomicservice
7361847f8eSopenharmony_ci   * @since 11
7461847f8eSopenharmony_ci   */
7561847f8eSopenharmony_ci  /**
7661847f8eSopenharmony_ci   * Subscribe location changed.
7761847f8eSopenharmony_ci   *
7861847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
7961847f8eSopenharmony_ci   * @param { 'locationChange' } type - Indicates the location service event to be subscribed to.
8061847f8eSopenharmony_ci   * @param { LocationRequest | ContinuousLocationRequest } request - Indicates the location request parameters.
8161847f8eSopenharmony_ci   * @param { Callback<Location> } callback - Indicates the callback for reporting the location result.
8261847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
8361847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
8461847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.on('locationChange')} due to limited device capabilities.
8561847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
8661847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
8761847f8eSopenharmony_ci   * @throws { BusinessError } 3301200 - Failed to obtain the geographical location.
8861847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
8961847f8eSopenharmony_ci   * @atomicservice
9061847f8eSopenharmony_ci   * @since 12
9161847f8eSopenharmony_ci   */
9261847f8eSopenharmony_ci  function on(type: 'locationChange', request: LocationRequest | ContinuousLocationRequest,
9361847f8eSopenharmony_ci  callback: Callback<Location>): void;
9461847f8eSopenharmony_ci
9561847f8eSopenharmony_ci  /**
9661847f8eSopenharmony_ci   * Unsubscribe location changed.
9761847f8eSopenharmony_ci   *
9861847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
9961847f8eSopenharmony_ci   * @param { 'locationChange' } type - Indicates the location service event to be subscribed to.
10061847f8eSopenharmony_ci   * @param { Callback<Location> } [callback] - Indicates the callback for reporting the location result.
10161847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
10261847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
10361847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.off('locationChange')} due to limited device capabilities.
10461847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
10561847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
10661847f8eSopenharmony_ci   * @throws { BusinessError } 3301200 - Failed to obtain the geographical location.
10761847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
10861847f8eSopenharmony_ci   * @since 9
10961847f8eSopenharmony_ci   */
11061847f8eSopenharmony_ci  /**
11161847f8eSopenharmony_ci   * Unsubscribe location changed.
11261847f8eSopenharmony_ci   *
11361847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
11461847f8eSopenharmony_ci   * @param { 'locationChange' } type - Indicates the location service event to be subscribed to.
11561847f8eSopenharmony_ci   * @param { Callback<Location> } [callback] - Indicates the callback for reporting the location result.
11661847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
11761847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
11861847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.off('locationChange')} due to limited device capabilities.
11961847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
12061847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
12161847f8eSopenharmony_ci   * @throws { BusinessError } 3301200 - Failed to obtain the geographical location.
12261847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
12361847f8eSopenharmony_ci   * @atomicservice
12461847f8eSopenharmony_ci   * @since 11
12561847f8eSopenharmony_ci   */
12661847f8eSopenharmony_ci  function off(type: 'locationChange', callback?: Callback<Location>): void;
12761847f8eSopenharmony_ci
12861847f8eSopenharmony_ci  /**
12961847f8eSopenharmony_ci   * Subscribe continuous location error changed.
13061847f8eSopenharmony_ci   *
13161847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
13261847f8eSopenharmony_ci   * @param { 'locationError' } type - Indicates the location service event to be subscribed to.
13361847f8eSopenharmony_ci   * @param { Callback<LocationError> } callback - Indicates the callback for reporting the continuous location error.
13461847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
13561847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
13661847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.on('locationError')} due to limited device capabilities.
13761847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
13861847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
13961847f8eSopenharmony_ci   * @atomicservice
14061847f8eSopenharmony_ci   * @since 12
14161847f8eSopenharmony_ci   */
14261847f8eSopenharmony_ci  function on(type: 'locationError', callback: Callback<LocationError>): void;
14361847f8eSopenharmony_ci
14461847f8eSopenharmony_ci  /**
14561847f8eSopenharmony_ci   * Unsubscribe continuous location error changed.
14661847f8eSopenharmony_ci   *
14761847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
14861847f8eSopenharmony_ci   * @param { 'locationError' } type - Indicates the location service event to be subscribed to.
14961847f8eSopenharmony_ci   * @param { Callback<LocationError> } [callback] - Indicates the callback for reporting the continuous location error.
15061847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
15161847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
15261847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.off('locationError')} due to limited device capabilities.
15361847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
15461847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
15561847f8eSopenharmony_ci   * @atomicservice
15661847f8eSopenharmony_ci   * @since 12
15761847f8eSopenharmony_ci   */
15861847f8eSopenharmony_ci  function off(type: 'locationError', callback?: Callback<LocationError>): void;
15961847f8eSopenharmony_ci
16061847f8eSopenharmony_ci  /**
16161847f8eSopenharmony_ci   * Subscribe location switch changed.
16261847f8eSopenharmony_ci   *
16361847f8eSopenharmony_ci   * @param { 'locationEnabledChange' } type - Indicates the location service event to be subscribed to.
16461847f8eSopenharmony_ci   * @param { Callback<boolean> } callback - Indicates the callback for reporting the location switch status.
16561847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
16661847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.on('locationEnabledChange')} due to limited device capabilities.
16761847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
16861847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
16961847f8eSopenharmony_ci   * @since 9
17061847f8eSopenharmony_ci   */
17161847f8eSopenharmony_ci  function on(type: 'locationEnabledChange', callback: Callback<boolean>): void;
17261847f8eSopenharmony_ci
17361847f8eSopenharmony_ci  /**
17461847f8eSopenharmony_ci   * Unsubscribe location switch changed.
17561847f8eSopenharmony_ci   *
17661847f8eSopenharmony_ci   * @param { 'locationEnabledChange' } type - Indicates the location service event to be subscribed to.
17761847f8eSopenharmony_ci   * @param { Callback<boolean> } [callback] - Indicates the callback for reporting the location switch status.
17861847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
17961847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.off('locationEnabledChange')} due to limited device capabilities.
18061847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
18161847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
18261847f8eSopenharmony_ci   * @since 9
18361847f8eSopenharmony_ci   */
18461847f8eSopenharmony_ci  function off(type: 'locationEnabledChange', callback?: Callback<boolean>): void;
18561847f8eSopenharmony_ci
18661847f8eSopenharmony_ci  /**
18761847f8eSopenharmony_ci   * Subscribe to cache GNSS locations update messages.
18861847f8eSopenharmony_ci   *
18961847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
19061847f8eSopenharmony_ci   * @param { 'cachedGnssLocationsChange' } type - Indicates the location service event to be subscribed to.
19161847f8eSopenharmony_ci   * @param { CachedGnssLocationsRequest } request - Indicates the cached GNSS locations request parameters.
19261847f8eSopenharmony_ci   * @param { Callback<Array<Location>> } callback - Indicates the callback for reporting the cached GNSS locations.
19361847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
19461847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
19561847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.on('cachedGnssLocationsChange')} due to limited device capabilities.
19661847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
19761847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
19861847f8eSopenharmony_ci   * @throws { BusinessError } 3301200 - Failed to obtain the geographical location.
19961847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Gnss
20061847f8eSopenharmony_ci   * @since 9
20161847f8eSopenharmony_ci   */
20261847f8eSopenharmony_ci  function on(type: 'cachedGnssLocationsChange', request: CachedGnssLocationsRequest, callback: Callback<Array<Location>>): void;
20361847f8eSopenharmony_ci
20461847f8eSopenharmony_ci  /**
20561847f8eSopenharmony_ci   * Unsubscribe to cache GNSS locations update messages.
20661847f8eSopenharmony_ci   *
20761847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
20861847f8eSopenharmony_ci   * @param { 'cachedGnssLocationsChange' } type - Indicates the location service event to be subscribed to.
20961847f8eSopenharmony_ci   * @param { Callback<Array<Location>> } [callback] - Indicates the callback for reporting the cached gnss locations.
21061847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
21161847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
21261847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.off('cachedGnssLocationsChange')} due to limited device capabilities.
21361847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
21461847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
21561847f8eSopenharmony_ci   * @throws { BusinessError } 3301200 - Failed to obtain the geographical location.
21661847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Gnss
21761847f8eSopenharmony_ci   * @since 9
21861847f8eSopenharmony_ci   */
21961847f8eSopenharmony_ci  function off(type: 'cachedGnssLocationsChange', callback?: Callback<Array<Location>>): void;
22061847f8eSopenharmony_ci
22161847f8eSopenharmony_ci  /**
22261847f8eSopenharmony_ci   * Subscribe satellite status changed.
22361847f8eSopenharmony_ci   *
22461847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
22561847f8eSopenharmony_ci   * @param { 'satelliteStatusChange' } type - Indicates the location service event to be subscribed to.
22661847f8eSopenharmony_ci   * @param { Callback<SatelliteStatusInfo> } callback - Indicates the callback for reporting the satellite status.
22761847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
22861847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
22961847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.on('satelliteStatusChange')} due to limited device capabilities.
23061847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
23161847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
23261847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Gnss
23361847f8eSopenharmony_ci   * @since 9
23461847f8eSopenharmony_ci   */
23561847f8eSopenharmony_ci  function on(type: 'satelliteStatusChange', callback: Callback<SatelliteStatusInfo>): void;
23661847f8eSopenharmony_ci
23761847f8eSopenharmony_ci  /**
23861847f8eSopenharmony_ci   * Unsubscribe satellite status changed.
23961847f8eSopenharmony_ci   *
24061847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
24161847f8eSopenharmony_ci   * @param { 'satelliteStatusChange' } type - Indicates the location service event to be subscribed to.
24261847f8eSopenharmony_ci   * @param { Callback<SatelliteStatusInfo> } [callback] - Indicates the callback for reporting the satellite status.
24361847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
24461847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
24561847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.off('satelliteStatusChange')} due to limited device capabilities.
24661847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
24761847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
24861847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Gnss
24961847f8eSopenharmony_ci   * @since 9
25061847f8eSopenharmony_ci   */
25161847f8eSopenharmony_ci  function off(type: 'satelliteStatusChange', callback?: Callback<SatelliteStatusInfo>): void;
25261847f8eSopenharmony_ci
25361847f8eSopenharmony_ci  /**
25461847f8eSopenharmony_ci   * Subscribe nmea message changed.
25561847f8eSopenharmony_ci   *
25661847f8eSopenharmony_ci   * @permission ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION
25761847f8eSopenharmony_ci   * @param { 'nmeaMessage' } type - Indicates the location service event to be subscribed to.
25861847f8eSopenharmony_ci   * @param { Callback<string> } callback - Indicates the callback for reporting the nmea message.
25961847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
26061847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
26161847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.on('nmeaMessage')} due to limited device capabilities.
26261847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
26361847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
26461847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Gnss
26561847f8eSopenharmony_ci   * @since 9
26661847f8eSopenharmony_ci   */
26761847f8eSopenharmony_ci  function on(type: 'nmeaMessage', callback: Callback<string>): void;
26861847f8eSopenharmony_ci
26961847f8eSopenharmony_ci  /**
27061847f8eSopenharmony_ci   * Unsubscribe nmea message changed.
27161847f8eSopenharmony_ci   *
27261847f8eSopenharmony_ci   * @permission ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION
27361847f8eSopenharmony_ci   * @param { 'nmeaMessage' } type - Indicates the location service event to be subscribed to.
27461847f8eSopenharmony_ci   * @param { Callback<string> } [callback] - Indicates the callback for reporting the nmea message.
27561847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
27661847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
27761847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.off('nmeaMessage')} due to limited device capabilities.
27861847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
27961847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
28061847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Gnss
28161847f8eSopenharmony_ci   * @since 9
28261847f8eSopenharmony_ci   */
28361847f8eSopenharmony_ci  function off(type: 'nmeaMessage', callback?: Callback<string>): void;
28461847f8eSopenharmony_ci
28561847f8eSopenharmony_ci  /**
28661847f8eSopenharmony_ci   * Add a geofence and subscribe geofence status changed.
28761847f8eSopenharmony_ci   *
28861847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
28961847f8eSopenharmony_ci   * @param { 'gnssFenceStatusChange' } type - Indicates the location service event to be subscribed to.
29061847f8eSopenharmony_ci   * @param { GeofenceRequest } request - Indicates the Geofence configuration parameters.
29161847f8eSopenharmony_ci   * @param { WantAgent } want - Indicates which ability to start when the geofence event is triggered.
29261847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
29361847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
29461847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.on('gnssFenceStatusChange')} due to limited device capabilities.
29561847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
29661847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
29761847f8eSopenharmony_ci   * @throws { BusinessError } 3301600 - Failed to operate the geofence.
29861847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Geofence
29961847f8eSopenharmony_ci   * @since 9
30061847f8eSopenharmony_ci   */
30161847f8eSopenharmony_ci  function on(type: 'gnssFenceStatusChange', request: GeofenceRequest, want: WantAgent): void;
30261847f8eSopenharmony_ci
30361847f8eSopenharmony_ci  /**
30461847f8eSopenharmony_ci   * Remove a geofence and unsubscribe geofence status changed.
30561847f8eSopenharmony_ci   *
30661847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
30761847f8eSopenharmony_ci   * @param { 'gnssFenceStatusChange' } type - Indicates the location service event to be subscribed to.
30861847f8eSopenharmony_ci   * @param { GeofenceRequest } request - Indicates the Geofence configuration parameters.
30961847f8eSopenharmony_ci   * @param { WantAgent } want - Indicates which ability to start when the geofence event is triggered.
31061847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
31161847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
31261847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.off('gnssFenceStatusChange')} due to limited device capabilities.
31361847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
31461847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
31561847f8eSopenharmony_ci   * @throws { BusinessError } 3301600 - Failed to operate the geofence.
31661847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Geofence
31761847f8eSopenharmony_ci   * @since 9
31861847f8eSopenharmony_ci   */
31961847f8eSopenharmony_ci  function off(type: 'gnssFenceStatusChange', request: GeofenceRequest, want: WantAgent): void;
32061847f8eSopenharmony_ci
32161847f8eSopenharmony_ci  /**
32261847f8eSopenharmony_ci   * Registering the callback function for listening to country code changes.
32361847f8eSopenharmony_ci   *
32461847f8eSopenharmony_ci   * @param { 'countryCodeChange' } type - Indicates the location service event to be subscribed to.
32561847f8eSopenharmony_ci   * @param { Callback<CountryCode> } callback - Indicates the callback for reporting country code changes.
32661847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
32761847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.on('countryCodeChange')} due to limited device capabilities.
32861847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
32961847f8eSopenharmony_ci   * @throws { BusinessError } 3301500 - Failed to query the area information.
33061847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
33161847f8eSopenharmony_ci   * @since 9
33261847f8eSopenharmony_ci   */
33361847f8eSopenharmony_ci  function on(type: 'countryCodeChange', callback: Callback<CountryCode>): void;
33461847f8eSopenharmony_ci
33561847f8eSopenharmony_ci  /**
33661847f8eSopenharmony_ci   * Unregistering the callback function for listening to country code changes.
33761847f8eSopenharmony_ci   *
33861847f8eSopenharmony_ci   * @param { 'countryCodeChange' } type - Indicates the location service event to be subscribed to.
33961847f8eSopenharmony_ci   * @param { Callback<CountryCode> } [callback] - Indicates the callback for reporting country code changes.
34061847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
34161847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.off('countryCodeChange')} due to limited device capabilities.
34261847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
34361847f8eSopenharmony_ci   * @throws { BusinessError } 3301500 - Failed to query the area information.
34461847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
34561847f8eSopenharmony_ci   * @since 9
34661847f8eSopenharmony_ci   */
34761847f8eSopenharmony_ci  function off(type: 'countryCodeChange', callback?: Callback<CountryCode>): void;
34861847f8eSopenharmony_ci
34961847f8eSopenharmony_ci  /**
35061847f8eSopenharmony_ci   * Subscribe to changes in WiFi/BT scanning information,
35161847f8eSopenharmony_ci   * and use the WiFi/BT scanning information for localization.
35261847f8eSopenharmony_ci   *
35361847f8eSopenharmony_ci   * @permission ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION
35461847f8eSopenharmony_ci   * @param { 'locatingRequiredDataChange' } type - Indicates the location service event to be subscribed to.
35561847f8eSopenharmony_ci   * @param { LocatingRequiredDataConfig } config - Indicates the locating required data configuration parameters.
35661847f8eSopenharmony_ci   * @param { Callback<Array<LocatingRequiredData>> } [callback] - Indicates the callback for reporting WiFi/BT scan info.
35761847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
35861847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
35961847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
36061847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.on('locatingRequiredDataChange')} due to limited device capabilities.
36161847f8eSopenharmony_ci   * @throws { BusinessError } 3301800 - Failed to start WiFi or Bluetooth scanning.
36261847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
36361847f8eSopenharmony_ci   * @systemapi
36461847f8eSopenharmony_ci   * @since 10
36561847f8eSopenharmony_ci   */
36661847f8eSopenharmony_ci  function on(type: 'locatingRequiredDataChange', config: LocatingRequiredDataConfig, callback: Callback<Array<LocatingRequiredData>>): void;
36761847f8eSopenharmony_ci
36861847f8eSopenharmony_ci  /**
36961847f8eSopenharmony_ci   * Stop WiFi/BT scanning and unsubscribe from WiFi/BT scanning information changes.
37061847f8eSopenharmony_ci   *
37161847f8eSopenharmony_ci   * @permission ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION
37261847f8eSopenharmony_ci   * @param { 'locatingRequiredDataChange' } type - Indicates the location service event to be subscribed to.
37361847f8eSopenharmony_ci   * @param { Callback<Array<LocatingRequiredData>> } [callback] - Indicates the callback for reporting WiFi/BT scan info.
37461847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
37561847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
37661847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
37761847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.off('locatingRequiredDataChange')} due to limited device capabilities.
37861847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
37961847f8eSopenharmony_ci   * @systemapi
38061847f8eSopenharmony_ci   * @since 10
38161847f8eSopenharmony_ci   */
38261847f8eSopenharmony_ci  function off(type: 'locatingRequiredDataChange', callback?: Callback<Array<LocatingRequiredData>>): void;
38361847f8eSopenharmony_ci
38461847f8eSopenharmony_ci  /**
38561847f8eSopenharmony_ci   * Subscribe location icon status changed.
38661847f8eSopenharmony_ci   *
38761847f8eSopenharmony_ci   * @param { 'locationIconStatusChange' } type - Indicates the location service event to be subscribed to.
38861847f8eSopenharmony_ci   * @param { Callback<LocationIconStatus> } callback - Indicates the callback for reporting the location icon status.
38961847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
39061847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
39161847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.on('locationIconStatusChange')} due to limited device capabilities.
39261847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
39361847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
39461847f8eSopenharmony_ci   * @systemapi
39561847f8eSopenharmony_ci   * @since 12
39661847f8eSopenharmony_ci   */
39761847f8eSopenharmony_ci  function on(type: 'locationIconStatusChange', callback: Callback<LocationIconStatus>): void;
39861847f8eSopenharmony_ci
39961847f8eSopenharmony_ci  /**
40061847f8eSopenharmony_ci   * Unsubscribe location icon status changed.
40161847f8eSopenharmony_ci   *
40261847f8eSopenharmony_ci   * @param { 'locationIconStatusChange' } type - Indicates the location service event to be subscribed to.
40361847f8eSopenharmony_ci   * @param { Callback<LocationIconStatus> } [callback] - Indicates the callback for reporting the location icon status.
40461847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
40561847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
40661847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.off('locationIconStatusChange')} due to limited device capabilities.
40761847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
40861847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
40961847f8eSopenharmony_ci   * @systemapi
41061847f8eSopenharmony_ci   * @since 12
41161847f8eSopenharmony_ci   */
41261847f8eSopenharmony_ci  function off(type: 'locationIconStatusChange', callback?: Callback<LocationIconStatus>): void;
41361847f8eSopenharmony_ci
41461847f8eSopenharmony_ci  /**
41561847f8eSopenharmony_ci   * Obtain current location.
41661847f8eSopenharmony_ci   *
41761847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
41861847f8eSopenharmony_ci   * @param { CurrentLocationRequest } request - Indicates the location request parameters.
41961847f8eSopenharmony_ci   * @param { AsyncCallback<Location> } callback - Indicates the callback for reporting the location result.
42061847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
42161847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
42261847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.getCurrentLocation} due to limited device capabilities.
42361847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
42461847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
42561847f8eSopenharmony_ci   * @throws { BusinessError } 3301200 - Failed to obtain the geographical location.
42661847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
42761847f8eSopenharmony_ci   * @since 9
42861847f8eSopenharmony_ci   */
42961847f8eSopenharmony_ci  /**
43061847f8eSopenharmony_ci   * Obtain current location.
43161847f8eSopenharmony_ci   *
43261847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
43361847f8eSopenharmony_ci   * @param { CurrentLocationRequest } request - Indicates the location request parameters.
43461847f8eSopenharmony_ci   * @param { AsyncCallback<Location> } callback - Indicates the callback for reporting the location result.
43561847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
43661847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
43761847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.getCurrentLocation} due to limited device capabilities.
43861847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
43961847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
44061847f8eSopenharmony_ci   * @throws { BusinessError } 3301200 - Failed to obtain the geographical location.
44161847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
44261847f8eSopenharmony_ci   * @atomicservice
44361847f8eSopenharmony_ci   * @since 11
44461847f8eSopenharmony_ci   */
44561847f8eSopenharmony_ci  /**
44661847f8eSopenharmony_ci   * Obtain current location.
44761847f8eSopenharmony_ci   *
44861847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
44961847f8eSopenharmony_ci   * @param { CurrentLocationRequest | SingleLocationRequest } request - Indicates the location request parameters.
45061847f8eSopenharmony_ci   * @param { AsyncCallback<Location> } callback - Indicates the callback for reporting the location result.
45161847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
45261847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
45361847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.getCurrentLocation} due to limited device capabilities.
45461847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
45561847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
45661847f8eSopenharmony_ci   * @throws { BusinessError } 3301200 - Failed to obtain the geographical location.
45761847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
45861847f8eSopenharmony_ci   * @atomicservice
45961847f8eSopenharmony_ci   * @since 12
46061847f8eSopenharmony_ci   */
46161847f8eSopenharmony_ci  function getCurrentLocation(request: CurrentLocationRequest | SingleLocationRequest,
46261847f8eSopenharmony_ci  callback: AsyncCallback<Location>): void;
46361847f8eSopenharmony_ci
46461847f8eSopenharmony_ci  /**
46561847f8eSopenharmony_ci   * Obtain current location.
46661847f8eSopenharmony_ci   *
46761847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
46861847f8eSopenharmony_ci   * @param { AsyncCallback<Location> } callback - Indicates the callback for reporting the location result.
46961847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
47061847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
47161847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.getCurrentLocation} due to limited device capabilities.
47261847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
47361847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
47461847f8eSopenharmony_ci   * @throws { BusinessError } 3301200 - Failed to obtain the geographical location.
47561847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
47661847f8eSopenharmony_ci   * @since 9
47761847f8eSopenharmony_ci   */
47861847f8eSopenharmony_ci  /**
47961847f8eSopenharmony_ci   * Obtain current location.
48061847f8eSopenharmony_ci   *
48161847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
48261847f8eSopenharmony_ci   * @param { AsyncCallback<Location> } callback - Indicates the callback for reporting the location result.
48361847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
48461847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
48561847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.getCurrentLocation} due to limited device capabilities.
48661847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
48761847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
48861847f8eSopenharmony_ci   * @throws { BusinessError } 3301200 - Failed to obtain the geographical location.
48961847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
49061847f8eSopenharmony_ci   * @atomicservice
49161847f8eSopenharmony_ci   * @since 11
49261847f8eSopenharmony_ci   */
49361847f8eSopenharmony_ci  function getCurrentLocation(callback: AsyncCallback<Location>): void;
49461847f8eSopenharmony_ci
49561847f8eSopenharmony_ci  /**
49661847f8eSopenharmony_ci   * Obtain current location.
49761847f8eSopenharmony_ci   *
49861847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
49961847f8eSopenharmony_ci   * @param { CurrentLocationRequest } [request] - Indicates the location request parameters.
50061847f8eSopenharmony_ci   * @returns { Promise<Location> } The promise returned by the function.
50161847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
50261847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
50361847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.getCurrentLocation} due to limited device capabilities.
50461847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
50561847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
50661847f8eSopenharmony_ci   * @throws { BusinessError } 3301200 - Failed to obtain the geographical location.
50761847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
50861847f8eSopenharmony_ci   * @since 9
50961847f8eSopenharmony_ci   */
51061847f8eSopenharmony_ci  /**
51161847f8eSopenharmony_ci   * Obtain current location.
51261847f8eSopenharmony_ci   *
51361847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
51461847f8eSopenharmony_ci   * @param { CurrentLocationRequest } [request] - Indicates the location request parameters.
51561847f8eSopenharmony_ci   * @returns { Promise<Location> } The promise returned by the function.
51661847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
51761847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
51861847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.getCurrentLocation} due to limited device capabilities.
51961847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
52061847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
52161847f8eSopenharmony_ci   * @throws { BusinessError } 3301200 - Failed to obtain the geographical location.
52261847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
52361847f8eSopenharmony_ci   * @atomicservice
52461847f8eSopenharmony_ci   * @since 11
52561847f8eSopenharmony_ci   */
52661847f8eSopenharmony_ci  /**
52761847f8eSopenharmony_ci   * Obtain current location.
52861847f8eSopenharmony_ci   *
52961847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
53061847f8eSopenharmony_ci   * @param { CurrentLocationRequest | SingleLocationRequest } [request] - Indicates the location request parameters.
53161847f8eSopenharmony_ci   * @returns { Promise<Location> } The promise returned by the function.
53261847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
53361847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
53461847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.getCurrentLocation} due to limited device capabilities.
53561847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
53661847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
53761847f8eSopenharmony_ci   * @throws { BusinessError } 3301200 - Failed to obtain the geographical location.
53861847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
53961847f8eSopenharmony_ci   * @atomicservice
54061847f8eSopenharmony_ci   * @since 12
54161847f8eSopenharmony_ci   */
54261847f8eSopenharmony_ci  function getCurrentLocation(request?: CurrentLocationRequest | SingleLocationRequest):
54361847f8eSopenharmony_ci  Promise<Location>;
54461847f8eSopenharmony_ci
54561847f8eSopenharmony_ci  /**
54661847f8eSopenharmony_ci   * Obtain last known location.
54761847f8eSopenharmony_ci   *
54861847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
54961847f8eSopenharmony_ci   * @returns { Location } The last known location information.
55061847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
55161847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.getLastLocation} due to limited device capabilities.
55261847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
55361847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
55461847f8eSopenharmony_ci   * @throws { BusinessError } 3301200 - Failed to obtain the geographical location.
55561847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
55661847f8eSopenharmony_ci   * @since 9
55761847f8eSopenharmony_ci   */
55861847f8eSopenharmony_ci  /**
55961847f8eSopenharmony_ci   * Obtain last known location.
56061847f8eSopenharmony_ci   *
56161847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
56261847f8eSopenharmony_ci   * @returns { Location } The last known location information.
56361847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
56461847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.getLastLocation} due to limited device capabilities.
56561847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
56661847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
56761847f8eSopenharmony_ci   * @throws { BusinessError } 3301200 - Failed to obtain the geographical location.
56861847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
56961847f8eSopenharmony_ci   * @atomicservice
57061847f8eSopenharmony_ci   * @since 11
57161847f8eSopenharmony_ci   */
57261847f8eSopenharmony_ci  function getLastLocation(): Location;
57361847f8eSopenharmony_ci
57461847f8eSopenharmony_ci  /**
57561847f8eSopenharmony_ci   * Obtain current location switch status.
57661847f8eSopenharmony_ci   *
57761847f8eSopenharmony_ci   * @returns { boolean } Returns {@code true} if the location switch on, returns {@code false} otherwise.
57861847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.isLocationEnabled} due to limited device capabilities.
57961847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
58061847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
58161847f8eSopenharmony_ci   * @since 9
58261847f8eSopenharmony_ci   */
58361847f8eSopenharmony_ci  /**
58461847f8eSopenharmony_ci   * Obtain current location switch status.
58561847f8eSopenharmony_ci   *
58661847f8eSopenharmony_ci   * @returns { boolean } Returns {@code true} if the location switch on, returns {@code false} otherwise.
58761847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.isLocationEnabled} due to limited device capabilities.
58861847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
58961847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
59061847f8eSopenharmony_ci   * @atomicservice
59161847f8eSopenharmony_ci   * @since 11
59261847f8eSopenharmony_ci   */
59361847f8eSopenharmony_ci  function isLocationEnabled(): boolean;
59461847f8eSopenharmony_ci
59561847f8eSopenharmony_ci  /**
59661847f8eSopenharmony_ci   * Enable location switch.
59761847f8eSopenharmony_ci   *
59861847f8eSopenharmony_ci   * @permission ohos.permission.MANAGE_SECURE_SETTINGS
59961847f8eSopenharmony_ci   * @param { AsyncCallback<void> } callback - Indicates the callback for reporting the error message.
60061847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
60161847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
60261847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
60361847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.enableLocation} due to limited device capabilities.
60461847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
60561847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
60661847f8eSopenharmony_ci   * @systemapi
60761847f8eSopenharmony_ci   * @since 9
60861847f8eSopenharmony_ci   */
60961847f8eSopenharmony_ci  function enableLocation(callback: AsyncCallback<void>): void;
61061847f8eSopenharmony_ci
61161847f8eSopenharmony_ci  /**
61261847f8eSopenharmony_ci   * Enable location switch.
61361847f8eSopenharmony_ci   *
61461847f8eSopenharmony_ci   * @permission ohos.permission.MANAGE_SECURE_SETTINGS
61561847f8eSopenharmony_ci   * @returns { Promise<void> } The promise returned by the function.
61661847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
61761847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
61861847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.enableLocation} due to limited device capabilities.
61961847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
62061847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
62161847f8eSopenharmony_ci   * @systemapi
62261847f8eSopenharmony_ci   * @since 9
62361847f8eSopenharmony_ci   */
62461847f8eSopenharmony_ci  function enableLocation(): Promise<void>;
62561847f8eSopenharmony_ci
62661847f8eSopenharmony_ci  /**
62761847f8eSopenharmony_ci   * Disable location switch.
62861847f8eSopenharmony_ci   *
62961847f8eSopenharmony_ci   * @permission ohos.permission.MANAGE_SECURE_SETTINGS
63061847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
63161847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
63261847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.disableLocation} due to limited device capabilities.
63361847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
63461847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
63561847f8eSopenharmony_ci   * @systemapi
63661847f8eSopenharmony_ci   * @since 9
63761847f8eSopenharmony_ci   */
63861847f8eSopenharmony_ci  function disableLocation(): void;
63961847f8eSopenharmony_ci
64061847f8eSopenharmony_ci  /**
64161847f8eSopenharmony_ci   * Obtain address info from location.
64261847f8eSopenharmony_ci   *
64361847f8eSopenharmony_ci   * @param { ReverseGeoCodeRequest } request - Indicates the reverse geocode query parameters.
64461847f8eSopenharmony_ci   * @param { AsyncCallback<Array<GeoAddress>> } callback - Indicates the callback for reporting the address info.
64561847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
64661847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.getAddressesFromLocation} due to limited device capabilities.
64761847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
64861847f8eSopenharmony_ci   * @throws { BusinessError } 3301300 - Reverse geocoding query failed.
64961847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Geocoder
65061847f8eSopenharmony_ci   * @since 9
65161847f8eSopenharmony_ci   */
65261847f8eSopenharmony_ci  function getAddressesFromLocation(request: ReverseGeoCodeRequest, callback: AsyncCallback<Array<GeoAddress>>): void;
65361847f8eSopenharmony_ci
65461847f8eSopenharmony_ci  /**
65561847f8eSopenharmony_ci   * Obtain address info from location.
65661847f8eSopenharmony_ci   *
65761847f8eSopenharmony_ci   * @param { ReverseGeoCodeRequest } request - Indicates the reverse geocode query parameters.
65861847f8eSopenharmony_ci   * @returns { Promise<Array<GeoAddress>> } The promise returned by the function.
65961847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
66061847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.getAddressesFromLocation} due to limited device capabilities.
66161847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
66261847f8eSopenharmony_ci   * @throws { BusinessError } 3301300 - Reverse geocoding query failed.
66361847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Geocoder
66461847f8eSopenharmony_ci   * @since 9
66561847f8eSopenharmony_ci   */
66661847f8eSopenharmony_ci  function getAddressesFromLocation(request: ReverseGeoCodeRequest): Promise<Array<GeoAddress>>;
66761847f8eSopenharmony_ci
66861847f8eSopenharmony_ci  /**
66961847f8eSopenharmony_ci   * Obtain latitude and longitude info from location address.
67061847f8eSopenharmony_ci   *
67161847f8eSopenharmony_ci   * @param { GeoCodeRequest } request - Indicates the geocode query parameters.
67261847f8eSopenharmony_ci   * @param { AsyncCallback<Array<GeoAddress>> } callback - Indicates the callback for reporting the latitude and longitude result.
67361847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
67461847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.getAddressesFromLocationName} due to limited device capabilities.
67561847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
67661847f8eSopenharmony_ci   * @throws { BusinessError } 3301400 - Geocoding query failed.
67761847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Geocoder
67861847f8eSopenharmony_ci   * @since 9
67961847f8eSopenharmony_ci   */
68061847f8eSopenharmony_ci  function getAddressesFromLocationName(request: GeoCodeRequest, callback: AsyncCallback<Array<GeoAddress>>): void;
68161847f8eSopenharmony_ci
68261847f8eSopenharmony_ci  /**
68361847f8eSopenharmony_ci   * Obtain latitude and longitude info from location address.
68461847f8eSopenharmony_ci   *
68561847f8eSopenharmony_ci   * @param { GeoCodeRequest } request - Indicates the geocode query parameters.
68661847f8eSopenharmony_ci   * @returns { Promise<Array<GeoAddress>> } The promise returned by the function.
68761847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
68861847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.getAddressesFromLocationName} due to limited device capabilities.
68961847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
69061847f8eSopenharmony_ci   * @throws { BusinessError } 3301400 - Geocoding query failed.
69161847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Geocoder
69261847f8eSopenharmony_ci   * @since 9
69361847f8eSopenharmony_ci   */
69461847f8eSopenharmony_ci  function getAddressesFromLocationName(request: GeoCodeRequest): Promise<Array<GeoAddress>>;
69561847f8eSopenharmony_ci
69661847f8eSopenharmony_ci  /**
69761847f8eSopenharmony_ci   * Obtain geocoding service status.
69861847f8eSopenharmony_ci   *
69961847f8eSopenharmony_ci   * @returns { boolean } Returns {@code true} if geocoding service is available, returns {@code false} otherwise.
70061847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.isGeocoderAvailable} due to limited device capabilities.
70161847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
70261847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Geocoder
70361847f8eSopenharmony_ci   * @since 9
70461847f8eSopenharmony_ci   */
70561847f8eSopenharmony_ci  function isGeocoderAvailable(): boolean;
70661847f8eSopenharmony_ci
70761847f8eSopenharmony_ci  /**
70861847f8eSopenharmony_ci   * Obtain the number of cached GNSS locations reported at a time.
70961847f8eSopenharmony_ci   *
71061847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
71161847f8eSopenharmony_ci   * @param { AsyncCallback<number> } callback - Indicates the callback for reporting the cached GNSS locations size.
71261847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
71361847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
71461847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.getCachedGnssLocationsSize} due to limited device capabilities.
71561847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
71661847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
71761847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Gnss
71861847f8eSopenharmony_ci   * @since 9
71961847f8eSopenharmony_ci   */
72061847f8eSopenharmony_ci  function getCachedGnssLocationsSize(callback: AsyncCallback<number>): void;
72161847f8eSopenharmony_ci
72261847f8eSopenharmony_ci  /**
72361847f8eSopenharmony_ci   * Obtain the number of cached GNSS locations.
72461847f8eSopenharmony_ci   *
72561847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
72661847f8eSopenharmony_ci   * @returns { Promise<number> } The promise returned by the function.
72761847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
72861847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.getCachedGnssLocationsSize} due to limited device capabilities.
72961847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
73061847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
73161847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Gnss
73261847f8eSopenharmony_ci   * @since 9
73361847f8eSopenharmony_ci   */
73461847f8eSopenharmony_ci  function getCachedGnssLocationsSize(): Promise<number>;
73561847f8eSopenharmony_ci
73661847f8eSopenharmony_ci  /**
73761847f8eSopenharmony_ci   * All prepared GNSS locations are returned to the application through the callback function,
73861847f8eSopenharmony_ci   * and the bottom-layer buffer is cleared.
73961847f8eSopenharmony_ci   *
74061847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
74161847f8eSopenharmony_ci   * @param { AsyncCallback<void> } callback - Indicates the callback for reporting the error message.
74261847f8eSopenharmony_ci   * If the function fails to execute, the error message will be carried in the first parameter err of AsyncCallback,
74361847f8eSopenharmony_ci   * If the function executes successfully, execute the callback function only, no data will be returned.
74461847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
74561847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
74661847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.flushCachedGnssLocations} due to limited device capabilities.
74761847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
74861847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
74961847f8eSopenharmony_ci   * @throws { BusinessError } 3301200 - Failed to obtain the geographical location.
75061847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Gnss
75161847f8eSopenharmony_ci   * @since 9
75261847f8eSopenharmony_ci   */
75361847f8eSopenharmony_ci  function flushCachedGnssLocations(callback: AsyncCallback<void>): void;
75461847f8eSopenharmony_ci
75561847f8eSopenharmony_ci  /**
75661847f8eSopenharmony_ci   * All prepared GNSS locations are returned to the application,
75761847f8eSopenharmony_ci   * and the bottom-layer buffer is cleared.
75861847f8eSopenharmony_ci   *
75961847f8eSopenharmony_ci   * @permission ohos.permission.APPROXIMATELY_LOCATION
76061847f8eSopenharmony_ci   * @returns { Promise<void> } The promise returned by the function.
76161847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
76261847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.flushCachedGnssLocations} due to limited device capabilities.
76361847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
76461847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
76561847f8eSopenharmony_ci   * @throws { BusinessError } 3301200 - Failed to obtain the geographical location.
76661847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Gnss
76761847f8eSopenharmony_ci   * @since 9
76861847f8eSopenharmony_ci   */
76961847f8eSopenharmony_ci  function flushCachedGnssLocations(): Promise<void>;
77061847f8eSopenharmony_ci
77161847f8eSopenharmony_ci  /**
77261847f8eSopenharmony_ci   * Send extended commands to location subsystem.
77361847f8eSopenharmony_ci   *
77461847f8eSopenharmony_ci   * @param { LocationCommand } command - Indicates the extended command message body.
77561847f8eSopenharmony_ci   * @param { AsyncCallback<void> } callback - Indicates the callback for reporting the error message.
77661847f8eSopenharmony_ci   * If the function fails to execute, the error message will be carried in the first parameter err of AsyncCallback,
77761847f8eSopenharmony_ci   * If the function executes successfully, execute the callback function only, no data will be returned.
77861847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
77961847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.sendCommand} due to limited device capabilities.
78061847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
78161847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
78261847f8eSopenharmony_ci   * @since 9
78361847f8eSopenharmony_ci   */
78461847f8eSopenharmony_ci  function sendCommand(command: LocationCommand, callback: AsyncCallback<void>): void;
78561847f8eSopenharmony_ci
78661847f8eSopenharmony_ci  /**
78761847f8eSopenharmony_ci   * Send extended commands to location subsystem.
78861847f8eSopenharmony_ci   *
78961847f8eSopenharmony_ci   * @param { LocationCommand } command - Indicates the extended command message body.
79061847f8eSopenharmony_ci   * @returns { Promise<void> } The promise returned by the function.
79161847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
79261847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.sendCommand} due to limited device capabilities.
79361847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
79461847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
79561847f8eSopenharmony_ci   * @since 9
79661847f8eSopenharmony_ci   */
79761847f8eSopenharmony_ci  function sendCommand(command: LocationCommand): Promise<void>;
79861847f8eSopenharmony_ci
79961847f8eSopenharmony_ci  /**
80061847f8eSopenharmony_ci   * Obtain the current country code.
80161847f8eSopenharmony_ci   *
80261847f8eSopenharmony_ci   * @param { AsyncCallback<CountryCode> } callback - Indicates the callback for reporting the country code.
80361847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
80461847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.getCountryCode} due to limited device capabilities.
80561847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
80661847f8eSopenharmony_ci   * @throws { BusinessError } 3301500 - Failed to query the area information.
80761847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
80861847f8eSopenharmony_ci   * @since 9
80961847f8eSopenharmony_ci   */
81061847f8eSopenharmony_ci  function getCountryCode(callback: AsyncCallback<CountryCode>): void;
81161847f8eSopenharmony_ci
81261847f8eSopenharmony_ci  /**
81361847f8eSopenharmony_ci   * Obtain the current country code.
81461847f8eSopenharmony_ci   *
81561847f8eSopenharmony_ci   * @returns { Promise<CountryCode> } The promise returned by the function.
81661847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.getCountryCode} due to limited device capabilities.
81761847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
81861847f8eSopenharmony_ci   * @throws { BusinessError } 3301500 - Failed to query the area information.
81961847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
82061847f8eSopenharmony_ci   * @since 9
82161847f8eSopenharmony_ci   */
82261847f8eSopenharmony_ci  function getCountryCode(): Promise<CountryCode>;
82361847f8eSopenharmony_ci
82461847f8eSopenharmony_ci  /**
82561847f8eSopenharmony_ci   * Enable the geographical location simulation function.
82661847f8eSopenharmony_ci   *
82761847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
82861847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.enableLocationMock} due to limited device capabilities.
82961847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
83061847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
83161847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
83261847f8eSopenharmony_ci   * @systemapi
83361847f8eSopenharmony_ci   * @since 9
83461847f8eSopenharmony_ci   */
83561847f8eSopenharmony_ci  function enableLocationMock(): void;
83661847f8eSopenharmony_ci
83761847f8eSopenharmony_ci  /**
83861847f8eSopenharmony_ci   * Disable the geographical location simulation function.
83961847f8eSopenharmony_ci   *
84061847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
84161847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.disableLocationMock} due to limited device capabilities.
84261847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
84361847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
84461847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
84561847f8eSopenharmony_ci   * @systemapi
84661847f8eSopenharmony_ci   * @since 9
84761847f8eSopenharmony_ci   */
84861847f8eSopenharmony_ci  function disableLocationMock(): void;
84961847f8eSopenharmony_ci
85061847f8eSopenharmony_ci  /**
85161847f8eSopenharmony_ci   * Set the configuration parameters for location simulation.
85261847f8eSopenharmony_ci   *
85361847f8eSopenharmony_ci   * @param { LocationMockConfig } config - Indicates the configuration parameters for location simulation.
85461847f8eSopenharmony_ci   * Contains the array of locations and reporting intervals that need to be simulated.
85561847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
85661847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
85761847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.setMockedLocations} due to limited device capabilities.
85861847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
85961847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
86061847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
86161847f8eSopenharmony_ci   * @systemapi
86261847f8eSopenharmony_ci   * @since 9
86361847f8eSopenharmony_ci   */
86461847f8eSopenharmony_ci  function setMockedLocations(config: LocationMockConfig): void;
86561847f8eSopenharmony_ci
86661847f8eSopenharmony_ci  /**
86761847f8eSopenharmony_ci   * Enable the reverse geocoding simulation function.
86861847f8eSopenharmony_ci   *
86961847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
87061847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.enableReverseGeocodingMock} due to limited device capabilities.
87161847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
87261847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
87361847f8eSopenharmony_ci   * @systemapi
87461847f8eSopenharmony_ci   * @since 9
87561847f8eSopenharmony_ci   */
87661847f8eSopenharmony_ci  function enableReverseGeocodingMock(): void;
87761847f8eSopenharmony_ci
87861847f8eSopenharmony_ci  /**
87961847f8eSopenharmony_ci   * Disable the reverse geocoding simulation function.
88061847f8eSopenharmony_ci   *
88161847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
88261847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.disableReverseGeocodingMock} due to limited device capabilities.
88361847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
88461847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
88561847f8eSopenharmony_ci   * @systemapi
88661847f8eSopenharmony_ci   * @since 9
88761847f8eSopenharmony_ci   */
88861847f8eSopenharmony_ci  function disableReverseGeocodingMock(): void;
88961847f8eSopenharmony_ci
89061847f8eSopenharmony_ci  /**
89161847f8eSopenharmony_ci   * Set the configuration parameters for simulating reverse geocoding.
89261847f8eSopenharmony_ci   *
89361847f8eSopenharmony_ci   * @param { Array<ReverseGeocodingMockInfo> } mockInfos - Indicates the set of locations and place names to be simulated.
89461847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
89561847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
89661847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.setReverseGeocodingMockInfo} due to limited device capabilities.
89761847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
89861847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
89961847f8eSopenharmony_ci   * @systemapi
90061847f8eSopenharmony_ci   * @since 9
90161847f8eSopenharmony_ci   */
90261847f8eSopenharmony_ci  function setReverseGeocodingMockInfo(mockInfos: Array<ReverseGeocodingMockInfo>): void;
90361847f8eSopenharmony_ci
90461847f8eSopenharmony_ci  /**
90561847f8eSopenharmony_ci   * Querying location privacy protocol confirmation status.
90661847f8eSopenharmony_ci   *
90761847f8eSopenharmony_ci   * @param { LocationPrivacyType } type - Indicates location privacy protocol type.
90861847f8eSopenharmony_ci   * @returns { boolean } Returns {@code true} if the location privacy protocol has been confirmed, returns {@code false} otherwise.
90961847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
91061847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
91161847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.isLocationPrivacyConfirmed} due to limited device capabilities.
91261847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
91361847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
91461847f8eSopenharmony_ci   * @systemapi
91561847f8eSopenharmony_ci   * @since 9
91661847f8eSopenharmony_ci   */
91761847f8eSopenharmony_ci  function isLocationPrivacyConfirmed(type: LocationPrivacyType): boolean;
91861847f8eSopenharmony_ci
91961847f8eSopenharmony_ci  /**
92061847f8eSopenharmony_ci   * Set location privacy protocol confirmation status.
92161847f8eSopenharmony_ci   *
92261847f8eSopenharmony_ci   * @permission ohos.permission.MANAGE_SECURE_SETTINGS
92361847f8eSopenharmony_ci   * @param { LocationPrivacyType } type - Indicates location privacy protocol type.
92461847f8eSopenharmony_ci   * @param { boolean } isConfirmed - Indicates whether the location privacy protocol has been confirmed.
92561847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
92661847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
92761847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
92861847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.setLocationPrivacyConfirmStatus} due to limited device capabilities.
92961847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
93061847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
93161847f8eSopenharmony_ci   * @systemapi
93261847f8eSopenharmony_ci   * @since 9
93361847f8eSopenharmony_ci   */
93461847f8eSopenharmony_ci  function setLocationPrivacyConfirmStatus(type: LocationPrivacyType, isConfirmed: boolean): void;
93561847f8eSopenharmony_ci
93661847f8eSopenharmony_ci  /**
93761847f8eSopenharmony_ci   * Get WiFi/BT scanning information, and use the WiFi/BT scanning information for localization.
93861847f8eSopenharmony_ci   *
93961847f8eSopenharmony_ci   * @permission ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION
94061847f8eSopenharmony_ci   * @param { LocatingRequiredDataConfig } config - Indicates the request parameters for obtaining the data required for locating.
94161847f8eSopenharmony_ci   * @returns { Promise<Array<LocatingRequiredData>> } The promise returned by the function, for reporting WiFi/BT scan info.
94261847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
94361847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
94461847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
94561847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.getLocatingRequiredData} due to limited device capabilities.
94661847f8eSopenharmony_ci   * @throws { BusinessError } 3301800 - Failed to start WiFi or Bluetooth scanning.
94761847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
94861847f8eSopenharmony_ci   * @systemapi
94961847f8eSopenharmony_ci   * @since 10
95061847f8eSopenharmony_ci   */
95161847f8eSopenharmony_ci  function getLocatingRequiredData(config: LocatingRequiredDataConfig): Promise<Array<LocatingRequiredData>>;
95261847f8eSopenharmony_ci
95361847f8eSopenharmony_ci  /**
95461847f8eSopenharmony_ci   * Add a geofence.
95561847f8eSopenharmony_ci   *
95661847f8eSopenharmony_ci   * @permission ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION
95761847f8eSopenharmony_ci   * @param { GnssGeofenceRequest } fenceRequest - Indicates the Geofence configuration parameters.
95861847f8eSopenharmony_ci   * @returns { Promise<number> } The promise returned by the function, for reporting the ID of geofence.
95961847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
96061847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
96161847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.addGnssGeofence} due to limited device capabilities.
96261847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
96361847f8eSopenharmony_ci   * @throws { BusinessError } 3301100 - The location switch is off.
96461847f8eSopenharmony_ci   * @throws { BusinessError } 3301601 - The number of geofences exceeds the maximum.
96561847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Geofence
96661847f8eSopenharmony_ci   * @since 12
96761847f8eSopenharmony_ci   */
96861847f8eSopenharmony_ci  function addGnssGeofence(fenceRequest: GnssGeofenceRequest): Promise<number>;
96961847f8eSopenharmony_ci
97061847f8eSopenharmony_ci  /**
97161847f8eSopenharmony_ci   * Remove a geofence.
97261847f8eSopenharmony_ci   *
97361847f8eSopenharmony_ci   * @permission ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION
97461847f8eSopenharmony_ci   * @param { number } geofenceId - Indicates the ID of geofence.
97561847f8eSopenharmony_ci   * @returns { Promise<void> } The promise returned by the function.
97661847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
97761847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
97861847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.removeGnssGeofence} due to limited device capabilities.
97961847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
98061847f8eSopenharmony_ci   * @throws { BusinessError } 3301602 - Failed to delete a geofence due to an incorrect ID.
98161847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Geofence
98261847f8eSopenharmony_ci   * @since 12
98361847f8eSopenharmony_ci   */
98461847f8eSopenharmony_ci  function removeGnssGeofence(geofenceId: number): Promise<void>;
98561847f8eSopenharmony_ci
98661847f8eSopenharmony_ci  /**
98761847f8eSopenharmony_ci   * Obtains the coordinate system types supported by geofence.
98861847f8eSopenharmony_ci   *
98961847f8eSopenharmony_ci   * @returns { Array<CoordinateSystemType> } Return the coordinate system types supported by geofence.
99061847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.getGeofenceSupportedCoordTypes} due to limited device capabilities.
99161847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
99261847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Geofence
99361847f8eSopenharmony_ci   * @since 12
99461847f8eSopenharmony_ci   */
99561847f8eSopenharmony_ci  function getGeofenceSupportedCoordTypes(): Array<CoordinateSystemType>;
99661847f8eSopenharmony_ci
99761847f8eSopenharmony_ci  /**
99861847f8eSopenharmony_ci   * Get location icon status.
99961847f8eSopenharmony_ci   *
100061847f8eSopenharmony_ci   * @returns { LocationIconStatus } The location icon status.
100161847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
100261847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call ${geoLocationManager.getLocationIconStatus} due to limited device capabilities.
100361847f8eSopenharmony_ci   * @throws { BusinessError } 3301000 - The location service is unavailable.
100461847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
100561847f8eSopenharmony_ci   * @systemapi
100661847f8eSopenharmony_ci   * @since 12
100761847f8eSopenharmony_ci   */
100861847f8eSopenharmony_ci  function getLocationIconStatus(): LocationIconStatus;
100961847f8eSopenharmony_ci
101061847f8eSopenharmony_ci  /**
101161847f8eSopenharmony_ci   * Configuration parameters for simulating reverse geocoding.
101261847f8eSopenharmony_ci   *
101361847f8eSopenharmony_ci   * @typedef ReverseGeocodingMockInfo
101461847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
101561847f8eSopenharmony_ci   * @systemapi
101661847f8eSopenharmony_ci   * @since 9
101761847f8eSopenharmony_ci   */
101861847f8eSopenharmony_ci  export interface ReverseGeocodingMockInfo {
101961847f8eSopenharmony_ci    /**
102061847f8eSopenharmony_ci     * Location for which reverse geocoding query is required.
102161847f8eSopenharmony_ci     *
102261847f8eSopenharmony_ci     * @type { ReverseGeoCodeRequest }
102361847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
102461847f8eSopenharmony_ci     * @systemapi
102561847f8eSopenharmony_ci     * @since 9
102661847f8eSopenharmony_ci     */
102761847f8eSopenharmony_ci    location: ReverseGeoCodeRequest;
102861847f8eSopenharmony_ci
102961847f8eSopenharmony_ci    /**
103061847f8eSopenharmony_ci     * Actual address information corresponding to the location.
103161847f8eSopenharmony_ci     *
103261847f8eSopenharmony_ci     * @type { GeoAddress }
103361847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
103461847f8eSopenharmony_ci     * @systemapi
103561847f8eSopenharmony_ci     * @since 9
103661847f8eSopenharmony_ci     */
103761847f8eSopenharmony_ci    geoAddress: GeoAddress;
103861847f8eSopenharmony_ci  }
103961847f8eSopenharmony_ci
104061847f8eSopenharmony_ci  /**
104161847f8eSopenharmony_ci   * Parameters for configuring the location simulation function.
104261847f8eSopenharmony_ci   *
104361847f8eSopenharmony_ci   * @typedef LocationMockConfig
104461847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
104561847f8eSopenharmony_ci   * @systemapi
104661847f8eSopenharmony_ci   * @since 9
104761847f8eSopenharmony_ci   */
104861847f8eSopenharmony_ci  export interface LocationMockConfig {
104961847f8eSopenharmony_ci    /**
105061847f8eSopenharmony_ci     * Interval for reporting simulated locations.
105161847f8eSopenharmony_ci     *
105261847f8eSopenharmony_ci     * @type { number }
105361847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
105461847f8eSopenharmony_ci     * @systemapi
105561847f8eSopenharmony_ci     * @since 9
105661847f8eSopenharmony_ci     */
105761847f8eSopenharmony_ci    timeInterval: number;
105861847f8eSopenharmony_ci
105961847f8eSopenharmony_ci    /**
106061847f8eSopenharmony_ci     * Mock location array.
106161847f8eSopenharmony_ci     *
106261847f8eSopenharmony_ci     * @type { Array<Location> }
106361847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
106461847f8eSopenharmony_ci     * @systemapi
106561847f8eSopenharmony_ci     * @since 9
106661847f8eSopenharmony_ci     */
106761847f8eSopenharmony_ci    locations: Array<Location>;
106861847f8eSopenharmony_ci  }
106961847f8eSopenharmony_ci
107061847f8eSopenharmony_ci  /**
107161847f8eSopenharmony_ci   * Satellite status information.
107261847f8eSopenharmony_ci   *
107361847f8eSopenharmony_ci   * @typedef SatelliteStatusInfo
107461847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Gnss
107561847f8eSopenharmony_ci   * @since 9
107661847f8eSopenharmony_ci   */
107761847f8eSopenharmony_ci  export interface SatelliteStatusInfo {
107861847f8eSopenharmony_ci    /**
107961847f8eSopenharmony_ci     * Number of satellites.
108061847f8eSopenharmony_ci     *
108161847f8eSopenharmony_ci     * @type { number }
108261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
108361847f8eSopenharmony_ci     * @since 9
108461847f8eSopenharmony_ci     */
108561847f8eSopenharmony_ci    satellitesNumber: number;
108661847f8eSopenharmony_ci
108761847f8eSopenharmony_ci    /**
108861847f8eSopenharmony_ci     * Satellite ID array.
108961847f8eSopenharmony_ci     *
109061847f8eSopenharmony_ci     * @type { Array<number> }
109161847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
109261847f8eSopenharmony_ci     * @since 9
109361847f8eSopenharmony_ci     */
109461847f8eSopenharmony_ci    satelliteIds: Array<number>;
109561847f8eSopenharmony_ci
109661847f8eSopenharmony_ci    /**
109761847f8eSopenharmony_ci     * Carrier to noise density array.
109861847f8eSopenharmony_ci     *
109961847f8eSopenharmony_ci     * @type { Array<number> }
110061847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
110161847f8eSopenharmony_ci     * @since 9
110261847f8eSopenharmony_ci     */
110361847f8eSopenharmony_ci    carrierToNoiseDensitys: Array<number>;
110461847f8eSopenharmony_ci
110561847f8eSopenharmony_ci    /**
110661847f8eSopenharmony_ci     * Satellite altitude array.
110761847f8eSopenharmony_ci     *
110861847f8eSopenharmony_ci     * @type { Array<number> }
110961847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
111061847f8eSopenharmony_ci     * @since 9
111161847f8eSopenharmony_ci     */
111261847f8eSopenharmony_ci    altitudes: Array<number>;
111361847f8eSopenharmony_ci
111461847f8eSopenharmony_ci    /**
111561847f8eSopenharmony_ci     * Satellite azimuth array.
111661847f8eSopenharmony_ci     *
111761847f8eSopenharmony_ci     * @type { Array<number> }
111861847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
111961847f8eSopenharmony_ci     * @since 9
112061847f8eSopenharmony_ci     */
112161847f8eSopenharmony_ci    azimuths: Array<number>;
112261847f8eSopenharmony_ci
112361847f8eSopenharmony_ci    /**
112461847f8eSopenharmony_ci     * Satellite carrier frequency array.
112561847f8eSopenharmony_ci     *
112661847f8eSopenharmony_ci     * @type { Array<number> }
112761847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
112861847f8eSopenharmony_ci     * @since 9
112961847f8eSopenharmony_ci     */
113061847f8eSopenharmony_ci    carrierFrequencies: Array<number>;
113161847f8eSopenharmony_ci
113261847f8eSopenharmony_ci    /**
113361847f8eSopenharmony_ci     * Satellite constellation type array.
113461847f8eSopenharmony_ci     *
113561847f8eSopenharmony_ci     * @type { ?Array<SatelliteConstellationCategory> }
113661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
113761847f8eSopenharmony_ci     * @since 12
113861847f8eSopenharmony_ci     */
113961847f8eSopenharmony_ci    satelliteConstellation?: Array<SatelliteConstellationCategory>;
114061847f8eSopenharmony_ci
114161847f8eSopenharmony_ci    /**
114261847f8eSopenharmony_ci     * Satellite additional information array.
114361847f8eSopenharmony_ci     *
114461847f8eSopenharmony_ci     * @type { ?Array<number> }
114561847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
114661847f8eSopenharmony_ci     * @since 12
114761847f8eSopenharmony_ci     */
114861847f8eSopenharmony_ci    satelliteAdditionalInfo?: Array<number>;
114961847f8eSopenharmony_ci  }
115061847f8eSopenharmony_ci
115161847f8eSopenharmony_ci  /**
115261847f8eSopenharmony_ci   * Parameters for requesting to report cache location information.
115361847f8eSopenharmony_ci   *
115461847f8eSopenharmony_ci   * @typedef CachedGnssLocationsRequest
115561847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Gnss
115661847f8eSopenharmony_ci   * @since 9
115761847f8eSopenharmony_ci   */
115861847f8eSopenharmony_ci  export interface CachedGnssLocationsRequest {
115961847f8eSopenharmony_ci    /**
116061847f8eSopenharmony_ci     * GNSS cache location report period.
116161847f8eSopenharmony_ci     *
116261847f8eSopenharmony_ci     * @type { number }
116361847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
116461847f8eSopenharmony_ci     * @since 9
116561847f8eSopenharmony_ci     */
116661847f8eSopenharmony_ci    reportingPeriodSec: number;
116761847f8eSopenharmony_ci
116861847f8eSopenharmony_ci    /**
116961847f8eSopenharmony_ci     * Indicates whether to wake up the listener when the GNSS cache location queue is full.
117061847f8eSopenharmony_ci     *
117161847f8eSopenharmony_ci     * @type { boolean }
117261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
117361847f8eSopenharmony_ci     * @since 9
117461847f8eSopenharmony_ci     */
117561847f8eSopenharmony_ci    wakeUpCacheQueueFull: boolean;
117661847f8eSopenharmony_ci  }
117761847f8eSopenharmony_ci
117861847f8eSopenharmony_ci  /**
117961847f8eSopenharmony_ci   * Configuring parameters in GNSS geofence requests.
118061847f8eSopenharmony_ci   *
118161847f8eSopenharmony_ci   * @typedef GnssGeofenceRequest
118261847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Geofence
118361847f8eSopenharmony_ci   * @since 12
118461847f8eSopenharmony_ci   */
118561847f8eSopenharmony_ci  export interface GnssGeofenceRequest {
118661847f8eSopenharmony_ci    /**
118761847f8eSopenharmony_ci     * Circular fence information.
118861847f8eSopenharmony_ci     *
118961847f8eSopenharmony_ci     * @type { Geofence }
119061847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geofence
119161847f8eSopenharmony_ci     * @since 12
119261847f8eSopenharmony_ci     */
119361847f8eSopenharmony_ci    geofence: Geofence;
119461847f8eSopenharmony_ci
119561847f8eSopenharmony_ci    /**
119661847f8eSopenharmony_ci     * Indicates geofence transition status monitored.
119761847f8eSopenharmony_ci     *
119861847f8eSopenharmony_ci     * @type { Array<GeofenceTransitionEvent> }
119961847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geofence
120061847f8eSopenharmony_ci     * @since 12
120161847f8eSopenharmony_ci     */
120261847f8eSopenharmony_ci    monitorTransitionEvents: Array<GeofenceTransitionEvent>;
120361847f8eSopenharmony_ci
120461847f8eSopenharmony_ci    /**
120561847f8eSopenharmony_ci     * Indicates the geofence notifications to publish.
120661847f8eSopenharmony_ci     *
120761847f8eSopenharmony_ci     * @type { ?Array<NotificationRequest> }
120861847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geofence
120961847f8eSopenharmony_ci     * @since 12
121061847f8eSopenharmony_ci     */
121161847f8eSopenharmony_ci    notifications?: Array<NotificationRequest>;
121261847f8eSopenharmony_ci
121361847f8eSopenharmony_ci    /**
121461847f8eSopenharmony_ci     * Indicates the callback for reporting the geofence transition status.
121561847f8eSopenharmony_ci     *
121661847f8eSopenharmony_ci     * @type { AsyncCallback<GeofenceTransition> }
121761847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geofence
121861847f8eSopenharmony_ci     * @since 12
121961847f8eSopenharmony_ci     */
122061847f8eSopenharmony_ci    geofenceTransitionCallback: AsyncCallback<GeofenceTransition>;
122161847f8eSopenharmony_ci  }
122261847f8eSopenharmony_ci
122361847f8eSopenharmony_ci  /**
122461847f8eSopenharmony_ci   * Configuring parameters in geofence requests.
122561847f8eSopenharmony_ci   *
122661847f8eSopenharmony_ci   * @typedef GeofenceRequest
122761847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Geofence
122861847f8eSopenharmony_ci   * @since 9
122961847f8eSopenharmony_ci   */
123061847f8eSopenharmony_ci  export interface GeofenceRequest {
123161847f8eSopenharmony_ci    /**
123261847f8eSopenharmony_ci     * Indicate the user scenario.
123361847f8eSopenharmony_ci     *
123461847f8eSopenharmony_ci     * @type { LocationRequestScenario }
123561847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geofence
123661847f8eSopenharmony_ci     * @since 9
123761847f8eSopenharmony_ci     */
123861847f8eSopenharmony_ci    scenario: LocationRequestScenario;
123961847f8eSopenharmony_ci
124061847f8eSopenharmony_ci    /**
124161847f8eSopenharmony_ci     * Circular fence information.
124261847f8eSopenharmony_ci     *
124361847f8eSopenharmony_ci     * @type { Geofence }
124461847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geofence
124561847f8eSopenharmony_ci     * @since 9
124661847f8eSopenharmony_ci     */
124761847f8eSopenharmony_ci    geofence: Geofence;
124861847f8eSopenharmony_ci  }
124961847f8eSopenharmony_ci
125061847f8eSopenharmony_ci  /**
125161847f8eSopenharmony_ci   * Circular fence information.
125261847f8eSopenharmony_ci   *
125361847f8eSopenharmony_ci   * @typedef Geofence
125461847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Geofence
125561847f8eSopenharmony_ci   * @since 9
125661847f8eSopenharmony_ci   */
125761847f8eSopenharmony_ci  export interface Geofence {
125861847f8eSopenharmony_ci    /**
125961847f8eSopenharmony_ci     * Latitude of the center point of the circular fence.
126061847f8eSopenharmony_ci     *
126161847f8eSopenharmony_ci     * @type { number }
126261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geofence
126361847f8eSopenharmony_ci     * @since 9
126461847f8eSopenharmony_ci     */
126561847f8eSopenharmony_ci    latitude: number;
126661847f8eSopenharmony_ci
126761847f8eSopenharmony_ci    /**
126861847f8eSopenharmony_ci     * Longitude of the center point of the circular fence.
126961847f8eSopenharmony_ci     *
127061847f8eSopenharmony_ci     * @type { number }
127161847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geofence
127261847f8eSopenharmony_ci     * @since 9
127361847f8eSopenharmony_ci     */
127461847f8eSopenharmony_ci    longitude: number;
127561847f8eSopenharmony_ci
127661847f8eSopenharmony_ci    /**
127761847f8eSopenharmony_ci     * Coordinate system type.
127861847f8eSopenharmony_ci     *
127961847f8eSopenharmony_ci     * @type { ?CoordinateSystemType }
128061847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geofence
128161847f8eSopenharmony_ci     * @since 12
128261847f8eSopenharmony_ci     */
128361847f8eSopenharmony_ci    coordinateSystemType?: CoordinateSystemType;
128461847f8eSopenharmony_ci
128561847f8eSopenharmony_ci    /**
128661847f8eSopenharmony_ci     * Radius of the circular fence.
128761847f8eSopenharmony_ci     *
128861847f8eSopenharmony_ci     * @type { number }
128961847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geofence
129061847f8eSopenharmony_ci     * @since 9
129161847f8eSopenharmony_ci     */
129261847f8eSopenharmony_ci    radius: number;
129361847f8eSopenharmony_ci
129461847f8eSopenharmony_ci    /**
129561847f8eSopenharmony_ci     * Expiration of the circular fence.
129661847f8eSopenharmony_ci     *
129761847f8eSopenharmony_ci     * @type { number }
129861847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geofence
129961847f8eSopenharmony_ci     * @since 9
130061847f8eSopenharmony_ci     */
130161847f8eSopenharmony_ci    expiration: number;
130261847f8eSopenharmony_ci  }
130361847f8eSopenharmony_ci
130461847f8eSopenharmony_ci  /**
130561847f8eSopenharmony_ci   * Configuring parameters in reverse geocode requests.
130661847f8eSopenharmony_ci   *
130761847f8eSopenharmony_ci   * @typedef ReverseGeoCodeRequest
130861847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Geocoder
130961847f8eSopenharmony_ci   * @since 9
131061847f8eSopenharmony_ci   */
131161847f8eSopenharmony_ci  export interface ReverseGeoCodeRequest {
131261847f8eSopenharmony_ci    /**
131361847f8eSopenharmony_ci     * Indicates the language area information.
131461847f8eSopenharmony_ci     *
131561847f8eSopenharmony_ci     * @type { ?string }
131661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
131761847f8eSopenharmony_ci     * @since 9
131861847f8eSopenharmony_ci     */
131961847f8eSopenharmony_ci    locale?: string;
132061847f8eSopenharmony_ci
132161847f8eSopenharmony_ci    /**
132261847f8eSopenharmony_ci     * Indicates the country information.
132361847f8eSopenharmony_ci     *
132461847f8eSopenharmony_ci     * @type { ?string }
132561847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
132661847f8eSopenharmony_ci     * @since 12
132761847f8eSopenharmony_ci     */
132861847f8eSopenharmony_ci    country?: string;
132961847f8eSopenharmony_ci
133061847f8eSopenharmony_ci    /**
133161847f8eSopenharmony_ci     * Latitude for reverse geocoding query.
133261847f8eSopenharmony_ci     *
133361847f8eSopenharmony_ci     * @type { number }
133461847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
133561847f8eSopenharmony_ci     * @since 9
133661847f8eSopenharmony_ci     */
133761847f8eSopenharmony_ci    latitude: number;
133861847f8eSopenharmony_ci
133961847f8eSopenharmony_ci    /**
134061847f8eSopenharmony_ci     * Longitude for reverse geocoding query.
134161847f8eSopenharmony_ci     *
134261847f8eSopenharmony_ci     * @type { number }
134361847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
134461847f8eSopenharmony_ci     * @since 9
134561847f8eSopenharmony_ci     */
134661847f8eSopenharmony_ci    longitude: number;
134761847f8eSopenharmony_ci
134861847f8eSopenharmony_ci    /**
134961847f8eSopenharmony_ci     * Indicates the maximum number of addresses returned by reverse geocoding query.
135061847f8eSopenharmony_ci     *
135161847f8eSopenharmony_ci     * @type { ?number }
135261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
135361847f8eSopenharmony_ci     * @since 9
135461847f8eSopenharmony_ci     */
135561847f8eSopenharmony_ci    maxItems?: number;
135661847f8eSopenharmony_ci  }
135761847f8eSopenharmony_ci
135861847f8eSopenharmony_ci  /**
135961847f8eSopenharmony_ci   * Configuring parameters in geocode requests.
136061847f8eSopenharmony_ci   *
136161847f8eSopenharmony_ci   * @typedef GeoCodeRequest
136261847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Geocoder
136361847f8eSopenharmony_ci   * @since 9
136461847f8eSopenharmony_ci   */
136561847f8eSopenharmony_ci  export interface GeoCodeRequest {
136661847f8eSopenharmony_ci    /**
136761847f8eSopenharmony_ci     * Indicates the language area information.
136861847f8eSopenharmony_ci     *
136961847f8eSopenharmony_ci     * @type { ?string }
137061847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
137161847f8eSopenharmony_ci     * @since 9
137261847f8eSopenharmony_ci     */
137361847f8eSopenharmony_ci    locale?: string;
137461847f8eSopenharmony_ci
137561847f8eSopenharmony_ci    /**
137661847f8eSopenharmony_ci     * Indicates the country information.
137761847f8eSopenharmony_ci     *
137861847f8eSopenharmony_ci     * @type { ?string }
137961847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
138061847f8eSopenharmony_ci     * @since 12
138161847f8eSopenharmony_ci     */
138261847f8eSopenharmony_ci    country?: string;
138361847f8eSopenharmony_ci
138461847f8eSopenharmony_ci    /**
138561847f8eSopenharmony_ci     * Address information.
138661847f8eSopenharmony_ci     *
138761847f8eSopenharmony_ci     * @type { string }
138861847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
138961847f8eSopenharmony_ci     * @since 9
139061847f8eSopenharmony_ci     */
139161847f8eSopenharmony_ci    description: string;
139261847f8eSopenharmony_ci
139361847f8eSopenharmony_ci    /**
139461847f8eSopenharmony_ci     * Indicates the maximum number of geocode query results.
139561847f8eSopenharmony_ci     *
139661847f8eSopenharmony_ci     * @type { ?number }
139761847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
139861847f8eSopenharmony_ci     * @since 9
139961847f8eSopenharmony_ci     */
140061847f8eSopenharmony_ci    maxItems?: number;
140161847f8eSopenharmony_ci
140261847f8eSopenharmony_ci    /**
140361847f8eSopenharmony_ci     * Indicates the minimum latitude for geocoding query results.
140461847f8eSopenharmony_ci     *
140561847f8eSopenharmony_ci     * @type { ?number }
140661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
140761847f8eSopenharmony_ci     * @since 9
140861847f8eSopenharmony_ci     */
140961847f8eSopenharmony_ci    minLatitude?: number;
141061847f8eSopenharmony_ci
141161847f8eSopenharmony_ci    /**
141261847f8eSopenharmony_ci     * Indicates the minimum longitude for geocoding query results.
141361847f8eSopenharmony_ci     *
141461847f8eSopenharmony_ci     * @type { ?number }
141561847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
141661847f8eSopenharmony_ci     * @since 9
141761847f8eSopenharmony_ci     */
141861847f8eSopenharmony_ci    minLongitude?: number;
141961847f8eSopenharmony_ci
142061847f8eSopenharmony_ci    /**
142161847f8eSopenharmony_ci     * Indicates the maximum latitude for geocoding query results.
142261847f8eSopenharmony_ci     *
142361847f8eSopenharmony_ci     * @type { ?number }
142461847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
142561847f8eSopenharmony_ci     * @since 9
142661847f8eSopenharmony_ci     */
142761847f8eSopenharmony_ci    maxLatitude?: number;
142861847f8eSopenharmony_ci
142961847f8eSopenharmony_ci    /**
143061847f8eSopenharmony_ci     * Indicates the maximum longitude for geocoding query results.
143161847f8eSopenharmony_ci     *
143261847f8eSopenharmony_ci     * @type { ?number }
143361847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
143461847f8eSopenharmony_ci     * @since 9
143561847f8eSopenharmony_ci     */
143661847f8eSopenharmony_ci    maxLongitude?: number;
143761847f8eSopenharmony_ci  }
143861847f8eSopenharmony_ci
143961847f8eSopenharmony_ci  /**
144061847f8eSopenharmony_ci   * Data struct describes geographic locations.
144161847f8eSopenharmony_ci   *
144261847f8eSopenharmony_ci   * @typedef GeoAddress
144361847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Geocoder
144461847f8eSopenharmony_ci   * @since 9
144561847f8eSopenharmony_ci   */
144661847f8eSopenharmony_ci  export interface GeoAddress {
144761847f8eSopenharmony_ci    /**
144861847f8eSopenharmony_ci     * Indicates latitude information.
144961847f8eSopenharmony_ci     * A positive value indicates north latitude,
145061847f8eSopenharmony_ci     * and a negative value indicates south latitude.
145161847f8eSopenharmony_ci     *
145261847f8eSopenharmony_ci     * @type { ?number }
145361847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
145461847f8eSopenharmony_ci     * @since 9
145561847f8eSopenharmony_ci     */
145661847f8eSopenharmony_ci    latitude?: number;
145761847f8eSopenharmony_ci
145861847f8eSopenharmony_ci    /**
145961847f8eSopenharmony_ci     * Indicates longitude information.
146061847f8eSopenharmony_ci     * A positive value indicates east longitude ,
146161847f8eSopenharmony_ci     * and a negative value indicates west longitude.
146261847f8eSopenharmony_ci     *
146361847f8eSopenharmony_ci     * @type { ?number }
146461847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
146561847f8eSopenharmony_ci     * @since 9
146661847f8eSopenharmony_ci     */
146761847f8eSopenharmony_ci    longitude?: number;
146861847f8eSopenharmony_ci
146961847f8eSopenharmony_ci    /**
147061847f8eSopenharmony_ci     * Indicates language used for the location description.
147161847f8eSopenharmony_ci     * zh indicates Chinese, and en indicates English.
147261847f8eSopenharmony_ci     *
147361847f8eSopenharmony_ci     * @type { ?string }
147461847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
147561847f8eSopenharmony_ci     * @since 9
147661847f8eSopenharmony_ci     */
147761847f8eSopenharmony_ci    locale?: string;
147861847f8eSopenharmony_ci
147961847f8eSopenharmony_ci    /**
148061847f8eSopenharmony_ci     * Indicates detailed address information.
148161847f8eSopenharmony_ci     *
148261847f8eSopenharmony_ci     * @type { ?string }
148361847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
148461847f8eSopenharmony_ci     * @since 9
148561847f8eSopenharmony_ci     */
148661847f8eSopenharmony_ci    placeName?: string;
148761847f8eSopenharmony_ci
148861847f8eSopenharmony_ci    /**
148961847f8eSopenharmony_ci     * Indicates country code.
149061847f8eSopenharmony_ci     *
149161847f8eSopenharmony_ci     * @type { ?string }
149261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
149361847f8eSopenharmony_ci     * @since 9
149461847f8eSopenharmony_ci     */
149561847f8eSopenharmony_ci    countryCode?: string;
149661847f8eSopenharmony_ci
149761847f8eSopenharmony_ci    /**
149861847f8eSopenharmony_ci     * Indicates country name.
149961847f8eSopenharmony_ci     *
150061847f8eSopenharmony_ci     * @type { ?string }
150161847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
150261847f8eSopenharmony_ci     * @since 9
150361847f8eSopenharmony_ci     */
150461847f8eSopenharmony_ci    countryName?: string;
150561847f8eSopenharmony_ci
150661847f8eSopenharmony_ci    /**
150761847f8eSopenharmony_ci     * Indicates administrative region name.
150861847f8eSopenharmony_ci     *
150961847f8eSopenharmony_ci     * @type { ?string }
151061847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
151161847f8eSopenharmony_ci     * @since 9
151261847f8eSopenharmony_ci     */
151361847f8eSopenharmony_ci    administrativeArea?: string;
151461847f8eSopenharmony_ci
151561847f8eSopenharmony_ci    /**
151661847f8eSopenharmony_ci     * Indicates sub-administrative region name.
151761847f8eSopenharmony_ci     *
151861847f8eSopenharmony_ci     * @type { ?string }
151961847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
152061847f8eSopenharmony_ci     * @since 9
152161847f8eSopenharmony_ci     */
152261847f8eSopenharmony_ci    subAdministrativeArea?: string;
152361847f8eSopenharmony_ci
152461847f8eSopenharmony_ci    /**
152561847f8eSopenharmony_ci     * Indicates locality information.
152661847f8eSopenharmony_ci     *
152761847f8eSopenharmony_ci     * @type { ?string }
152861847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
152961847f8eSopenharmony_ci     * @since 9
153061847f8eSopenharmony_ci     */
153161847f8eSopenharmony_ci    locality?: string;
153261847f8eSopenharmony_ci
153361847f8eSopenharmony_ci    /**
153461847f8eSopenharmony_ci     * Indicates sub-locality information.
153561847f8eSopenharmony_ci     *
153661847f8eSopenharmony_ci     * @type { ?string }
153761847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
153861847f8eSopenharmony_ci     * @since 9
153961847f8eSopenharmony_ci     */
154061847f8eSopenharmony_ci    subLocality?: string;
154161847f8eSopenharmony_ci
154261847f8eSopenharmony_ci    /**
154361847f8eSopenharmony_ci     * Indicates road name.
154461847f8eSopenharmony_ci     *
154561847f8eSopenharmony_ci     * @type { ?string }
154661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
154761847f8eSopenharmony_ci     * @since 9
154861847f8eSopenharmony_ci     */
154961847f8eSopenharmony_ci    roadName?: string;
155061847f8eSopenharmony_ci
155161847f8eSopenharmony_ci    /**
155261847f8eSopenharmony_ci     * Indicates auxiliary road information.
155361847f8eSopenharmony_ci     *
155461847f8eSopenharmony_ci     * @type { ?string }
155561847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
155661847f8eSopenharmony_ci     * @since 9
155761847f8eSopenharmony_ci     */
155861847f8eSopenharmony_ci    subRoadName?: string;
155961847f8eSopenharmony_ci
156061847f8eSopenharmony_ci    /**
156161847f8eSopenharmony_ci     * Indicates house information.
156261847f8eSopenharmony_ci     *
156361847f8eSopenharmony_ci     * @type { ?string }
156461847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
156561847f8eSopenharmony_ci     * @since 9
156661847f8eSopenharmony_ci     */
156761847f8eSopenharmony_ci    premises?: string;
156861847f8eSopenharmony_ci
156961847f8eSopenharmony_ci    /**
157061847f8eSopenharmony_ci     * Indicates postal code.
157161847f8eSopenharmony_ci     *
157261847f8eSopenharmony_ci     * @type { ?string }
157361847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
157461847f8eSopenharmony_ci     * @since 9
157561847f8eSopenharmony_ci     */
157661847f8eSopenharmony_ci    postalCode?: string;
157761847f8eSopenharmony_ci
157861847f8eSopenharmony_ci    /**
157961847f8eSopenharmony_ci     * Indicates phone number.
158061847f8eSopenharmony_ci     *
158161847f8eSopenharmony_ci     * @type { ?string }
158261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
158361847f8eSopenharmony_ci     * @since 9
158461847f8eSopenharmony_ci     */
158561847f8eSopenharmony_ci    phoneNumber?: string;
158661847f8eSopenharmony_ci
158761847f8eSopenharmony_ci    /**
158861847f8eSopenharmony_ci     * Indicates website URL.
158961847f8eSopenharmony_ci     *
159061847f8eSopenharmony_ci     * @type { ?string }
159161847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
159261847f8eSopenharmony_ci     * @since 9
159361847f8eSopenharmony_ci     */
159461847f8eSopenharmony_ci    addressUrl?: string;
159561847f8eSopenharmony_ci
159661847f8eSopenharmony_ci    /**
159761847f8eSopenharmony_ci     * Indicates additional information.
159861847f8eSopenharmony_ci     *
159961847f8eSopenharmony_ci     * @type { ?Array<string> }
160061847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
160161847f8eSopenharmony_ci     * @since 9
160261847f8eSopenharmony_ci     */
160361847f8eSopenharmony_ci    descriptions?: Array<string>;
160461847f8eSopenharmony_ci
160561847f8eSopenharmony_ci    /**
160661847f8eSopenharmony_ci     * Indicates the amount of additional descriptive information.
160761847f8eSopenharmony_ci     *
160861847f8eSopenharmony_ci     * @type { ?number }
160961847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
161061847f8eSopenharmony_ci     * @since 9
161161847f8eSopenharmony_ci     */
161261847f8eSopenharmony_ci    descriptionsSize?: number;
161361847f8eSopenharmony_ci
161461847f8eSopenharmony_ci    /**
161561847f8eSopenharmony_ci     * Indicates whether it is an mock GeoAddress
161661847f8eSopenharmony_ci     *
161761847f8eSopenharmony_ci     * @type { ?Boolean }
161861847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geocoder
161961847f8eSopenharmony_ci     * @systemapi
162061847f8eSopenharmony_ci     * @since 9
162161847f8eSopenharmony_ci     */
162261847f8eSopenharmony_ci    isFromMock?: Boolean;
162361847f8eSopenharmony_ci  }
162461847f8eSopenharmony_ci
162561847f8eSopenharmony_ci  /**
162661847f8eSopenharmony_ci   * Configuring parameters in location requests.
162761847f8eSopenharmony_ci   *
162861847f8eSopenharmony_ci   * @typedef LocationRequest
162961847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
163061847f8eSopenharmony_ci   * @since 9
163161847f8eSopenharmony_ci   */
163261847f8eSopenharmony_ci  /**
163361847f8eSopenharmony_ci   * Configuring parameters in location requests.
163461847f8eSopenharmony_ci   *
163561847f8eSopenharmony_ci   * @typedef LocationRequest
163661847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
163761847f8eSopenharmony_ci   * @atomicservice
163861847f8eSopenharmony_ci   * @since 11
163961847f8eSopenharmony_ci   */
164061847f8eSopenharmony_ci  export interface LocationRequest {
164161847f8eSopenharmony_ci    /**
164261847f8eSopenharmony_ci     * Priority of the location request.
164361847f8eSopenharmony_ci     *
164461847f8eSopenharmony_ci     * @type { ?LocationRequestPriority }
164561847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
164661847f8eSopenharmony_ci     * @since 9
164761847f8eSopenharmony_ci     */
164861847f8eSopenharmony_ci    /**
164961847f8eSopenharmony_ci     * Priority of the location request.
165061847f8eSopenharmony_ci     *
165161847f8eSopenharmony_ci     * @type { ?LocationRequestPriority }
165261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
165361847f8eSopenharmony_ci     * @atomicservice
165461847f8eSopenharmony_ci     * @since 11
165561847f8eSopenharmony_ci     */
165661847f8eSopenharmony_ci    priority?: LocationRequestPriority;
165761847f8eSopenharmony_ci
165861847f8eSopenharmony_ci    /**
165961847f8eSopenharmony_ci     * User scenario of the location request.
166061847f8eSopenharmony_ci     *
166161847f8eSopenharmony_ci     * @type { ?LocationRequestScenario }
166261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
166361847f8eSopenharmony_ci     * @since 9
166461847f8eSopenharmony_ci     */
166561847f8eSopenharmony_ci    /**
166661847f8eSopenharmony_ci     * User scenario of the location request.
166761847f8eSopenharmony_ci     *
166861847f8eSopenharmony_ci     * @type { ?LocationRequestScenario }
166961847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
167061847f8eSopenharmony_ci     * @atomicservice
167161847f8eSopenharmony_ci     * @since 11
167261847f8eSopenharmony_ci     */
167361847f8eSopenharmony_ci    scenario?: LocationRequestScenario;
167461847f8eSopenharmony_ci
167561847f8eSopenharmony_ci    /**
167661847f8eSopenharmony_ci     * Location report interval.
167761847f8eSopenharmony_ci     *
167861847f8eSopenharmony_ci     * @type { ?number }
167961847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
168061847f8eSopenharmony_ci     * @since 9
168161847f8eSopenharmony_ci     */
168261847f8eSopenharmony_ci    /**
168361847f8eSopenharmony_ci     * Location report interval.
168461847f8eSopenharmony_ci     *
168561847f8eSopenharmony_ci     * @type { ?number }
168661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
168761847f8eSopenharmony_ci     * @atomicservice
168861847f8eSopenharmony_ci     * @since 11
168961847f8eSopenharmony_ci     */
169061847f8eSopenharmony_ci    timeInterval?: number;
169161847f8eSopenharmony_ci
169261847f8eSopenharmony_ci    /**
169361847f8eSopenharmony_ci     * Location report distance interval.
169461847f8eSopenharmony_ci     *
169561847f8eSopenharmony_ci     * @type { ?number }
169661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
169761847f8eSopenharmony_ci     * @since 9
169861847f8eSopenharmony_ci     */
169961847f8eSopenharmony_ci    /**
170061847f8eSopenharmony_ci     * Location report distance interval.
170161847f8eSopenharmony_ci     *
170261847f8eSopenharmony_ci     * @type { ?number }
170361847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
170461847f8eSopenharmony_ci     * @atomicservice
170561847f8eSopenharmony_ci     * @since 11
170661847f8eSopenharmony_ci     */
170761847f8eSopenharmony_ci    distanceInterval?: number;
170861847f8eSopenharmony_ci
170961847f8eSopenharmony_ci    /**
171061847f8eSopenharmony_ci     * Accuracy requirements for reporting locations.
171161847f8eSopenharmony_ci     *
171261847f8eSopenharmony_ci     * @type { ?number }
171361847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
171461847f8eSopenharmony_ci     * @since 9
171561847f8eSopenharmony_ci     */
171661847f8eSopenharmony_ci    /**
171761847f8eSopenharmony_ci     * Accuracy requirements for reporting locations.
171861847f8eSopenharmony_ci     *
171961847f8eSopenharmony_ci     * @type { ?number }
172061847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
172161847f8eSopenharmony_ci     * @atomicservice
172261847f8eSopenharmony_ci     * @since 11
172361847f8eSopenharmony_ci     */
172461847f8eSopenharmony_ci    maxAccuracy?: number;
172561847f8eSopenharmony_ci  }
172661847f8eSopenharmony_ci
172761847f8eSopenharmony_ci  /**
172861847f8eSopenharmony_ci   * Configuring parameters in current location requests.
172961847f8eSopenharmony_ci   *
173061847f8eSopenharmony_ci   * @typedef CurrentLocationRequest
173161847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
173261847f8eSopenharmony_ci   * @since 9
173361847f8eSopenharmony_ci   */
173461847f8eSopenharmony_ci  /**
173561847f8eSopenharmony_ci   * Configuring parameters in current location requests.
173661847f8eSopenharmony_ci   *
173761847f8eSopenharmony_ci   * @typedef CurrentLocationRequest
173861847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
173961847f8eSopenharmony_ci   * @atomicservice
174061847f8eSopenharmony_ci   * @since 11
174161847f8eSopenharmony_ci   */
174261847f8eSopenharmony_ci  export interface CurrentLocationRequest {
174361847f8eSopenharmony_ci    /**
174461847f8eSopenharmony_ci     * Priority of the location request.
174561847f8eSopenharmony_ci     *
174661847f8eSopenharmony_ci     * @type { ?LocationRequestPriority }
174761847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
174861847f8eSopenharmony_ci     * @since 9
174961847f8eSopenharmony_ci     */
175061847f8eSopenharmony_ci    /**
175161847f8eSopenharmony_ci     * Priority of the location request.
175261847f8eSopenharmony_ci     *
175361847f8eSopenharmony_ci     * @type { ?LocationRequestPriority }
175461847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
175561847f8eSopenharmony_ci     * @atomicservice
175661847f8eSopenharmony_ci     * @since 11
175761847f8eSopenharmony_ci     */
175861847f8eSopenharmony_ci    priority?: LocationRequestPriority;
175961847f8eSopenharmony_ci
176061847f8eSopenharmony_ci    /**
176161847f8eSopenharmony_ci     * User scenario of the location request.
176261847f8eSopenharmony_ci     *
176361847f8eSopenharmony_ci     * @type { ?LocationRequestScenario }
176461847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
176561847f8eSopenharmony_ci     * @since 9
176661847f8eSopenharmony_ci     */
176761847f8eSopenharmony_ci    /**
176861847f8eSopenharmony_ci     * User scenario of the location request.
176961847f8eSopenharmony_ci     *
177061847f8eSopenharmony_ci     * @type { ?LocationRequestScenario }
177161847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
177261847f8eSopenharmony_ci     * @atomicservice
177361847f8eSopenharmony_ci     * @since 11
177461847f8eSopenharmony_ci     */
177561847f8eSopenharmony_ci    scenario?: LocationRequestScenario;
177661847f8eSopenharmony_ci
177761847f8eSopenharmony_ci    /**
177861847f8eSopenharmony_ci     * Accuracy requirements for reporting locations.
177961847f8eSopenharmony_ci     *
178061847f8eSopenharmony_ci     * @type { ?number }
178161847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
178261847f8eSopenharmony_ci     * @since 9
178361847f8eSopenharmony_ci     */
178461847f8eSopenharmony_ci    /**
178561847f8eSopenharmony_ci     * Accuracy requirements for reporting locations.
178661847f8eSopenharmony_ci     *
178761847f8eSopenharmony_ci     * @type { ?number }
178861847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
178961847f8eSopenharmony_ci     * @atomicservice
179061847f8eSopenharmony_ci     * @since 11
179161847f8eSopenharmony_ci     */
179261847f8eSopenharmony_ci    maxAccuracy?: number;
179361847f8eSopenharmony_ci
179461847f8eSopenharmony_ci    /**
179561847f8eSopenharmony_ci     * Timeout interval of a single location request.
179661847f8eSopenharmony_ci     *
179761847f8eSopenharmony_ci     * @type { ?number }
179861847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
179961847f8eSopenharmony_ci     * @since 9
180061847f8eSopenharmony_ci     */
180161847f8eSopenharmony_ci    /**
180261847f8eSopenharmony_ci     * Timeout interval of a single location request.
180361847f8eSopenharmony_ci     *
180461847f8eSopenharmony_ci     * @type { ?number }
180561847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
180661847f8eSopenharmony_ci     * @atomicservice
180761847f8eSopenharmony_ci     * @since 11
180861847f8eSopenharmony_ci     */
180961847f8eSopenharmony_ci    timeoutMs?: number;
181061847f8eSopenharmony_ci  }
181161847f8eSopenharmony_ci
181261847f8eSopenharmony_ci  /**
181361847f8eSopenharmony_ci   * Geofence transition status.
181461847f8eSopenharmony_ci   *
181561847f8eSopenharmony_ci   * @typedef GeofenceTransition
181661847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Geofence
181761847f8eSopenharmony_ci   * @since 12
181861847f8eSopenharmony_ci   */
181961847f8eSopenharmony_ci  export interface GeofenceTransition {
182061847f8eSopenharmony_ci    /**
182161847f8eSopenharmony_ci     * ID of the geofence.
182261847f8eSopenharmony_ci     *
182361847f8eSopenharmony_ci     * @type { number }
182461847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geofence
182561847f8eSopenharmony_ci     * @since 12
182661847f8eSopenharmony_ci     */
182761847f8eSopenharmony_ci    geofenceId: number;
182861847f8eSopenharmony_ci
182961847f8eSopenharmony_ci    /**
183061847f8eSopenharmony_ci     * Indicates the geofence transition status.
183161847f8eSopenharmony_ci     *
183261847f8eSopenharmony_ci     * @type { GeofenceTransitionEvent }
183361847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geofence
183461847f8eSopenharmony_ci     * @since 12
183561847f8eSopenharmony_ci     */
183661847f8eSopenharmony_ci    transitionEvent: GeofenceTransitionEvent;
183761847f8eSopenharmony_ci  }
183861847f8eSopenharmony_ci
183961847f8eSopenharmony_ci  /**
184061847f8eSopenharmony_ci   * Configuring parameters in continuous location requests.
184161847f8eSopenharmony_ci   *
184261847f8eSopenharmony_ci   * @typedef ContinuousLocationRequest
184361847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
184461847f8eSopenharmony_ci   * @atomicservice
184561847f8eSopenharmony_ci   * @since 12
184661847f8eSopenharmony_ci   */
184761847f8eSopenharmony_ci  export interface ContinuousLocationRequest {
184861847f8eSopenharmony_ci    /**
184961847f8eSopenharmony_ci     * Location report interval, in seconds.
185061847f8eSopenharmony_ci     *
185161847f8eSopenharmony_ci     * @type { number }
185261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
185361847f8eSopenharmony_ci     * @atomicservice
185461847f8eSopenharmony_ci     * @since 12
185561847f8eSopenharmony_ci     */
185661847f8eSopenharmony_ci    interval: number;
185761847f8eSopenharmony_ci
185861847f8eSopenharmony_ci    /**
185961847f8eSopenharmony_ci     * Location scenario. You can select a user activity scenario or power consumption scenario.
186061847f8eSopenharmony_ci     *
186161847f8eSopenharmony_ci     * @type { UserActivityScenario | PowerConsumptionScenario }
186261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
186361847f8eSopenharmony_ci     * @atomicservice
186461847f8eSopenharmony_ci     * @since 12
186561847f8eSopenharmony_ci     */
186661847f8eSopenharmony_ci    locationScenario: UserActivityScenario | PowerConsumptionScenario;
186761847f8eSopenharmony_ci  }
186861847f8eSopenharmony_ci
186961847f8eSopenharmony_ci  /**
187061847f8eSopenharmony_ci   * Configuring parameters in single location requests.
187161847f8eSopenharmony_ci   *
187261847f8eSopenharmony_ci   * @typedef SingleLocationRequest
187361847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
187461847f8eSopenharmony_ci   * @atomicservice
187561847f8eSopenharmony_ci   * @since 12
187661847f8eSopenharmony_ci   */
187761847f8eSopenharmony_ci  export interface SingleLocationRequest {
187861847f8eSopenharmony_ci    /**
187961847f8eSopenharmony_ci     * Priority of the location request.
188061847f8eSopenharmony_ci     *
188161847f8eSopenharmony_ci     * @type { LocatingPriority }
188261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
188361847f8eSopenharmony_ci     * @atomicservice
188461847f8eSopenharmony_ci     * @since 12
188561847f8eSopenharmony_ci     */
188661847f8eSopenharmony_ci    locatingPriority: LocatingPriority;
188761847f8eSopenharmony_ci
188861847f8eSopenharmony_ci    /**
188961847f8eSopenharmony_ci     * Timeout of a single location request, in milliseconds.
189061847f8eSopenharmony_ci     *
189161847f8eSopenharmony_ci     * @type { number }
189261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
189361847f8eSopenharmony_ci     * @atomicservice
189461847f8eSopenharmony_ci     * @since 12
189561847f8eSopenharmony_ci     */
189661847f8eSopenharmony_ci    locatingTimeoutMs: number;
189761847f8eSopenharmony_ci  }
189861847f8eSopenharmony_ci
189961847f8eSopenharmony_ci  /**
190061847f8eSopenharmony_ci   * Provides information about geographic locations.
190161847f8eSopenharmony_ci   *
190261847f8eSopenharmony_ci   * @typedef Location
190361847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
190461847f8eSopenharmony_ci   * @since 9
190561847f8eSopenharmony_ci   */
190661847f8eSopenharmony_ci  /**
190761847f8eSopenharmony_ci   * Provides information about geographic locations.
190861847f8eSopenharmony_ci   *
190961847f8eSopenharmony_ci   * @typedef Location
191061847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
191161847f8eSopenharmony_ci   * @atomicservice
191261847f8eSopenharmony_ci   * @since 11
191361847f8eSopenharmony_ci   */
191461847f8eSopenharmony_ci  export interface Location {
191561847f8eSopenharmony_ci    /**
191661847f8eSopenharmony_ci     * Indicates latitude information.
191761847f8eSopenharmony_ci     * A positive value indicates north latitude,
191861847f8eSopenharmony_ci     * and a negative value indicates south latitude.
191961847f8eSopenharmony_ci     *
192061847f8eSopenharmony_ci     * @type { number }
192161847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
192261847f8eSopenharmony_ci     * @since 9
192361847f8eSopenharmony_ci     */
192461847f8eSopenharmony_ci    /**
192561847f8eSopenharmony_ci     * Indicates latitude information.
192661847f8eSopenharmony_ci     * A positive value indicates north latitude,
192761847f8eSopenharmony_ci     * and a negative value indicates south latitude.
192861847f8eSopenharmony_ci     *
192961847f8eSopenharmony_ci     * @type { number }
193061847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
193161847f8eSopenharmony_ci     * @atomicservice
193261847f8eSopenharmony_ci     * @since 11
193361847f8eSopenharmony_ci     */
193461847f8eSopenharmony_ci    latitude: number;
193561847f8eSopenharmony_ci
193661847f8eSopenharmony_ci    /**
193761847f8eSopenharmony_ci     * Indicates Longitude information.
193861847f8eSopenharmony_ci     * A positive value indicates east longitude ,
193961847f8eSopenharmony_ci     * and a negative value indicates west longitude.
194061847f8eSopenharmony_ci     *
194161847f8eSopenharmony_ci     * @type { number }
194261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
194361847f8eSopenharmony_ci     * @since 9
194461847f8eSopenharmony_ci     */
194561847f8eSopenharmony_ci    /**
194661847f8eSopenharmony_ci     * Indicates Longitude information.
194761847f8eSopenharmony_ci     * A positive value indicates east longitude ,
194861847f8eSopenharmony_ci     * and a negative value indicates west longitude.
194961847f8eSopenharmony_ci     *
195061847f8eSopenharmony_ci     * @type { number }
195161847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
195261847f8eSopenharmony_ci     * @atomicservice
195361847f8eSopenharmony_ci     * @since 11
195461847f8eSopenharmony_ci     */
195561847f8eSopenharmony_ci    longitude: number;
195661847f8eSopenharmony_ci
195761847f8eSopenharmony_ci    /**
195861847f8eSopenharmony_ci     * Indicates location altitude, in meters.
195961847f8eSopenharmony_ci     *
196061847f8eSopenharmony_ci     * @type { number }
196161847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
196261847f8eSopenharmony_ci     * @since 9
196361847f8eSopenharmony_ci     */
196461847f8eSopenharmony_ci    /**
196561847f8eSopenharmony_ci     * Indicates location altitude, in meters.
196661847f8eSopenharmony_ci     *
196761847f8eSopenharmony_ci     * @type { number }
196861847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
196961847f8eSopenharmony_ci     * @atomicservice
197061847f8eSopenharmony_ci     * @since 11
197161847f8eSopenharmony_ci     */
197261847f8eSopenharmony_ci    altitude: number;
197361847f8eSopenharmony_ci
197461847f8eSopenharmony_ci    /**
197561847f8eSopenharmony_ci     * Indicates location accuracy, in meters.
197661847f8eSopenharmony_ci     *
197761847f8eSopenharmony_ci     * @type { number }
197861847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
197961847f8eSopenharmony_ci     * @since 9
198061847f8eSopenharmony_ci     */
198161847f8eSopenharmony_ci    /**
198261847f8eSopenharmony_ci     * Indicates location accuracy, in meters.
198361847f8eSopenharmony_ci     *
198461847f8eSopenharmony_ci     * @type { number }
198561847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
198661847f8eSopenharmony_ci     * @atomicservice
198761847f8eSopenharmony_ci     * @since 11
198861847f8eSopenharmony_ci     */
198961847f8eSopenharmony_ci    accuracy: number;
199061847f8eSopenharmony_ci
199161847f8eSopenharmony_ci    /**
199261847f8eSopenharmony_ci     * Indicates speed, in m/s.
199361847f8eSopenharmony_ci     *
199461847f8eSopenharmony_ci     * @type { number }
199561847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
199661847f8eSopenharmony_ci     * @since 9
199761847f8eSopenharmony_ci     */
199861847f8eSopenharmony_ci    /**
199961847f8eSopenharmony_ci     * Indicates speed, in m/s.
200061847f8eSopenharmony_ci     *
200161847f8eSopenharmony_ci     * @type { number }
200261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
200361847f8eSopenharmony_ci     * @atomicservice
200461847f8eSopenharmony_ci     * @since 11
200561847f8eSopenharmony_ci     */
200661847f8eSopenharmony_ci    speed: number;
200761847f8eSopenharmony_ci
200861847f8eSopenharmony_ci    /**
200961847f8eSopenharmony_ci     * Indicates location timestamp in the UTC format.
201061847f8eSopenharmony_ci     *
201161847f8eSopenharmony_ci     * @type { number }
201261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
201361847f8eSopenharmony_ci     * @since 9
201461847f8eSopenharmony_ci     */
201561847f8eSopenharmony_ci    /**
201661847f8eSopenharmony_ci     * Indicates location timestamp in the UTC format.
201761847f8eSopenharmony_ci     *
201861847f8eSopenharmony_ci     * @type { number }
201961847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
202061847f8eSopenharmony_ci     * @atomicservice
202161847f8eSopenharmony_ci     * @since 11
202261847f8eSopenharmony_ci     */
202361847f8eSopenharmony_ci    timeStamp: number;
202461847f8eSopenharmony_ci
202561847f8eSopenharmony_ci    /**
202661847f8eSopenharmony_ci     * Indicates direction information.
202761847f8eSopenharmony_ci     *
202861847f8eSopenharmony_ci     * @type { number }
202961847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
203061847f8eSopenharmony_ci     * @since 9
203161847f8eSopenharmony_ci     */
203261847f8eSopenharmony_ci    /**
203361847f8eSopenharmony_ci     * Indicates direction information.
203461847f8eSopenharmony_ci     *
203561847f8eSopenharmony_ci     * @type { number }
203661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
203761847f8eSopenharmony_ci     * @atomicservice
203861847f8eSopenharmony_ci     * @since 11
203961847f8eSopenharmony_ci     */
204061847f8eSopenharmony_ci    direction: number;
204161847f8eSopenharmony_ci
204261847f8eSopenharmony_ci    /**
204361847f8eSopenharmony_ci     * Indicates location timestamp since boot.
204461847f8eSopenharmony_ci     *
204561847f8eSopenharmony_ci     * @type { number }
204661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
204761847f8eSopenharmony_ci     * @since 9
204861847f8eSopenharmony_ci     */
204961847f8eSopenharmony_ci    /**
205061847f8eSopenharmony_ci     * Indicates location timestamp since boot.
205161847f8eSopenharmony_ci     *
205261847f8eSopenharmony_ci     * @type { number }
205361847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
205461847f8eSopenharmony_ci     * @atomicservice
205561847f8eSopenharmony_ci     * @since 11
205661847f8eSopenharmony_ci     */
205761847f8eSopenharmony_ci    timeSinceBoot: number;
205861847f8eSopenharmony_ci
205961847f8eSopenharmony_ci    /**
206061847f8eSopenharmony_ci     * Indicates additional information.
206161847f8eSopenharmony_ci     *
206261847f8eSopenharmony_ci     * @type { ?Array<string> }
206361847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
206461847f8eSopenharmony_ci     * @since 9
206561847f8eSopenharmony_ci     */
206661847f8eSopenharmony_ci    /**
206761847f8eSopenharmony_ci     * Indicates additional information.
206861847f8eSopenharmony_ci     *
206961847f8eSopenharmony_ci     * @type { ?Array<string> }
207061847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
207161847f8eSopenharmony_ci     * @atomicservice
207261847f8eSopenharmony_ci     * @since 11
207361847f8eSopenharmony_ci     */
207461847f8eSopenharmony_ci    additions?: Array<string>;
207561847f8eSopenharmony_ci
207661847f8eSopenharmony_ci    /**
207761847f8eSopenharmony_ci     * Indicates additional information map.
207861847f8eSopenharmony_ci     *
207961847f8eSopenharmony_ci     * @type { ?Map<string, string> }
208061847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
208161847f8eSopenharmony_ci     * @atomicservice
208261847f8eSopenharmony_ci     * @since 12
208361847f8eSopenharmony_ci     */
208461847f8eSopenharmony_ci    additionsMap?: Map<string, string>;
208561847f8eSopenharmony_ci
208661847f8eSopenharmony_ci    /**
208761847f8eSopenharmony_ci     * Indicates the amount of additional descriptive information.
208861847f8eSopenharmony_ci     *
208961847f8eSopenharmony_ci     * @type { ?number }
209061847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
209161847f8eSopenharmony_ci     * @since 9
209261847f8eSopenharmony_ci     */
209361847f8eSopenharmony_ci    /**
209461847f8eSopenharmony_ci     * Indicates the amount of additional descriptive information.
209561847f8eSopenharmony_ci     *
209661847f8eSopenharmony_ci     * @type { ?number }
209761847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
209861847f8eSopenharmony_ci     * @atomicservice
209961847f8eSopenharmony_ci     * @since 11
210061847f8eSopenharmony_ci     */
210161847f8eSopenharmony_ci    additionSize?: number;
210261847f8eSopenharmony_ci
210361847f8eSopenharmony_ci    /**
210461847f8eSopenharmony_ci     * Indicates whether it is an mock location.
210561847f8eSopenharmony_ci     *
210661847f8eSopenharmony_ci     * @type { ?Boolean }
210761847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
210861847f8eSopenharmony_ci     * @systemapi
210961847f8eSopenharmony_ci     * @since 9
211061847f8eSopenharmony_ci     */
211161847f8eSopenharmony_ci    isFromMock?: Boolean;
211261847f8eSopenharmony_ci
211361847f8eSopenharmony_ci    /**
211461847f8eSopenharmony_ci     * Indicates vertical position accuracy in meters.
211561847f8eSopenharmony_ci     *
211661847f8eSopenharmony_ci     * @type { ?number }
211761847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
211861847f8eSopenharmony_ci     * @atomicservice
211961847f8eSopenharmony_ci     * @since 12
212061847f8eSopenharmony_ci     */
212161847f8eSopenharmony_ci    altitudeAccuracy?: number;
212261847f8eSopenharmony_ci
212361847f8eSopenharmony_ci    /**
212461847f8eSopenharmony_ci     * Indicates speed accuracy in meter per seconds.
212561847f8eSopenharmony_ci     *
212661847f8eSopenharmony_ci     * @type { ?number }
212761847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
212861847f8eSopenharmony_ci     * @atomicservice
212961847f8eSopenharmony_ci     * @since 12
213061847f8eSopenharmony_ci     */
213161847f8eSopenharmony_ci    speedAccuracy?: number;
213261847f8eSopenharmony_ci
213361847f8eSopenharmony_ci    /**
213461847f8eSopenharmony_ci     * Indicates direction accuracy in degrees.
213561847f8eSopenharmony_ci     *
213661847f8eSopenharmony_ci     * @type { ?number }
213761847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
213861847f8eSopenharmony_ci     * @atomicservice
213961847f8eSopenharmony_ci     * @since 12
214061847f8eSopenharmony_ci     */
214161847f8eSopenharmony_ci    directionAccuracy?: number;
214261847f8eSopenharmony_ci
214361847f8eSopenharmony_ci    /**
214461847f8eSopenharmony_ci     * Time uncertainty Of timeSinceBoot in nanosecond.
214561847f8eSopenharmony_ci     *
214661847f8eSopenharmony_ci     * @type { ?number }
214761847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
214861847f8eSopenharmony_ci     * @atomicservice
214961847f8eSopenharmony_ci     * @since 12
215061847f8eSopenharmony_ci     */
215161847f8eSopenharmony_ci    uncertaintyOfTimeSinceBoot?: number;
215261847f8eSopenharmony_ci
215361847f8eSopenharmony_ci    /**
215461847f8eSopenharmony_ci     * Indicates the source of the location.
215561847f8eSopenharmony_ci     *
215661847f8eSopenharmony_ci     * @type { ?LocationSourceType }
215761847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
215861847f8eSopenharmony_ci     * @atomicservice
215961847f8eSopenharmony_ci     * @since 12
216061847f8eSopenharmony_ci     */
216161847f8eSopenharmony_ci    sourceType?: LocationSourceType;
216261847f8eSopenharmony_ci  }
216361847f8eSopenharmony_ci
216461847f8eSopenharmony_ci  /**
216561847f8eSopenharmony_ci   * Describes the request parameters for obtaining the data required for locating.
216661847f8eSopenharmony_ci   * @typedef LocatingRequiredDataConfig
216761847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
216861847f8eSopenharmony_ci   * @systemapi
216961847f8eSopenharmony_ci   * @since 10
217061847f8eSopenharmony_ci   */
217161847f8eSopenharmony_ci  export interface LocatingRequiredDataConfig {
217261847f8eSopenharmony_ci    /**
217361847f8eSopenharmony_ci     * Indicates the type of locating required data.
217461847f8eSopenharmony_ci     *
217561847f8eSopenharmony_ci     * @type {LocatingRequiredDataType}
217661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
217761847f8eSopenharmony_ci     * @systemapi
217861847f8eSopenharmony_ci     * @since 10
217961847f8eSopenharmony_ci     */
218061847f8eSopenharmony_ci    type: LocatingRequiredDataType;
218161847f8eSopenharmony_ci
218261847f8eSopenharmony_ci    /**
218361847f8eSopenharmony_ci     * Indicates whether to start scanning.
218461847f8eSopenharmony_ci     *
218561847f8eSopenharmony_ci     * @type {boolean}
218661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
218761847f8eSopenharmony_ci     * @systemapi
218861847f8eSopenharmony_ci     * @since 10
218961847f8eSopenharmony_ci     */
219061847f8eSopenharmony_ci    needStartScan: boolean;
219161847f8eSopenharmony_ci
219261847f8eSopenharmony_ci    /**
219361847f8eSopenharmony_ci     * Indicates the interval between scans. The unit is millisecond.
219461847f8eSopenharmony_ci     * This parameter needs to be set only when scanning information is continuously monitored.
219561847f8eSopenharmony_ci     *
219661847f8eSopenharmony_ci     * @type {?number}
219761847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
219861847f8eSopenharmony_ci     * @systemapi
219961847f8eSopenharmony_ci     * @since 10
220061847f8eSopenharmony_ci     */
220161847f8eSopenharmony_ci    scanInterval?: number;
220261847f8eSopenharmony_ci
220361847f8eSopenharmony_ci    /**
220461847f8eSopenharmony_ci     * Indicates the timeout period of a single scan. The unit is millisecond. The default value is 10000.
220561847f8eSopenharmony_ci     * This parameter needs to be set only when getLocatingRequiredData is used.
220661847f8eSopenharmony_ci     *
220761847f8eSopenharmony_ci     * @type {?number}
220861847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
220961847f8eSopenharmony_ci     * @systemapi
221061847f8eSopenharmony_ci     * @since 10
221161847f8eSopenharmony_ci     */
221261847f8eSopenharmony_ci    scanTimeout?: number;
221361847f8eSopenharmony_ci  }
221461847f8eSopenharmony_ci
221561847f8eSopenharmony_ci  /**
221661847f8eSopenharmony_ci   * Describes the structure of the data required for locating.
221761847f8eSopenharmony_ci   * @typedef LocatingRequiredData
221861847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
221961847f8eSopenharmony_ci   * @systemapi
222061847f8eSopenharmony_ci   * @since 10
222161847f8eSopenharmony_ci   */
222261847f8eSopenharmony_ci  export interface LocatingRequiredData {
222361847f8eSopenharmony_ci    /**
222461847f8eSopenharmony_ci     * WiFi scan info.
222561847f8eSopenharmony_ci     *
222661847f8eSopenharmony_ci     * @type {?WifiScanInfo}
222761847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
222861847f8eSopenharmony_ci     * @systemapi
222961847f8eSopenharmony_ci     * @since 10
223061847f8eSopenharmony_ci     */
223161847f8eSopenharmony_ci    wifiData?: WifiScanInfo;
223261847f8eSopenharmony_ci
223361847f8eSopenharmony_ci    /**
223461847f8eSopenharmony_ci     * Bluetooth scan info.
223561847f8eSopenharmony_ci     *
223661847f8eSopenharmony_ci     * @type {?BluetoothScanInfo}
223761847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
223861847f8eSopenharmony_ci     * @systemapi
223961847f8eSopenharmony_ci     * @since 10
224061847f8eSopenharmony_ci     */
224161847f8eSopenharmony_ci    bluetoothData?: BluetoothScanInfo;
224261847f8eSopenharmony_ci  }
224361847f8eSopenharmony_ci
224461847f8eSopenharmony_ci  /**
224561847f8eSopenharmony_ci   * Describes the scanned WiFi information.
224661847f8eSopenharmony_ci   * @typedef WifiScanInfo
224761847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
224861847f8eSopenharmony_ci   * @systemapi
224961847f8eSopenharmony_ci   * @since 10
225061847f8eSopenharmony_ci   */
225161847f8eSopenharmony_ci  export interface WifiScanInfo {
225261847f8eSopenharmony_ci    /**
225361847f8eSopenharmony_ci     * WiFi SSID: the maximum length is 32.
225461847f8eSopenharmony_ci     *
225561847f8eSopenharmony_ci     * @type {string}
225661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
225761847f8eSopenharmony_ci     * @systemapi
225861847f8eSopenharmony_ci     * @since 10
225961847f8eSopenharmony_ci     */
226061847f8eSopenharmony_ci    ssid: string;
226161847f8eSopenharmony_ci
226261847f8eSopenharmony_ci    /**
226361847f8eSopenharmony_ci     * WiFi bssid(MAC): the length is 6.
226461847f8eSopenharmony_ci     *
226561847f8eSopenharmony_ci     * @type {string}
226661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
226761847f8eSopenharmony_ci     * @systemapi
226861847f8eSopenharmony_ci     * @since 10
226961847f8eSopenharmony_ci     */
227061847f8eSopenharmony_ci    bssid: string;
227161847f8eSopenharmony_ci
227261847f8eSopenharmony_ci    /**
227361847f8eSopenharmony_ci     * Received signal strength indicator (RSSI).
227461847f8eSopenharmony_ci     *
227561847f8eSopenharmony_ci     * @type {number}
227661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
227761847f8eSopenharmony_ci     * @systemapi
227861847f8eSopenharmony_ci     * @since 10
227961847f8eSopenharmony_ci     */
228061847f8eSopenharmony_ci    rssi: number;
228161847f8eSopenharmony_ci
228261847f8eSopenharmony_ci    /**
228361847f8eSopenharmony_ci     * Frequency
228461847f8eSopenharmony_ci     *
228561847f8eSopenharmony_ci     * @type {number}
228661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
228761847f8eSopenharmony_ci     * @systemapi
228861847f8eSopenharmony_ci     * @since 10
228961847f8eSopenharmony_ci     */
229061847f8eSopenharmony_ci    frequency: number;
229161847f8eSopenharmony_ci
229261847f8eSopenharmony_ci    /**
229361847f8eSopenharmony_ci     * Time stamp.
229461847f8eSopenharmony_ci     *
229561847f8eSopenharmony_ci     * @type {number}
229661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
229761847f8eSopenharmony_ci     * @systemapi
229861847f8eSopenharmony_ci     * @since 10
229961847f8eSopenharmony_ci     */
230061847f8eSopenharmony_ci    timestamp: number;
230161847f8eSopenharmony_ci  }
230261847f8eSopenharmony_ci
230361847f8eSopenharmony_ci  /**
230461847f8eSopenharmony_ci   * Describes the contents of the Bluetooth scan results.
230561847f8eSopenharmony_ci   *
230661847f8eSopenharmony_ci   * @typedef BluetoothScanInfo
230761847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
230861847f8eSopenharmony_ci   * @systemapi
230961847f8eSopenharmony_ci   * @since 10
231061847f8eSopenharmony_ci   */
231161847f8eSopenharmony_ci  export interface BluetoothScanInfo {
231261847f8eSopenharmony_ci    /**
231361847f8eSopenharmony_ci     * The local name of the device.
231461847f8eSopenharmony_ci     *
231561847f8eSopenharmony_ci     * @type {string}
231661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
231761847f8eSopenharmony_ci     * @systemapi
231861847f8eSopenharmony_ci     * @since 10
231961847f8eSopenharmony_ci     */
232061847f8eSopenharmony_ci    deviceName: string;
232161847f8eSopenharmony_ci
232261847f8eSopenharmony_ci    /**
232361847f8eSopenharmony_ci     * Mac address of the scanned device.
232461847f8eSopenharmony_ci     *
232561847f8eSopenharmony_ci     * @type {string}
232661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
232761847f8eSopenharmony_ci     * @systemapi
232861847f8eSopenharmony_ci     * @since 10
232961847f8eSopenharmony_ci     */
233061847f8eSopenharmony_ci    macAddress: string;
233161847f8eSopenharmony_ci
233261847f8eSopenharmony_ci    /**
233361847f8eSopenharmony_ci     * RSSI of the remote device.
233461847f8eSopenharmony_ci     *
233561847f8eSopenharmony_ci     * @type {number}
233661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
233761847f8eSopenharmony_ci     * @systemapi
233861847f8eSopenharmony_ci     * @since 10
233961847f8eSopenharmony_ci     */
234061847f8eSopenharmony_ci    rssi: number;
234161847f8eSopenharmony_ci
234261847f8eSopenharmony_ci    /**
234361847f8eSopenharmony_ci     * Time stamp.
234461847f8eSopenharmony_ci     *
234561847f8eSopenharmony_ci     * @type {number}
234661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
234761847f8eSopenharmony_ci     * @systemapi
234861847f8eSopenharmony_ci     * @since 10
234961847f8eSopenharmony_ci     */
235061847f8eSopenharmony_ci    timestamp: number;
235161847f8eSopenharmony_ci  }
235261847f8eSopenharmony_ci
235361847f8eSopenharmony_ci  /**
235461847f8eSopenharmony_ci   * Enum for the source of the location.
235561847f8eSopenharmony_ci   *
235661847f8eSopenharmony_ci   * @enum { number }
235761847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
235861847f8eSopenharmony_ci   * @atomicservice
235961847f8eSopenharmony_ci   * @since 12
236061847f8eSopenharmony_ci   */
236161847f8eSopenharmony_ci  export enum LocationSourceType {
236261847f8eSopenharmony_ci    /**
236361847f8eSopenharmony_ci     * The location is obtained from the GNSS.
236461847f8eSopenharmony_ci     *
236561847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
236661847f8eSopenharmony_ci     * @atomicservice
236761847f8eSopenharmony_ci     * @since 12
236861847f8eSopenharmony_ci     */
236961847f8eSopenharmony_ci    GNSS = 1,
237061847f8eSopenharmony_ci
237161847f8eSopenharmony_ci    /**
237261847f8eSopenharmony_ci     * The location comes from the network positioning technology.
237361847f8eSopenharmony_ci     *
237461847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
237561847f8eSopenharmony_ci     * @atomicservice
237661847f8eSopenharmony_ci     * @since 12
237761847f8eSopenharmony_ci     */
237861847f8eSopenharmony_ci    NETWORK = 2,
237961847f8eSopenharmony_ci
238061847f8eSopenharmony_ci    /**
238161847f8eSopenharmony_ci     * The location comes from the indoor positioning technology.
238261847f8eSopenharmony_ci     *
238361847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
238461847f8eSopenharmony_ci     * @atomicservice
238561847f8eSopenharmony_ci     * @since 12
238661847f8eSopenharmony_ci     */
238761847f8eSopenharmony_ci    INDOOR = 3,
238861847f8eSopenharmony_ci
238961847f8eSopenharmony_ci    /**
239061847f8eSopenharmony_ci     * The location comes from the GNSS RTK technology.
239161847f8eSopenharmony_ci     *
239261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
239361847f8eSopenharmony_ci     * @atomicservice
239461847f8eSopenharmony_ci     * @since 12
239561847f8eSopenharmony_ci     */
239661847f8eSopenharmony_ci    RTK = 4
239761847f8eSopenharmony_ci  }
239861847f8eSopenharmony_ci
239961847f8eSopenharmony_ci  /**
240061847f8eSopenharmony_ci   * Enum for coordinate system type.
240161847f8eSopenharmony_ci   *
240261847f8eSopenharmony_ci   * @enum { number }
240361847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Geofence
240461847f8eSopenharmony_ci   * @since 12
240561847f8eSopenharmony_ci   */
240661847f8eSopenharmony_ci  export enum CoordinateSystemType {
240761847f8eSopenharmony_ci    /**
240861847f8eSopenharmony_ci     * WGS84 coordinates system.
240961847f8eSopenharmony_ci     *
241061847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geofence
241161847f8eSopenharmony_ci     * @since 12
241261847f8eSopenharmony_ci     */
241361847f8eSopenharmony_ci    WGS84 = 1,
241461847f8eSopenharmony_ci
241561847f8eSopenharmony_ci    /**
241661847f8eSopenharmony_ci     * GCJ-02 coordinates system.
241761847f8eSopenharmony_ci     *
241861847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geofence
241961847f8eSopenharmony_ci     * @since 12
242061847f8eSopenharmony_ci     */
242161847f8eSopenharmony_ci    GCJ02 = 2
242261847f8eSopenharmony_ci  }
242361847f8eSopenharmony_ci
242461847f8eSopenharmony_ci  /**
242561847f8eSopenharmony_ci   * Enum for location icon status.
242661847f8eSopenharmony_ci   *
242761847f8eSopenharmony_ci   * @enum { number }
242861847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
242961847f8eSopenharmony_ci   * @systemapi
243061847f8eSopenharmony_ci   * @since 12
243161847f8eSopenharmony_ci   */
243261847f8eSopenharmony_ci  export enum LocationIconStatus {
243361847f8eSopenharmony_ci    /**
243461847f8eSopenharmony_ci     * The locating service is not started.
243561847f8eSopenharmony_ci     *
243661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
243761847f8eSopenharmony_ci     * @systemapi
243861847f8eSopenharmony_ci     * @since 12
243961847f8eSopenharmony_ci     */
244061847f8eSopenharmony_ci    LOCATING_NOT_STARTED = 0,
244161847f8eSopenharmony_ci
244261847f8eSopenharmony_ci    /**
244361847f8eSopenharmony_ci     * The normal locating service is started.
244461847f8eSopenharmony_ci     *
244561847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
244661847f8eSopenharmony_ci     * @systemapi
244761847f8eSopenharmony_ci     * @since 12
244861847f8eSopenharmony_ci     */
244961847f8eSopenharmony_ci    LOCATING_STARTED = 1,
245061847f8eSopenharmony_ci
245161847f8eSopenharmony_ci    /**
245261847f8eSopenharmony_ci     * The HD locating service(RTK) is started.
245361847f8eSopenharmony_ci     *
245461847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
245561847f8eSopenharmony_ci     * @systemapi
245661847f8eSopenharmony_ci     * @since 12
245761847f8eSopenharmony_ci     */
245861847f8eSopenharmony_ci    HD_LOCATING_STARTED = 2
245961847f8eSopenharmony_ci  }
246061847f8eSopenharmony_ci
246161847f8eSopenharmony_ci  /**
246261847f8eSopenharmony_ci   * Enum for location error code.
246361847f8eSopenharmony_ci   *
246461847f8eSopenharmony_ci   * @enum { number }
246561847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
246661847f8eSopenharmony_ci   * @atomicservice
246761847f8eSopenharmony_ci   * @since 12
246861847f8eSopenharmony_ci   */
246961847f8eSopenharmony_ci  export enum LocationError {
247061847f8eSopenharmony_ci    /**
247161847f8eSopenharmony_ci     * Default cause for location failure.
247261847f8eSopenharmony_ci     *
247361847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
247461847f8eSopenharmony_ci     * @atomicservice
247561847f8eSopenharmony_ci     * @since 12
247661847f8eSopenharmony_ci     */
247761847f8eSopenharmony_ci    LOCATING_FAILED_DEFAULT = -1,
247861847f8eSopenharmony_ci
247961847f8eSopenharmony_ci    /**
248061847f8eSopenharmony_ci     * Locating failed because the location permission fails to be verified.
248161847f8eSopenharmony_ci     *
248261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
248361847f8eSopenharmony_ci     * @atomicservice
248461847f8eSopenharmony_ci     * @since 12
248561847f8eSopenharmony_ci     */
248661847f8eSopenharmony_ci    LOCATING_FAILED_LOCATION_PERMISSION_DENIED = -2,
248761847f8eSopenharmony_ci
248861847f8eSopenharmony_ci    /**
248961847f8eSopenharmony_ci     * Locating failed because the app is in the background and the background location permission verification failed.
249061847f8eSopenharmony_ci     *
249161847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
249261847f8eSopenharmony_ci     * @atomicservice
249361847f8eSopenharmony_ci     * @since 12
249461847f8eSopenharmony_ci     */
249561847f8eSopenharmony_ci    LOCATING_FAILED_BACKGROUND_PERMISSION_DENIED = -3,
249661847f8eSopenharmony_ci
249761847f8eSopenharmony_ci    /**
249861847f8eSopenharmony_ci     * Locating failed because the location switch is turned off.
249961847f8eSopenharmony_ci     *
250061847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
250161847f8eSopenharmony_ci     * @atomicservice
250261847f8eSopenharmony_ci     * @since 12
250361847f8eSopenharmony_ci     */
250461847f8eSopenharmony_ci    LOCATING_FAILED_LOCATION_SWITCH_OFF = -4,
250561847f8eSopenharmony_ci
250661847f8eSopenharmony_ci    /**
250761847f8eSopenharmony_ci     * Locating failed because internet access failure.
250861847f8eSopenharmony_ci     *
250961847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
251061847f8eSopenharmony_ci     * @atomicservice
251161847f8eSopenharmony_ci     * @since 12
251261847f8eSopenharmony_ci     */
251361847f8eSopenharmony_ci    LOCATING_FAILED_INTERNET_ACCESS_FAILURE = -5
251461847f8eSopenharmony_ci  }
251561847f8eSopenharmony_ci
251661847f8eSopenharmony_ci  /**
251761847f8eSopenharmony_ci   * Enum for geofence transition status.
251861847f8eSopenharmony_ci   *
251961847f8eSopenharmony_ci   * @enum { number }
252061847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Geofence
252161847f8eSopenharmony_ci   * @since 12
252261847f8eSopenharmony_ci   */
252361847f8eSopenharmony_ci  export enum GeofenceTransitionEvent {
252461847f8eSopenharmony_ci    /**
252561847f8eSopenharmony_ci     * The device is within the geofence.
252661847f8eSopenharmony_ci     *
252761847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geofence
252861847f8eSopenharmony_ci     * @since 12
252961847f8eSopenharmony_ci     */
253061847f8eSopenharmony_ci    GEOFENCE_TRANSITION_EVENT_ENTER = 1,
253161847f8eSopenharmony_ci
253261847f8eSopenharmony_ci    /**
253361847f8eSopenharmony_ci     * The device is out of the geofence.
253461847f8eSopenharmony_ci     *
253561847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geofence
253661847f8eSopenharmony_ci     * @since 12
253761847f8eSopenharmony_ci     */
253861847f8eSopenharmony_ci    GEOFENCE_TRANSITION_EVENT_EXIT = 2,
253961847f8eSopenharmony_ci
254061847f8eSopenharmony_ci    /**
254161847f8eSopenharmony_ci     * The device is in the geographical fence for a period of time.
254261847f8eSopenharmony_ci     *
254361847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Geofence
254461847f8eSopenharmony_ci     * @since 12
254561847f8eSopenharmony_ci     */
254661847f8eSopenharmony_ci    GEOFENCE_TRANSITION_EVENT_DWELL = 4
254761847f8eSopenharmony_ci  }
254861847f8eSopenharmony_ci
254961847f8eSopenharmony_ci  /**
255061847f8eSopenharmony_ci   * Enum for satellite constellation category.
255161847f8eSopenharmony_ci   *
255261847f8eSopenharmony_ci   * @enum { number }
255361847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Gnss
255461847f8eSopenharmony_ci   * @since 12
255561847f8eSopenharmony_ci   */
255661847f8eSopenharmony_ci  export enum SatelliteConstellationCategory {
255761847f8eSopenharmony_ci    /**
255861847f8eSopenharmony_ci     * Invalid value.
255961847f8eSopenharmony_ci     *
256061847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
256161847f8eSopenharmony_ci     * @since 12
256261847f8eSopenharmony_ci     */
256361847f8eSopenharmony_ci    CONSTELLATION_CATEGORY_UNKNOWN = 0,
256461847f8eSopenharmony_ci
256561847f8eSopenharmony_ci    /**
256661847f8eSopenharmony_ci     * GPS.
256761847f8eSopenharmony_ci     *
256861847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
256961847f8eSopenharmony_ci     * @since 12
257061847f8eSopenharmony_ci     */
257161847f8eSopenharmony_ci    CONSTELLATION_CATEGORY_GPS = 1,
257261847f8eSopenharmony_ci
257361847f8eSopenharmony_ci    /**
257461847f8eSopenharmony_ci     * SBAS.
257561847f8eSopenharmony_ci     *
257661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
257761847f8eSopenharmony_ci     * @since 12
257861847f8eSopenharmony_ci     */
257961847f8eSopenharmony_ci    CONSTELLATION_CATEGORY_SBAS = 2,
258061847f8eSopenharmony_ci
258161847f8eSopenharmony_ci    /**
258261847f8eSopenharmony_ci     * GLONASS.
258361847f8eSopenharmony_ci     *
258461847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
258561847f8eSopenharmony_ci     * @since 12
258661847f8eSopenharmony_ci     */
258761847f8eSopenharmony_ci    CONSTELLATION_CATEGORY_GLONASS = 3,
258861847f8eSopenharmony_ci
258961847f8eSopenharmony_ci    /**
259061847f8eSopenharmony_ci     * QZSS.
259161847f8eSopenharmony_ci     *
259261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
259361847f8eSopenharmony_ci     * @since 12
259461847f8eSopenharmony_ci     */
259561847f8eSopenharmony_ci    CONSTELLATION_CATEGORY_QZSS = 4,
259661847f8eSopenharmony_ci
259761847f8eSopenharmony_ci    /**
259861847f8eSopenharmony_ci     * BEIDOU.
259961847f8eSopenharmony_ci     *
260061847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
260161847f8eSopenharmony_ci     * @since 12
260261847f8eSopenharmony_ci     */
260361847f8eSopenharmony_ci    CONSTELLATION_CATEGORY_BEIDOU = 5,
260461847f8eSopenharmony_ci
260561847f8eSopenharmony_ci    /**
260661847f8eSopenharmony_ci     * GALILEO.
260761847f8eSopenharmony_ci     *
260861847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
260961847f8eSopenharmony_ci     * @since 12
261061847f8eSopenharmony_ci     */
261161847f8eSopenharmony_ci    CONSTELLATION_CATEGORY_GALILEO = 6,
261261847f8eSopenharmony_ci
261361847f8eSopenharmony_ci    /**
261461847f8eSopenharmony_ci     * IRNSS.
261561847f8eSopenharmony_ci     *
261661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
261761847f8eSopenharmony_ci     * @since 12
261861847f8eSopenharmony_ci     */
261961847f8eSopenharmony_ci    CONSTELLATION_CATEGORY_IRNSS = 7
262061847f8eSopenharmony_ci  }
262161847f8eSopenharmony_ci
262261847f8eSopenharmony_ci  /**
262361847f8eSopenharmony_ci   * Enum for satellite additional information.
262461847f8eSopenharmony_ci   *
262561847f8eSopenharmony_ci   * @enum { number }
262661847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Gnss
262761847f8eSopenharmony_ci   * @since 12
262861847f8eSopenharmony_ci   */
262961847f8eSopenharmony_ci  export enum SatelliteAdditionalInfo {
263061847f8eSopenharmony_ci    /**
263161847f8eSopenharmony_ci     * Default value.
263261847f8eSopenharmony_ci     *
263361847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
263461847f8eSopenharmony_ci     * @since 12
263561847f8eSopenharmony_ci     */
263661847f8eSopenharmony_ci    SATELLITES_ADDITIONAL_INFO_NULL = 0,
263761847f8eSopenharmony_ci
263861847f8eSopenharmony_ci    /**
263961847f8eSopenharmony_ci     * Ephemeris data exist.
264061847f8eSopenharmony_ci     *
264161847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
264261847f8eSopenharmony_ci     * @since 12
264361847f8eSopenharmony_ci     */
264461847f8eSopenharmony_ci    SATELLITES_ADDITIONAL_INFO_EPHEMERIS_DATA_EXIST = 1,
264561847f8eSopenharmony_ci
264661847f8eSopenharmony_ci    /**
264761847f8eSopenharmony_ci     * Almanac data exist.
264861847f8eSopenharmony_ci     *
264961847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
265061847f8eSopenharmony_ci     * @since 12
265161847f8eSopenharmony_ci     */
265261847f8eSopenharmony_ci    SATELLITES_ADDITIONAL_INFO_ALMANAC_DATA_EXIST = 2,
265361847f8eSopenharmony_ci
265461847f8eSopenharmony_ci    /**
265561847f8eSopenharmony_ci     * This satellite is being used in location fix.
265661847f8eSopenharmony_ci     *
265761847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
265861847f8eSopenharmony_ci     * @since 12
265961847f8eSopenharmony_ci     */
266061847f8eSopenharmony_ci    SATELLITES_ADDITIONAL_INFO_USED_IN_FIX = 4,
266161847f8eSopenharmony_ci
266261847f8eSopenharmony_ci    /**
266361847f8eSopenharmony_ci     * Carrier frequency exist.
266461847f8eSopenharmony_ci     *
266561847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Gnss
266661847f8eSopenharmony_ci     * @since 12
266761847f8eSopenharmony_ci     */
266861847f8eSopenharmony_ci    SATELLITES_ADDITIONAL_INFO_CARRIER_FREQUENCY_EXIST = 8
266961847f8eSopenharmony_ci  }
267061847f8eSopenharmony_ci
267161847f8eSopenharmony_ci  /**
267261847f8eSopenharmony_ci   * Enum for user activity scenario.
267361847f8eSopenharmony_ci   *
267461847f8eSopenharmony_ci   * @enum { number }
267561847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
267661847f8eSopenharmony_ci   * @atomicservice
267761847f8eSopenharmony_ci   * @since 12
267861847f8eSopenharmony_ci   */
267961847f8eSopenharmony_ci  export enum UserActivityScenario {
268061847f8eSopenharmony_ci    /**
268161847f8eSopenharmony_ci     * Navigation scenario. High positioning precision and real-time performance are required.
268261847f8eSopenharmony_ci     *
268361847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
268461847f8eSopenharmony_ci     * @atomicservice
268561847f8eSopenharmony_ci     * @since 12
268661847f8eSopenharmony_ci     */
268761847f8eSopenharmony_ci    NAVIGATION = 0x401,
268861847f8eSopenharmony_ci
268961847f8eSopenharmony_ci    /**
269061847f8eSopenharmony_ci     * Sport scenario. High positioning precision is required.
269161847f8eSopenharmony_ci     *
269261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
269361847f8eSopenharmony_ci     * @atomicservice
269461847f8eSopenharmony_ci     * @since 12
269561847f8eSopenharmony_ci     */
269661847f8eSopenharmony_ci    SPORT = 0x402,
269761847f8eSopenharmony_ci
269861847f8eSopenharmony_ci    /**
269961847f8eSopenharmony_ci     * Transport scenario. High positioning precision and real-time performance are required.
270061847f8eSopenharmony_ci     *
270161847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
270261847f8eSopenharmony_ci     * @atomicservice
270361847f8eSopenharmony_ci     * @since 12
270461847f8eSopenharmony_ci     */
270561847f8eSopenharmony_ci    TRANSPORT = 0x403,
270661847f8eSopenharmony_ci
270761847f8eSopenharmony_ci    /**
270861847f8eSopenharmony_ci     * Daily life scenarios. Low requirements on positioning precision.
270961847f8eSopenharmony_ci     *
271061847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
271161847f8eSopenharmony_ci     * @atomicservice
271261847f8eSopenharmony_ci     * @since 12
271361847f8eSopenharmony_ci     */
271461847f8eSopenharmony_ci    DAILY_LIFE_SERVICE = 0x404
271561847f8eSopenharmony_ci  }
271661847f8eSopenharmony_ci
271761847f8eSopenharmony_ci  /**
271861847f8eSopenharmony_ci   * Enum for locating priority.
271961847f8eSopenharmony_ci   *
272061847f8eSopenharmony_ci   * @enum { number }
272161847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
272261847f8eSopenharmony_ci   * @atomicservice
272361847f8eSopenharmony_ci   * @since 12
272461847f8eSopenharmony_ci   */
272561847f8eSopenharmony_ci  export enum LocatingPriority {
272661847f8eSopenharmony_ci    /**
272761847f8eSopenharmony_ci     * Preferentially ensure the highest locating accuracy.
272861847f8eSopenharmony_ci     *
272961847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
273061847f8eSopenharmony_ci     * @atomicservice
273161847f8eSopenharmony_ci     * @since 12
273261847f8eSopenharmony_ci     */
273361847f8eSopenharmony_ci    PRIORITY_ACCURACY = 0x501,
273461847f8eSopenharmony_ci
273561847f8eSopenharmony_ci    /**
273661847f8eSopenharmony_ci     * Preferentially ensure the fastest locating speed.
273761847f8eSopenharmony_ci     *
273861847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
273961847f8eSopenharmony_ci     * @atomicservice
274061847f8eSopenharmony_ci     * @since 12
274161847f8eSopenharmony_ci     */
274261847f8eSopenharmony_ci    PRIORITY_LOCATING_SPEED = 0x502
274361847f8eSopenharmony_ci  }
274461847f8eSopenharmony_ci
274561847f8eSopenharmony_ci  /**
274661847f8eSopenharmony_ci   * Enum for location priority.
274761847f8eSopenharmony_ci   *
274861847f8eSopenharmony_ci   * @enum { number }
274961847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
275061847f8eSopenharmony_ci   * @since 9
275161847f8eSopenharmony_ci   */
275261847f8eSopenharmony_ci  /**
275361847f8eSopenharmony_ci   * Enum for location priority.
275461847f8eSopenharmony_ci   *
275561847f8eSopenharmony_ci   * @enum { number }
275661847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
275761847f8eSopenharmony_ci   * @atomicservice
275861847f8eSopenharmony_ci   * @since 11
275961847f8eSopenharmony_ci   */
276061847f8eSopenharmony_ci  export enum LocationRequestPriority {
276161847f8eSopenharmony_ci    /**
276261847f8eSopenharmony_ci     * Default priority.
276361847f8eSopenharmony_ci     *
276461847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
276561847f8eSopenharmony_ci     * @since 9
276661847f8eSopenharmony_ci     */
276761847f8eSopenharmony_ci    /**
276861847f8eSopenharmony_ci     * Default priority.
276961847f8eSopenharmony_ci     *
277061847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
277161847f8eSopenharmony_ci     * @atomicservice
277261847f8eSopenharmony_ci     * @since 11
277361847f8eSopenharmony_ci     */
277461847f8eSopenharmony_ci    UNSET = 0x200,
277561847f8eSopenharmony_ci
277661847f8eSopenharmony_ci    /**
277761847f8eSopenharmony_ci     * Preferentially ensure the locating accuracy.
277861847f8eSopenharmony_ci     *
277961847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
278061847f8eSopenharmony_ci     * @since 9
278161847f8eSopenharmony_ci     */
278261847f8eSopenharmony_ci    /**
278361847f8eSopenharmony_ci     * Preferentially ensure the locating accuracy.
278461847f8eSopenharmony_ci     *
278561847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
278661847f8eSopenharmony_ci     * @atomicservice
278761847f8eSopenharmony_ci     * @since 11
278861847f8eSopenharmony_ci     */
278961847f8eSopenharmony_ci    ACCURACY,
279061847f8eSopenharmony_ci
279161847f8eSopenharmony_ci    /**
279261847f8eSopenharmony_ci     * Preferentially ensure low power consumption for locating.
279361847f8eSopenharmony_ci     *
279461847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
279561847f8eSopenharmony_ci     * @since 9
279661847f8eSopenharmony_ci     */
279761847f8eSopenharmony_ci    /**
279861847f8eSopenharmony_ci     * Preferentially ensure low power consumption for locating.
279961847f8eSopenharmony_ci     *
280061847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
280161847f8eSopenharmony_ci     * @atomicservice
280261847f8eSopenharmony_ci     * @since 11
280361847f8eSopenharmony_ci     */
280461847f8eSopenharmony_ci    LOW_POWER,
280561847f8eSopenharmony_ci
280661847f8eSopenharmony_ci    /**
280761847f8eSopenharmony_ci     * Preferentially ensure that the first location is time-consuming.
280861847f8eSopenharmony_ci     *
280961847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
281061847f8eSopenharmony_ci     * @since 9
281161847f8eSopenharmony_ci     */
281261847f8eSopenharmony_ci    /**
281361847f8eSopenharmony_ci     * Preferentially ensure that the first location is time-consuming.
281461847f8eSopenharmony_ci     *
281561847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
281661847f8eSopenharmony_ci     * @atomicservice
281761847f8eSopenharmony_ci     * @since 11
281861847f8eSopenharmony_ci     */
281961847f8eSopenharmony_ci    FIRST_FIX
282061847f8eSopenharmony_ci  }
282161847f8eSopenharmony_ci
282261847f8eSopenharmony_ci  /**
282361847f8eSopenharmony_ci   * Enum for location scenario.
282461847f8eSopenharmony_ci   *
282561847f8eSopenharmony_ci   * @enum { number }
282661847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
282761847f8eSopenharmony_ci   * @since 9
282861847f8eSopenharmony_ci   */
282961847f8eSopenharmony_ci  /**
283061847f8eSopenharmony_ci   * Enum for location scenario.
283161847f8eSopenharmony_ci   *
283261847f8eSopenharmony_ci   * @enum { number }
283361847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
283461847f8eSopenharmony_ci   * @atomicservice
283561847f8eSopenharmony_ci   * @since 11
283661847f8eSopenharmony_ci   */
283761847f8eSopenharmony_ci  export enum LocationRequestScenario {
283861847f8eSopenharmony_ci    /**
283961847f8eSopenharmony_ci     * Default scenario.
284061847f8eSopenharmony_ci     *
284161847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
284261847f8eSopenharmony_ci     * @since 9
284361847f8eSopenharmony_ci     */
284461847f8eSopenharmony_ci    /**
284561847f8eSopenharmony_ci     * Default scenario.
284661847f8eSopenharmony_ci     *
284761847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
284861847f8eSopenharmony_ci     * @atomicservice
284961847f8eSopenharmony_ci     * @since 11
285061847f8eSopenharmony_ci     */
285161847f8eSopenharmony_ci    UNSET = 0x300,
285261847f8eSopenharmony_ci
285361847f8eSopenharmony_ci    /**
285461847f8eSopenharmony_ci     * Navigation scenario. High positioning precision and real-time performance are required.
285561847f8eSopenharmony_ci     *
285661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
285761847f8eSopenharmony_ci     * @since 9
285861847f8eSopenharmony_ci     */
285961847f8eSopenharmony_ci    /**
286061847f8eSopenharmony_ci     * Navigation scenario. High positioning precision and real-time performance are required.
286161847f8eSopenharmony_ci     *
286261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
286361847f8eSopenharmony_ci     * @atomicservice
286461847f8eSopenharmony_ci     * @since 11
286561847f8eSopenharmony_ci     */
286661847f8eSopenharmony_ci    NAVIGATION,
286761847f8eSopenharmony_ci
286861847f8eSopenharmony_ci    /**
286961847f8eSopenharmony_ci     * Trajectory tracking scenario. High positioning precision is required.
287061847f8eSopenharmony_ci     *
287161847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
287261847f8eSopenharmony_ci     * @since 9
287361847f8eSopenharmony_ci     */
287461847f8eSopenharmony_ci    /**
287561847f8eSopenharmony_ci     * Trajectory tracking scenario. High positioning precision is required.
287661847f8eSopenharmony_ci     *
287761847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
287861847f8eSopenharmony_ci     * @atomicservice
287961847f8eSopenharmony_ci     * @since 11
288061847f8eSopenharmony_ci     */
288161847f8eSopenharmony_ci    TRAJECTORY_TRACKING,
288261847f8eSopenharmony_ci
288361847f8eSopenharmony_ci    /**
288461847f8eSopenharmony_ci     * Car hailing scenario. High positioning precision and real-time performance are required.
288561847f8eSopenharmony_ci     *
288661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
288761847f8eSopenharmony_ci     * @since 9
288861847f8eSopenharmony_ci     */
288961847f8eSopenharmony_ci    /**
289061847f8eSopenharmony_ci     * Car hailing scenario. High positioning precision and real-time performance are required.
289161847f8eSopenharmony_ci     *
289261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
289361847f8eSopenharmony_ci     * @atomicservice
289461847f8eSopenharmony_ci     * @since 11
289561847f8eSopenharmony_ci     */
289661847f8eSopenharmony_ci    CAR_HAILING,
289761847f8eSopenharmony_ci
289861847f8eSopenharmony_ci    /**
289961847f8eSopenharmony_ci     * Daily life scenarios. Low requirements on positioning precision and real-time performance.
290061847f8eSopenharmony_ci     *
290161847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
290261847f8eSopenharmony_ci     * @since 9
290361847f8eSopenharmony_ci     */
290461847f8eSopenharmony_ci    /**
290561847f8eSopenharmony_ci     * Daily life scenarios. Low requirements on positioning precision and real-time performance.
290661847f8eSopenharmony_ci     *
290761847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
290861847f8eSopenharmony_ci     * @atomicservice
290961847f8eSopenharmony_ci     * @since 11
291061847f8eSopenharmony_ci     */
291161847f8eSopenharmony_ci    DAILY_LIFE_SERVICE,
291261847f8eSopenharmony_ci
291361847f8eSopenharmony_ci    /**
291461847f8eSopenharmony_ci     * Power saving scenarios.
291561847f8eSopenharmony_ci     *
291661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
291761847f8eSopenharmony_ci     * @since 9
291861847f8eSopenharmony_ci     */
291961847f8eSopenharmony_ci    /**
292061847f8eSopenharmony_ci     * Power saving scenarios.
292161847f8eSopenharmony_ci     *
292261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
292361847f8eSopenharmony_ci     * @atomicservice
292461847f8eSopenharmony_ci     * @since 11
292561847f8eSopenharmony_ci     */
292661847f8eSopenharmony_ci    NO_POWER
292761847f8eSopenharmony_ci  }
292861847f8eSopenharmony_ci
292961847f8eSopenharmony_ci  /**
293061847f8eSopenharmony_ci   * Enum for power consumption scenario.
293161847f8eSopenharmony_ci   *
293261847f8eSopenharmony_ci   * @enum { number }
293361847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
293461847f8eSopenharmony_ci   * @atomicservice
293561847f8eSopenharmony_ci   * @since 12
293661847f8eSopenharmony_ci   */
293761847f8eSopenharmony_ci  export enum PowerConsumptionScenario {
293861847f8eSopenharmony_ci    /**
293961847f8eSopenharmony_ci     * High power consumption mode.
294061847f8eSopenharmony_ci     *
294161847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
294261847f8eSopenharmony_ci     * @atomicservice
294361847f8eSopenharmony_ci     * @since 12
294461847f8eSopenharmony_ci     */
294561847f8eSopenharmony_ci    HIGH_POWER_CONSUMPTION = 0x601,
294661847f8eSopenharmony_ci
294761847f8eSopenharmony_ci    /**
294861847f8eSopenharmony_ci     * Low power consumption mode.
294961847f8eSopenharmony_ci     *
295061847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
295161847f8eSopenharmony_ci     * @atomicservice
295261847f8eSopenharmony_ci     * @since 12
295361847f8eSopenharmony_ci     */
295461847f8eSopenharmony_ci    LOW_POWER_CONSUMPTION = 0x602,
295561847f8eSopenharmony_ci
295661847f8eSopenharmony_ci    /**
295761847f8eSopenharmony_ci     * Power saving scenarios.
295861847f8eSopenharmony_ci     *
295961847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
296061847f8eSopenharmony_ci     * @atomicservice
296161847f8eSopenharmony_ci     * @since 12
296261847f8eSopenharmony_ci     */
296361847f8eSopenharmony_ci    NO_POWER_CONSUMPTION = 0x603
296461847f8eSopenharmony_ci  }
296561847f8eSopenharmony_ci
296661847f8eSopenharmony_ci  /**
296761847f8eSopenharmony_ci   * Enum for location privacy type.
296861847f8eSopenharmony_ci   *
296961847f8eSopenharmony_ci   * @enum { number }
297061847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
297161847f8eSopenharmony_ci   * @systemapi
297261847f8eSopenharmony_ci   * @since 9
297361847f8eSopenharmony_ci   */
297461847f8eSopenharmony_ci  export enum LocationPrivacyType {
297561847f8eSopenharmony_ci    /**
297661847f8eSopenharmony_ci     * Other scenarios.
297761847f8eSopenharmony_ci     *
297861847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
297961847f8eSopenharmony_ci     * @systemapi
298061847f8eSopenharmony_ci     * @since 9
298161847f8eSopenharmony_ci     */
298261847f8eSopenharmony_ci    OTHERS = 0,
298361847f8eSopenharmony_ci
298461847f8eSopenharmony_ci    /**
298561847f8eSopenharmony_ci     * Privacy agreement for the startup wizard scenario.
298661847f8eSopenharmony_ci     *
298761847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
298861847f8eSopenharmony_ci     * @systemapi
298961847f8eSopenharmony_ci     * @since 9
299061847f8eSopenharmony_ci     */
299161847f8eSopenharmony_ci    STARTUP,
299261847f8eSopenharmony_ci
299361847f8eSopenharmony_ci    /**
299461847f8eSopenharmony_ci     * Privacy agreement pop-up when network location is enabled.
299561847f8eSopenharmony_ci     *
299661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
299761847f8eSopenharmony_ci     * @systemapi
299861847f8eSopenharmony_ci     * @since 9
299961847f8eSopenharmony_ci     */
300061847f8eSopenharmony_ci    CORE_LOCATION
300161847f8eSopenharmony_ci  }
300261847f8eSopenharmony_ci
300361847f8eSopenharmony_ci  /**
300461847f8eSopenharmony_ci   * Location subsystem command structure.
300561847f8eSopenharmony_ci   *
300661847f8eSopenharmony_ci   * @typedef LocationCommand
300761847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
300861847f8eSopenharmony_ci   * @since 9
300961847f8eSopenharmony_ci   */
301061847f8eSopenharmony_ci  export interface LocationCommand {
301161847f8eSopenharmony_ci    /**
301261847f8eSopenharmony_ci     * Information about the scenario where the command is sent.
301361847f8eSopenharmony_ci     *
301461847f8eSopenharmony_ci     * @type { LocationRequestScenario }
301561847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
301661847f8eSopenharmony_ci     * @since 9
301761847f8eSopenharmony_ci     */
301861847f8eSopenharmony_ci    scenario: LocationRequestScenario;
301961847f8eSopenharmony_ci
302061847f8eSopenharmony_ci    /**
302161847f8eSopenharmony_ci     * Sent command content.
302261847f8eSopenharmony_ci     *
302361847f8eSopenharmony_ci     * @type { string }
302461847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
302561847f8eSopenharmony_ci     * @since 9
302661847f8eSopenharmony_ci     */
302761847f8eSopenharmony_ci    command: string;
302861847f8eSopenharmony_ci  }
302961847f8eSopenharmony_ci
303061847f8eSopenharmony_ci  /**
303161847f8eSopenharmony_ci   * Country code structure.
303261847f8eSopenharmony_ci   *
303361847f8eSopenharmony_ci   * @typedef CountryCode
303461847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
303561847f8eSopenharmony_ci   * @since 9
303661847f8eSopenharmony_ci   */
303761847f8eSopenharmony_ci  export interface CountryCode {
303861847f8eSopenharmony_ci    /**
303961847f8eSopenharmony_ci     * Country code character string.
304061847f8eSopenharmony_ci     *
304161847f8eSopenharmony_ci     * @type { string }
304261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
304361847f8eSopenharmony_ci     * @since 9
304461847f8eSopenharmony_ci     */
304561847f8eSopenharmony_ci    country: string;
304661847f8eSopenharmony_ci
304761847f8eSopenharmony_ci    /**
304861847f8eSopenharmony_ci     * Country code source.
304961847f8eSopenharmony_ci     *
305061847f8eSopenharmony_ci     * @type { CountryCodeType }
305161847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
305261847f8eSopenharmony_ci     * @since 9
305361847f8eSopenharmony_ci     */
305461847f8eSopenharmony_ci    type: CountryCodeType;
305561847f8eSopenharmony_ci  }
305661847f8eSopenharmony_ci
305761847f8eSopenharmony_ci  /**
305861847f8eSopenharmony_ci   * Enum for country code type.
305961847f8eSopenharmony_ci   *
306061847f8eSopenharmony_ci   * @enum { number }
306161847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
306261847f8eSopenharmony_ci   * @since 9
306361847f8eSopenharmony_ci   */
306461847f8eSopenharmony_ci  export enum CountryCodeType {
306561847f8eSopenharmony_ci    /**
306661847f8eSopenharmony_ci     * Country code obtained from the locale setting.
306761847f8eSopenharmony_ci     *
306861847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
306961847f8eSopenharmony_ci     * @since 9
307061847f8eSopenharmony_ci     */
307161847f8eSopenharmony_ci    COUNTRY_CODE_FROM_LOCALE = 1,
307261847f8eSopenharmony_ci
307361847f8eSopenharmony_ci    /**
307461847f8eSopenharmony_ci     * Country code obtained from the SIM information.
307561847f8eSopenharmony_ci     *
307661847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
307761847f8eSopenharmony_ci     * @since 9
307861847f8eSopenharmony_ci     */
307961847f8eSopenharmony_ci    COUNTRY_CODE_FROM_SIM,
308061847f8eSopenharmony_ci
308161847f8eSopenharmony_ci    /**
308261847f8eSopenharmony_ci     * Query the country code information from the reverse geocoding result.
308361847f8eSopenharmony_ci     *
308461847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
308561847f8eSopenharmony_ci     * @since 9
308661847f8eSopenharmony_ci     */
308761847f8eSopenharmony_ci    COUNTRY_CODE_FROM_LOCATION,
308861847f8eSopenharmony_ci
308961847f8eSopenharmony_ci    /**
309061847f8eSopenharmony_ci     * Obtain the country code from the cell registration information.
309161847f8eSopenharmony_ci     *
309261847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
309361847f8eSopenharmony_ci     * @since 9
309461847f8eSopenharmony_ci     */
309561847f8eSopenharmony_ci    COUNTRY_CODE_FROM_NETWORK
309661847f8eSopenharmony_ci  }
309761847f8eSopenharmony_ci
309861847f8eSopenharmony_ci  /**
309961847f8eSopenharmony_ci   * Enum for locating required data type.
310061847f8eSopenharmony_ci   *
310161847f8eSopenharmony_ci   * @enum { number }
310261847f8eSopenharmony_ci   * @syscap SystemCapability.Location.Location.Core
310361847f8eSopenharmony_ci   * @systemapi
310461847f8eSopenharmony_ci   * @since 10
310561847f8eSopenharmony_ci   */
310661847f8eSopenharmony_ci  export enum LocatingRequiredDataType {
310761847f8eSopenharmony_ci    /**
310861847f8eSopenharmony_ci     * Obtains WiFi scanning information for locating.
310961847f8eSopenharmony_ci     *
311061847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
311161847f8eSopenharmony_ci     * @systemapi
311261847f8eSopenharmony_ci     * @since 10
311361847f8eSopenharmony_ci     */
311461847f8eSopenharmony_ci    WIFI = 1,
311561847f8eSopenharmony_ci
311661847f8eSopenharmony_ci    /**
311761847f8eSopenharmony_ci     * Obtains BT scanning information for locating.
311861847f8eSopenharmony_ci     *
311961847f8eSopenharmony_ci     * @syscap SystemCapability.Location.Location.Core
312061847f8eSopenharmony_ci     * @systemapi
312161847f8eSopenharmony_ci     * @since 10
312261847f8eSopenharmony_ci     */
312361847f8eSopenharmony_ci    BLUETOOTH
312461847f8eSopenharmony_ci  }
312561847f8eSopenharmony_ci}
312661847f8eSopenharmony_ci
312761847f8eSopenharmony_ciexport default geoLocationManager;
3128