161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (c) 2021-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 AbilityKit
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ciimport { AsyncCallback, Callback } from './@ohos.base';
2261847f8eSopenharmony_ciimport { Permissions } from './permissions';
2361847f8eSopenharmony_ci
2461847f8eSopenharmony_ci/**
2561847f8eSopenharmony_ci * @namespace privacyManager
2661847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken
2761847f8eSopenharmony_ci * @since 9
2861847f8eSopenharmony_ci */
2961847f8eSopenharmony_cideclare namespace privacyManager {
3061847f8eSopenharmony_ci  /**
3161847f8eSopenharmony_ci   * Adds access record of sensitive permission.
3261847f8eSopenharmony_ci   *
3361847f8eSopenharmony_ci   * @permission ohos.permission.PERMISSION_USED_STATS
3461847f8eSopenharmony_ci   * @param { number } tokenID - Token ID of the application.
3561847f8eSopenharmony_ci   * @param { Permissions } permissionName - Name of the permission to be added.
3661847f8eSopenharmony_ci   * @param { number } successCount - Access count.
3761847f8eSopenharmony_ci   * @param { number } failCount - Reject count.
3861847f8eSopenharmony_ci   * @returns { Promise<void> } Promise that returns no value.
3961847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
4061847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.PERMISSION_USED_STATS".
4161847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Not system app. Interface caller is not a system app.
4261847f8eSopenharmony_ci   * @throws { BusinessError } 12100001 - Invalid parameter. The tokenID is 0, the permissionName exceeds 256 characters, or the count value is invalid.
4361847f8eSopenharmony_ci   * @throws { BusinessError } 12100002 - The specified tokenID does not exist or refer to an application process.
4461847f8eSopenharmony_ci   * @throws { BusinessError } 12100003 - The specified permission does not exist or is not an user_grant permission.
4561847f8eSopenharmony_ci   * @throws { BusinessError } 12100007 - The service is abnormal.
4661847f8eSopenharmony_ci   * @throws { BusinessError } 12100008 - Out of memory.
4761847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
4861847f8eSopenharmony_ci   * @systemapi
4961847f8eSopenharmony_ci   * @since 9
5061847f8eSopenharmony_ci   */
5161847f8eSopenharmony_ci  /**
5261847f8eSopenharmony_ci   * Adds an access record of a sensitive permission.
5361847f8eSopenharmony_ci   *
5461847f8eSopenharmony_ci   * @permission ohos.permission.PERMISSION_USED_STATS
5561847f8eSopenharmony_ci   * @param { number } tokenID - Token ID of the application.
5661847f8eSopenharmony_ci   * @param { Permissions } permissionName - Name of the permission accessed.
5761847f8eSopenharmony_ci   * @param { number } successCount - Number of successful accesses to the permission.
5861847f8eSopenharmony_ci   * @param { number } failCount - Number of failed accesses to the permission.
5961847f8eSopenharmony_ci   * @param { AddPermissionUsedRecordOptions } options - Options to be added.
6061847f8eSopenharmony_ci   * @returns { Promise<void> } Promise that returns no value.
6161847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6261847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.PERMISSION_USED_STATS".
6361847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Not system app. Interface caller is not a system app.
6461847f8eSopenharmony_ci   * @throws { BusinessError } 12100001 - Invalid parameter. The tokenID is 0, the permissionName exceeds 256 characters, the count value is invalid,
6561847f8eSopenharmony_ci   *  or usedType in AddPermissionUsedRecordOptions is invalid.
6661847f8eSopenharmony_ci   * @throws { BusinessError } 12100002 - The specified tokenID does not exist or refer to an application process.
6761847f8eSopenharmony_ci   * @throws { BusinessError } 12100003 - The specified permission does not exist or is not an user_grant permission.
6861847f8eSopenharmony_ci   * @throws { BusinessError } 12100007 - The service is abnormal.
6961847f8eSopenharmony_ci   * @throws { BusinessError } 12100008 - Out of memory.
7061847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
7161847f8eSopenharmony_ci   * @systemapi
7261847f8eSopenharmony_ci   * @since 12
7361847f8eSopenharmony_ci   */
7461847f8eSopenharmony_ci  function addPermissionUsedRecord(
7561847f8eSopenharmony_ci    tokenID: number,
7661847f8eSopenharmony_ci    permissionName: Permissions,
7761847f8eSopenharmony_ci    successCount: number,
7861847f8eSopenharmony_ci    failCount: number,
7961847f8eSopenharmony_ci    options?: AddPermissionUsedRecordOptions
8061847f8eSopenharmony_ci  ): Promise<void>;
8161847f8eSopenharmony_ci
8261847f8eSopenharmony_ci  /**
8361847f8eSopenharmony_ci   * Adds access record of sensitive permission.
8461847f8eSopenharmony_ci   *
8561847f8eSopenharmony_ci   * @permission ohos.permission.PERMISSION_USED_STATS
8661847f8eSopenharmony_ci   * @param { number } tokenID - Token ID of the application.
8761847f8eSopenharmony_ci   * @param { Permissions } permissionName - Name of the permission to be added.
8861847f8eSopenharmony_ci   * @param { number } successCount - Access count.
8961847f8eSopenharmony_ci   * @param { number } failCount - Reject count.
9061847f8eSopenharmony_ci   * @param { AsyncCallback<void> } callback - Asynchronous callback interface.
9161847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
9261847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.PERMISSION_USED_STATS".
9361847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Not system app. Interface caller is not a system app.
9461847f8eSopenharmony_ci   * @throws { BusinessError } 12100001 - Invalid parameter. The tokenID is 0, the permissionName exceeds 256 characters, or the count value is invalid.
9561847f8eSopenharmony_ci   * @throws { BusinessError } 12100002 - The specified tokenID does not exist or refer to an application process.
9661847f8eSopenharmony_ci   * @throws { BusinessError } 12100003 - The specified permission does not exist or is not an user_grant permission.
9761847f8eSopenharmony_ci   * @throws { BusinessError } 12100007 - The service is abnormal.
9861847f8eSopenharmony_ci   * @throws { BusinessError } 12100008 - Out of memory.
9961847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
10061847f8eSopenharmony_ci   * @systemapi
10161847f8eSopenharmony_ci   * @since 9
10261847f8eSopenharmony_ci   */
10361847f8eSopenharmony_ci  function addPermissionUsedRecord(
10461847f8eSopenharmony_ci    tokenID: number,
10561847f8eSopenharmony_ci    permissionName: Permissions,
10661847f8eSopenharmony_ci    successCount: number,
10761847f8eSopenharmony_ci    failCount: number,
10861847f8eSopenharmony_ci    callback: AsyncCallback<void>
10961847f8eSopenharmony_ci  ): void;
11061847f8eSopenharmony_ci
11161847f8eSopenharmony_ci  /**
11261847f8eSopenharmony_ci   * Queries the access records of sensitive permission.
11361847f8eSopenharmony_ci   *
11461847f8eSopenharmony_ci   * @permission ohos.permission.PERMISSION_USED_STATS
11561847f8eSopenharmony_ci   * @param { PermissionUsedRequest } request - The request of permission used records.
11661847f8eSopenharmony_ci   * @returns { Promise<PermissionUsedResponse> } Return the response of permission used records.
11761847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
11861847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.PERMISSION_USED_STATS".
11961847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Not system app. Interface caller is not a system app.
12061847f8eSopenharmony_ci   * @throws { BusinessError } 12100001 - Invalid parameter. The value of flag in request is invalid.
12161847f8eSopenharmony_ci   * @throws { BusinessError } 12100002 - The specified tokenID does not exist or refer to an application process.
12261847f8eSopenharmony_ci   * @throws { BusinessError } 12100003 - The specified permission does not exist or is not an user_grant permission.
12361847f8eSopenharmony_ci   * @throws { BusinessError } 12100007 - The service is abnormal.
12461847f8eSopenharmony_ci   * @throws { BusinessError } 12100008 - Out of memory.
12561847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
12661847f8eSopenharmony_ci   * @systemapi
12761847f8eSopenharmony_ci   * @since 9
12861847f8eSopenharmony_ci   */
12961847f8eSopenharmony_ci  function getPermissionUsedRecord(request: PermissionUsedRequest): Promise<PermissionUsedResponse>;
13061847f8eSopenharmony_ci
13161847f8eSopenharmony_ci  /**
13261847f8eSopenharmony_ci   * Queries the access records of sensitive permission.
13361847f8eSopenharmony_ci   *
13461847f8eSopenharmony_ci   * @permission ohos.permission.PERMISSION_USED_STATS
13561847f8eSopenharmony_ci   * @param { PermissionUsedRequest } request - The request of permission used records.
13661847f8eSopenharmony_ci   * @param { AsyncCallback<PermissionUsedResponse> } callback - Return the response of permission used records.
13761847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
13861847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.PERMISSION_USED_STATS".
13961847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Not system app. Interface caller is not a system app.
14061847f8eSopenharmony_ci   * @throws { BusinessError } 12100001 - Invalid parameter. The value of flag in request is invalid.
14161847f8eSopenharmony_ci   * @throws { BusinessError } 12100002 - The specified tokenID does not exist or refer to an application process.
14261847f8eSopenharmony_ci   * @throws { BusinessError } 12100003 - The specified permission does not exist or is not an user_grant permission.
14361847f8eSopenharmony_ci   * @throws { BusinessError } 12100007 - The service is abnormal.
14461847f8eSopenharmony_ci   * @throws { BusinessError } 12100008 - Out of memory.
14561847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
14661847f8eSopenharmony_ci   * @systemapi
14761847f8eSopenharmony_ci   * @since 9
14861847f8eSopenharmony_ci   */
14961847f8eSopenharmony_ci  function getPermissionUsedRecord(
15061847f8eSopenharmony_ci    request: PermissionUsedRequest,
15161847f8eSopenharmony_ci    callback: AsyncCallback<PermissionUsedResponse>
15261847f8eSopenharmony_ci  ): void;
15361847f8eSopenharmony_ci
15461847f8eSopenharmony_ci  /**
15561847f8eSopenharmony_ci   * Start using sensitive permission.
15661847f8eSopenharmony_ci   *
15761847f8eSopenharmony_ci   * @permission ohos.permission.PERMISSION_USED_STATS
15861847f8eSopenharmony_ci   * @param { number } tokenID - Token ID of the application.
15961847f8eSopenharmony_ci   * @param { Permissions } permissionName - Name of the permission to be started.
16061847f8eSopenharmony_ci   * @returns { Promise<void> } Promise that returns no value.
16161847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
16261847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.PERMISSION_USED_STATS".
16361847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Not system app. Interface caller is not a system app.
16461847f8eSopenharmony_ci   * @throws { BusinessError } 12100001 - Invalid parameter. The tokenID is 0, the permissionName exceeds 256 characters, or the count value is invalid.
16561847f8eSopenharmony_ci   * @throws { BusinessError } 12100002 - The specified tokenID does not exist or refer to an application process.
16661847f8eSopenharmony_ci   * @throws { BusinessError } 12100003 - The specified permission does not exist or is not an user_grant permission.
16761847f8eSopenharmony_ci   * @throws { BusinessError } 12100004 - The API is used repeatedly with the same input.
16861847f8eSopenharmony_ci   *  It means the application specified by the tokenID has been using the specified permission.
16961847f8eSopenharmony_ci   * @throws { BusinessError } 12100007 - The service is abnormal.
17061847f8eSopenharmony_ci   * @throws { BusinessError } 12100008 - Out of memory.
17161847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
17261847f8eSopenharmony_ci   * @systemapi
17361847f8eSopenharmony_ci   * @since 9
17461847f8eSopenharmony_ci   */
17561847f8eSopenharmony_ci  function startUsingPermission(tokenID: number, permissionName: Permissions): Promise<void>;
17661847f8eSopenharmony_ci
17761847f8eSopenharmony_ci  /**
17861847f8eSopenharmony_ci   * Start using sensitive permission.
17961847f8eSopenharmony_ci   *
18061847f8eSopenharmony_ci   * @permission ohos.permission.PERMISSION_USED_STATS
18161847f8eSopenharmony_ci   * @param { number } tokenID - Token ID of the application.
18261847f8eSopenharmony_ci   * @param { Permissions } permissionName - Name of the permission to be started.
18361847f8eSopenharmony_ci   * @param { AsyncCallback<void> } callback - Asynchronous callback interface.
18461847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
18561847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.PERMISSION_USED_STATS".
18661847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Not system app. Interface caller is not a system app.
18761847f8eSopenharmony_ci   * @throws { BusinessError } 12100001 - Invalid parameter. The tokenID is 0, the permissionName exceeds 256 characters, or the count value is invalid.
18861847f8eSopenharmony_ci   * @throws { BusinessError } 12100002 - The specified tokenID does not exist or refer to an application process.
18961847f8eSopenharmony_ci   * @throws { BusinessError } 12100003 - The specified permission does not exist or is not an user_grant permission.
19061847f8eSopenharmony_ci   * @throws { BusinessError } 12100004 - The API is used repeatedly with the same input.
19161847f8eSopenharmony_ci   *  It means the application specified by the tokenID has been using the specified permission.
19261847f8eSopenharmony_ci   * @throws { BusinessError } 12100007 - The service is abnormal.
19361847f8eSopenharmony_ci   * @throws { BusinessError } 12100008 - Out of memory.
19461847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
19561847f8eSopenharmony_ci   * @systemapi
19661847f8eSopenharmony_ci   * @since 9
19761847f8eSopenharmony_ci   */
19861847f8eSopenharmony_ci  function startUsingPermission(tokenID: number, permissionName: Permissions, callback: AsyncCallback<void>): void;
19961847f8eSopenharmony_ci
20061847f8eSopenharmony_ci  /**
20161847f8eSopenharmony_ci   * Stop using sensitive permission.
20261847f8eSopenharmony_ci   *
20361847f8eSopenharmony_ci   * @permission ohos.permission.PERMISSION_USED_STATS
20461847f8eSopenharmony_ci   * @param { number } tokenID - Token ID of the application.
20561847f8eSopenharmony_ci   * @param { Permissions } permissionName - Name of the permission to be stopped.
20661847f8eSopenharmony_ci   * @returns { Promise<void> } Promise that returns no value.
20761847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
20861847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.PERMISSION_USED_STATS".
20961847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Not system app. Interface caller is not a system app.
21061847f8eSopenharmony_ci   * @throws { BusinessError } 12100001 - Invalid parameter. The tokenID is 0, the permissionName exceeds 256 characters, or the count value is invalid.
21161847f8eSopenharmony_ci   * @throws { BusinessError } 12100002 - The specified tokenID does not exist or refer to an application process.
21261847f8eSopenharmony_ci   * @throws { BusinessError } 12100003 - The specified permission does not exist or is not an user_grant permission.
21361847f8eSopenharmony_ci   * @throws { BusinessError } 12100004 - The API is not used in pair with 'startUsingPermission'.
21461847f8eSopenharmony_ci   * @throws { BusinessError } 12100007 - The service is abnormal.
21561847f8eSopenharmony_ci   * @throws { BusinessError } 12100008 - Out of memory.
21661847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
21761847f8eSopenharmony_ci   * @systemapi
21861847f8eSopenharmony_ci   * @since 9
21961847f8eSopenharmony_ci   */
22061847f8eSopenharmony_ci  function stopUsingPermission(tokenID: number, permissionName: Permissions): Promise<void>;
22161847f8eSopenharmony_ci
22261847f8eSopenharmony_ci  /**
22361847f8eSopenharmony_ci   * Stop using sensitive permission.
22461847f8eSopenharmony_ci   *
22561847f8eSopenharmony_ci   * @permission ohos.permission.PERMISSION_USED_STATS
22661847f8eSopenharmony_ci   * @param { number } tokenID - Token ID of the application.
22761847f8eSopenharmony_ci   * @param { Permissions } permissionName - Name of the permission to be stopped.
22861847f8eSopenharmony_ci   * @param { AsyncCallback<void> } callback - Asynchronous callback interface.
22961847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
23061847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.PERMISSION_USED_STATS".
23161847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Not system app. Interface caller is not a system app.
23261847f8eSopenharmony_ci   * @throws { BusinessError } 12100001 - Invalid parameter. The tokenID is 0, the permissionName exceeds 256 characters, or the count value is invalid.
23361847f8eSopenharmony_ci   * @throws { BusinessError } 12100002 - The specified tokenID does not exist or refer to an application process.
23461847f8eSopenharmony_ci   * @throws { BusinessError } 12100003 - The specified permission does not exist or is not an user_grant permission.
23561847f8eSopenharmony_ci   * @throws { BusinessError } 12100004 - The API is not used in pair with 'startUsingPermission'.
23661847f8eSopenharmony_ci   * @throws { BusinessError } 12100007 - The service is abnormal.
23761847f8eSopenharmony_ci   * @throws { BusinessError } 12100008 - Out of memory.
23861847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
23961847f8eSopenharmony_ci   * @systemapi
24061847f8eSopenharmony_ci   * @since 9
24161847f8eSopenharmony_ci   */
24261847f8eSopenharmony_ci  function stopUsingPermission(tokenID: number, permissionName: Permissions, callback: AsyncCallback<void>): void;
24361847f8eSopenharmony_ci
24461847f8eSopenharmony_ci  /**
24561847f8eSopenharmony_ci   * Subscribes to the change of active state of the specified permission.
24661847f8eSopenharmony_ci   *
24761847f8eSopenharmony_ci   * @permission ohos.permission.PERMISSION_USED_STATS
24861847f8eSopenharmony_ci   * @param { 'activeStateChange' } type - Event type. This parameter cannot change.
24961847f8eSopenharmony_ci   * @param { Array<Permissions> } permissionList - Indicates the permission list, which are specified. This parameter cannot be null or empty.
25061847f8eSopenharmony_ci   * @param { Callback<ActiveChangeResponse> } callback Callback for listening permission change.
25161847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
25261847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.PERMISSION_USED_STATS".
25361847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Not system app. Interface caller is not a system app.
25461847f8eSopenharmony_ci   * @throws { BusinessError } 12100001 - Invalid parameter. The tokenID is 0, or the permissionName exceeds 256 characters.
25561847f8eSopenharmony_ci   * @throws { BusinessError } 12100004 - The API is used repeatedly with the same input.
25661847f8eSopenharmony_ci   * @throws { BusinessError } 12100005 - The registration time has exceeded the limitation.
25761847f8eSopenharmony_ci   * @throws { BusinessError } 12100007 - The service is abnormal.
25861847f8eSopenharmony_ci   * @throws { BusinessError } 12100008 - Out of memory.
25961847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
26061847f8eSopenharmony_ci   * @systemapi
26161847f8eSopenharmony_ci   * @since 9
26261847f8eSopenharmony_ci   */
26361847f8eSopenharmony_ci  function on(
26461847f8eSopenharmony_ci    type: 'activeStateChange',
26561847f8eSopenharmony_ci    permissionList: Array<Permissions>,
26661847f8eSopenharmony_ci    callback: Callback<ActiveChangeResponse>
26761847f8eSopenharmony_ci  ): void;
26861847f8eSopenharmony_ci
26961847f8eSopenharmony_ci  /**
27061847f8eSopenharmony_ci   * Unsubscribes to the change of active state of the specified permission.
27161847f8eSopenharmony_ci   *
27261847f8eSopenharmony_ci   * @permission ohos.permission.PERMISSION_USED_STATS
27361847f8eSopenharmony_ci   * @param { 'activeStateChange' } type - Event type. This parameter cannot change.
27461847f8eSopenharmony_ci   * @param { Array<Permissions> } permissionList - Indicates the permission list, which are specified. This parameter cannot be null or empty.
27561847f8eSopenharmony_ci   * @param { Callback<ActiveChangeResponse> } callback - Callback for listening permission change.
27661847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
27761847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.PERMISSION_USED_STATS".
27861847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Not system app. Interface caller is not a system app.
27961847f8eSopenharmony_ci   * @throws { BusinessError } 12100001 - Invalid parameter. The permissionNames in the list are all invalid, or the list size exceeds 1024 bytes.
28061847f8eSopenharmony_ci   * @throws { BusinessError } 12100004 - The API is not used in pair with 'on'.
28161847f8eSopenharmony_ci   * @throws { BusinessError } 12100007 - The service is abnormal.
28261847f8eSopenharmony_ci   * @throws { BusinessError } 12100008 - Out of memory.
28361847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
28461847f8eSopenharmony_ci   * @systemapi
28561847f8eSopenharmony_ci   * @since 9
28661847f8eSopenharmony_ci   */
28761847f8eSopenharmony_ci  function off(
28861847f8eSopenharmony_ci    type: 'activeStateChange',
28961847f8eSopenharmony_ci    permissionList: Array<Permissions>,
29061847f8eSopenharmony_ci    callback?: Callback<ActiveChangeResponse>
29161847f8eSopenharmony_ci  ): void;
29261847f8eSopenharmony_ci
29361847f8eSopenharmony_ci  /**
29461847f8eSopenharmony_ci   * Obtains the used type of the permission accessed.
29561847f8eSopenharmony_ci   *
29661847f8eSopenharmony_ci   * @permission ohos.permission.PERMISSION_USED_STATS
29761847f8eSopenharmony_ci   * @param { number } tokenId - Token ID of the application. By default, all token IDs of the device are returned.
29861847f8eSopenharmony_ci   * @param { Permissions } permissionName - Name of the permission to query. By default, all permissions of the device are returned.
29961847f8eSopenharmony_ci   * @returns { Promise<Array<PermissionUsedTypeInfo>> } Promise used to return the information obtained.
30061847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Incorrect parameter types.
30161847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.PERMISSION_USED_STATS".
30261847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Not system app. Interface caller is not a system app.
30361847f8eSopenharmony_ci   * @throws { BusinessError } 12100001 - Invalid parameter. PermissionName exceeds 256 characters.
30461847f8eSopenharmony_ci   * @throws { BusinessError } 12100002 - The input tokenId does not exist.
30561847f8eSopenharmony_ci   * @throws { BusinessError } 12100003 - The input permissionName does not exist.
30661847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
30761847f8eSopenharmony_ci   * @systemapi
30861847f8eSopenharmony_ci   * @since 12
30961847f8eSopenharmony_ci   */
31061847f8eSopenharmony_ci  function getPermissionUsedTypeInfos(tokenId?: number, permissionName?: Permissions): Promise<Array<PermissionUsedTypeInfo>>;
31161847f8eSopenharmony_ci
31261847f8eSopenharmony_ci  /**
31361847f8eSopenharmony_ci   * Enum for permission for status.
31461847f8eSopenharmony_ci   *
31561847f8eSopenharmony_ci   * @enum { number } PermissionActiveStatus
31661847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
31761847f8eSopenharmony_ci   * @systemapi
31861847f8eSopenharmony_ci   * @since 9
31961847f8eSopenharmony_ci   */
32061847f8eSopenharmony_ci  enum PermissionActiveStatus {
32161847f8eSopenharmony_ci    /**
32261847f8eSopenharmony_ci     * permission is not used yet.
32361847f8eSopenharmony_ci     *
32461847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
32561847f8eSopenharmony_ci     * @systemapi
32661847f8eSopenharmony_ci     * @since 9
32761847f8eSopenharmony_ci     */
32861847f8eSopenharmony_ci    PERM_INACTIVE = 0,
32961847f8eSopenharmony_ci
33061847f8eSopenharmony_ci    /**
33161847f8eSopenharmony_ci     * permission is used in front_end.
33261847f8eSopenharmony_ci     *
33361847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
33461847f8eSopenharmony_ci     * @systemapi
33561847f8eSopenharmony_ci     * @since 9
33661847f8eSopenharmony_ci     */
33761847f8eSopenharmony_ci    PERM_ACTIVE_IN_FOREGROUND = 1,
33861847f8eSopenharmony_ci
33961847f8eSopenharmony_ci    /**
34061847f8eSopenharmony_ci     * permission is used in back_end.
34161847f8eSopenharmony_ci     *
34261847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
34361847f8eSopenharmony_ci     * @systemapi
34461847f8eSopenharmony_ci     * @since 9
34561847f8eSopenharmony_ci     */
34661847f8eSopenharmony_ci    PERM_ACTIVE_IN_BACKGROUND = 2
34761847f8eSopenharmony_ci  }
34861847f8eSopenharmony_ci
34961847f8eSopenharmony_ci  /**
35061847f8eSopenharmony_ci   * Indicates the response of permission active status.
35161847f8eSopenharmony_ci   *
35261847f8eSopenharmony_ci   * @interface ActiveChangeResponse
35361847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
35461847f8eSopenharmony_ci   * @systemapi
35561847f8eSopenharmony_ci   * @since 9
35661847f8eSopenharmony_ci   */
35761847f8eSopenharmony_ci  interface ActiveChangeResponse {
35861847f8eSopenharmony_ci    /**
35961847f8eSopenharmony_ci     * AccessTokenID
36061847f8eSopenharmony_ci     *
36161847f8eSopenharmony_ci     * @type { number }
36261847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
36361847f8eSopenharmony_ci     * @systemapi
36461847f8eSopenharmony_ci     * @since 9
36561847f8eSopenharmony_ci     */
36661847f8eSopenharmony_ci    tokenId: number;
36761847f8eSopenharmony_ci
36861847f8eSopenharmony_ci    /**
36961847f8eSopenharmony_ci     * The permission name
37061847f8eSopenharmony_ci     *
37161847f8eSopenharmony_ci     * @type { Permissions }
37261847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
37361847f8eSopenharmony_ci     * @systemapi
37461847f8eSopenharmony_ci     * @since 9
37561847f8eSopenharmony_ci     */
37661847f8eSopenharmony_ci    permissionName: Permissions;
37761847f8eSopenharmony_ci
37861847f8eSopenharmony_ci    /**
37961847f8eSopenharmony_ci     * The device id
38061847f8eSopenharmony_ci     *
38161847f8eSopenharmony_ci     * @type { string }
38261847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
38361847f8eSopenharmony_ci     * @systemapi
38461847f8eSopenharmony_ci     * @since 9
38561847f8eSopenharmony_ci     */
38661847f8eSopenharmony_ci    deviceId: string;
38761847f8eSopenharmony_ci    /**
38861847f8eSopenharmony_ci     * The active status name
38961847f8eSopenharmony_ci     *
39061847f8eSopenharmony_ci     * @type { PermissionActiveStatus }
39161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
39261847f8eSopenharmony_ci     * @systemapi
39361847f8eSopenharmony_ci     * @since 9
39461847f8eSopenharmony_ci     */
39561847f8eSopenharmony_ci    activeStatus: PermissionActiveStatus;
39661847f8eSopenharmony_ci  }
39761847f8eSopenharmony_ci
39861847f8eSopenharmony_ci  /**
39961847f8eSopenharmony_ci   * PermissionUsageFlag.
40061847f8eSopenharmony_ci   *
40161847f8eSopenharmony_ci   * @enum { number } PermissionUsageFlag
40261847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
40361847f8eSopenharmony_ci   * @systemapi
40461847f8eSopenharmony_ci   * @since 9
40561847f8eSopenharmony_ci   */
40661847f8eSopenharmony_ci  enum PermissionUsageFlag {
40761847f8eSopenharmony_ci    /**
40861847f8eSopenharmony_ci     * permission used summary
40961847f8eSopenharmony_ci     *
41061847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
41161847f8eSopenharmony_ci     * @systemapi
41261847f8eSopenharmony_ci     * @since 9
41361847f8eSopenharmony_ci     */
41461847f8eSopenharmony_ci    FLAG_PERMISSION_USAGE_SUMMARY = 0,
41561847f8eSopenharmony_ci    /**
41661847f8eSopenharmony_ci     * permission used detail
41761847f8eSopenharmony_ci     *
41861847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
41961847f8eSopenharmony_ci     * @systemapi
42061847f8eSopenharmony_ci     * @since 9
42161847f8eSopenharmony_ci     */
42261847f8eSopenharmony_ci    FLAG_PERMISSION_USAGE_DETAIL = 1
42361847f8eSopenharmony_ci  }
42461847f8eSopenharmony_ci
42561847f8eSopenharmony_ci  /**
42661847f8eSopenharmony_ci   * Provides request of querying permission used records.
42761847f8eSopenharmony_ci   *
42861847f8eSopenharmony_ci   * @interface PermissionUsedRequest
42961847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
43061847f8eSopenharmony_ci   * @systemapi
43161847f8eSopenharmony_ci   * @since 9
43261847f8eSopenharmony_ci   */
43361847f8eSopenharmony_ci  interface PermissionUsedRequest {
43461847f8eSopenharmony_ci    /**
43561847f8eSopenharmony_ci     * AccessTokenID
43661847f8eSopenharmony_ci     *
43761847f8eSopenharmony_ci     * @type { ?number }
43861847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
43961847f8eSopenharmony_ci     * @systemapi
44061847f8eSopenharmony_ci     * @since 9
44161847f8eSopenharmony_ci     */
44261847f8eSopenharmony_ci    tokenId?: number;
44361847f8eSopenharmony_ci
44461847f8eSopenharmony_ci    /**
44561847f8eSopenharmony_ci     * Distribute flag
44661847f8eSopenharmony_ci     *
44761847f8eSopenharmony_ci     * @type { ?boolean }
44861847f8eSopenharmony_ci     * @default false
44961847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
45061847f8eSopenharmony_ci     * @systemapi
45161847f8eSopenharmony_ci     * @since 9
45261847f8eSopenharmony_ci     */
45361847f8eSopenharmony_ci    isRemote?: boolean;
45461847f8eSopenharmony_ci
45561847f8eSopenharmony_ci    /**
45661847f8eSopenharmony_ci     * The device id
45761847f8eSopenharmony_ci     *
45861847f8eSopenharmony_ci     * @type { ?string }
45961847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
46061847f8eSopenharmony_ci     * @systemapi
46161847f8eSopenharmony_ci     * @since 9
46261847f8eSopenharmony_ci     */
46361847f8eSopenharmony_ci    deviceId?: string;
46461847f8eSopenharmony_ci
46561847f8eSopenharmony_ci    /**
46661847f8eSopenharmony_ci     * The bundle name
46761847f8eSopenharmony_ci     *
46861847f8eSopenharmony_ci     * @type { ?string }
46961847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
47061847f8eSopenharmony_ci     * @systemapi
47161847f8eSopenharmony_ci     * @since 9
47261847f8eSopenharmony_ci     */
47361847f8eSopenharmony_ci    bundleName?: string;
47461847f8eSopenharmony_ci
47561847f8eSopenharmony_ci    /**
47661847f8eSopenharmony_ci     * The list of permission name
47761847f8eSopenharmony_ci     *
47861847f8eSopenharmony_ci     * @type { ?Array<Permissions> }
47961847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
48061847f8eSopenharmony_ci     * @systemapi
48161847f8eSopenharmony_ci     * @since 9
48261847f8eSopenharmony_ci     */
48361847f8eSopenharmony_ci    permissionNames?: Array<Permissions>;
48461847f8eSopenharmony_ci
48561847f8eSopenharmony_ci    /**
48661847f8eSopenharmony_ci     * The begin time, in milliseconds
48761847f8eSopenharmony_ci     *
48861847f8eSopenharmony_ci     * @type { ?number }
48961847f8eSopenharmony_ci     * @default 0
49061847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
49161847f8eSopenharmony_ci     * @systemapi
49261847f8eSopenharmony_ci     * @since 9
49361847f8eSopenharmony_ci     */
49461847f8eSopenharmony_ci    beginTime?: number;
49561847f8eSopenharmony_ci
49661847f8eSopenharmony_ci    /**
49761847f8eSopenharmony_ci     * The end time, in milliseconds
49861847f8eSopenharmony_ci     *
49961847f8eSopenharmony_ci     * @type { ?number }
50061847f8eSopenharmony_ci     * @default 0
50161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
50261847f8eSopenharmony_ci     * @systemapi
50361847f8eSopenharmony_ci     * @since 9
50461847f8eSopenharmony_ci     */
50561847f8eSopenharmony_ci    endTime?: number;
50661847f8eSopenharmony_ci
50761847f8eSopenharmony_ci    /**
50861847f8eSopenharmony_ci     * The permission usage flag
50961847f8eSopenharmony_ci     *
51061847f8eSopenharmony_ci     * @type { PermissionUsageFlag }
51161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
51261847f8eSopenharmony_ci     * @systemapi
51361847f8eSopenharmony_ci     * @since 9
51461847f8eSopenharmony_ci     */
51561847f8eSopenharmony_ci    flag: PermissionUsageFlag;
51661847f8eSopenharmony_ci  }
51761847f8eSopenharmony_ci
51861847f8eSopenharmony_ci  /**
51961847f8eSopenharmony_ci   * Provides response of querying permission used records.
52061847f8eSopenharmony_ci   *
52161847f8eSopenharmony_ci   * @interface PermissionUsedResponse
52261847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
52361847f8eSopenharmony_ci   * @systemapi
52461847f8eSopenharmony_ci   * @since 9
52561847f8eSopenharmony_ci   */
52661847f8eSopenharmony_ci  interface PermissionUsedResponse {
52761847f8eSopenharmony_ci    /**
52861847f8eSopenharmony_ci     * The begin time, in milliseconds
52961847f8eSopenharmony_ci     *
53061847f8eSopenharmony_ci     * @type { number }
53161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
53261847f8eSopenharmony_ci     * @systemapi
53361847f8eSopenharmony_ci     * @since 9
53461847f8eSopenharmony_ci     */
53561847f8eSopenharmony_ci    beginTime: number;
53661847f8eSopenharmony_ci
53761847f8eSopenharmony_ci    /**
53861847f8eSopenharmony_ci     * The end time, in milliseconds
53961847f8eSopenharmony_ci     *
54061847f8eSopenharmony_ci     * @type { number }
54161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
54261847f8eSopenharmony_ci     * @systemapi
54361847f8eSopenharmony_ci     * @since 9
54461847f8eSopenharmony_ci     */
54561847f8eSopenharmony_ci    endTime: number;
54661847f8eSopenharmony_ci
54761847f8eSopenharmony_ci    /**
54861847f8eSopenharmony_ci     * The list of permission used records of bundle
54961847f8eSopenharmony_ci     *
55061847f8eSopenharmony_ci     * @type { Array<BundleUsedRecord> }
55161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
55261847f8eSopenharmony_ci     * @systemapi
55361847f8eSopenharmony_ci     * @since 9
55461847f8eSopenharmony_ci     */
55561847f8eSopenharmony_ci    bundleRecords: Array<BundleUsedRecord>;
55661847f8eSopenharmony_ci  }
55761847f8eSopenharmony_ci
55861847f8eSopenharmony_ci  /**
55961847f8eSopenharmony_ci   * BundleUsedRecord.
56061847f8eSopenharmony_ci   *
56161847f8eSopenharmony_ci   * @interface BundleUsedRecord
56261847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
56361847f8eSopenharmony_ci   * @systemapi
56461847f8eSopenharmony_ci   * @since 9
56561847f8eSopenharmony_ci   */
56661847f8eSopenharmony_ci  interface BundleUsedRecord {
56761847f8eSopenharmony_ci    /**
56861847f8eSopenharmony_ci     * AccessTokenID
56961847f8eSopenharmony_ci     *
57061847f8eSopenharmony_ci     * @type { number }
57161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
57261847f8eSopenharmony_ci     * @systemapi
57361847f8eSopenharmony_ci     * @since 9
57461847f8eSopenharmony_ci     */
57561847f8eSopenharmony_ci    tokenId: number;
57661847f8eSopenharmony_ci
57761847f8eSopenharmony_ci    /**
57861847f8eSopenharmony_ci     * Distribute flag
57961847f8eSopenharmony_ci     *
58061847f8eSopenharmony_ci     * @type { boolean }
58161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
58261847f8eSopenharmony_ci     * @systemapi
58361847f8eSopenharmony_ci     * @since 9
58461847f8eSopenharmony_ci     */
58561847f8eSopenharmony_ci    isRemote: boolean;
58661847f8eSopenharmony_ci
58761847f8eSopenharmony_ci    /**
58861847f8eSopenharmony_ci     * The device id
58961847f8eSopenharmony_ci     *
59061847f8eSopenharmony_ci     * @type { string }
59161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
59261847f8eSopenharmony_ci     * @systemapi
59361847f8eSopenharmony_ci     * @since 9
59461847f8eSopenharmony_ci     */
59561847f8eSopenharmony_ci    deviceId: string;
59661847f8eSopenharmony_ci
59761847f8eSopenharmony_ci    /**
59861847f8eSopenharmony_ci     * The bundle name
59961847f8eSopenharmony_ci     *
60061847f8eSopenharmony_ci     * @type { string }
60161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
60261847f8eSopenharmony_ci     * @systemapi
60361847f8eSopenharmony_ci     * @since 9
60461847f8eSopenharmony_ci     */
60561847f8eSopenharmony_ci    bundleName: string;
60661847f8eSopenharmony_ci
60761847f8eSopenharmony_ci    /**
60861847f8eSopenharmony_ci     * The list of permission used records
60961847f8eSopenharmony_ci     *
61061847f8eSopenharmony_ci     * @type { Array<PermissionUsedRecord> }
61161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
61261847f8eSopenharmony_ci     * @systemapi
61361847f8eSopenharmony_ci     * @since 9
61461847f8eSopenharmony_ci     */
61561847f8eSopenharmony_ci    permissionRecords: Array<PermissionUsedRecord>;
61661847f8eSopenharmony_ci  }
61761847f8eSopenharmony_ci
61861847f8eSopenharmony_ci  /**
61961847f8eSopenharmony_ci   * PermissionUsedRecord.
62061847f8eSopenharmony_ci   *
62161847f8eSopenharmony_ci   * @interface PermissionUsedRecord
62261847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
62361847f8eSopenharmony_ci   * @systemapi
62461847f8eSopenharmony_ci   * @since 9
62561847f8eSopenharmony_ci   */
62661847f8eSopenharmony_ci  interface PermissionUsedRecord {
62761847f8eSopenharmony_ci    /**
62861847f8eSopenharmony_ci     * The permission name
62961847f8eSopenharmony_ci     *
63061847f8eSopenharmony_ci     * @type { Permissions }
63161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
63261847f8eSopenharmony_ci     * @systemapi
63361847f8eSopenharmony_ci     * @since 9
63461847f8eSopenharmony_ci     */
63561847f8eSopenharmony_ci    permissionName: Permissions;
63661847f8eSopenharmony_ci
63761847f8eSopenharmony_ci    /**
63861847f8eSopenharmony_ci     * The access counts
63961847f8eSopenharmony_ci     *
64061847f8eSopenharmony_ci     * @type { number }
64161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
64261847f8eSopenharmony_ci     * @systemapi
64361847f8eSopenharmony_ci     * @since 9
64461847f8eSopenharmony_ci     */
64561847f8eSopenharmony_ci    accessCount: number;
64661847f8eSopenharmony_ci
64761847f8eSopenharmony_ci    /**
64861847f8eSopenharmony_ci     * The reject counts
64961847f8eSopenharmony_ci     *
65061847f8eSopenharmony_ci     * @type { number }
65161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
65261847f8eSopenharmony_ci     * @systemapi
65361847f8eSopenharmony_ci     * @since 9
65461847f8eSopenharmony_ci     */
65561847f8eSopenharmony_ci    rejectCount: number;
65661847f8eSopenharmony_ci
65761847f8eSopenharmony_ci    /**
65861847f8eSopenharmony_ci     * The last access time, in milliseconds
65961847f8eSopenharmony_ci     *
66061847f8eSopenharmony_ci     * @type { number }
66161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
66261847f8eSopenharmony_ci     * @systemapi
66361847f8eSopenharmony_ci     * @since 9
66461847f8eSopenharmony_ci     */
66561847f8eSopenharmony_ci    lastAccessTime: number;
66661847f8eSopenharmony_ci
66761847f8eSopenharmony_ci    /**
66861847f8eSopenharmony_ci     * The last reject time, in milliseconds
66961847f8eSopenharmony_ci     *
67061847f8eSopenharmony_ci     * @type { number }
67161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
67261847f8eSopenharmony_ci     * @systemapi
67361847f8eSopenharmony_ci     * @since 9
67461847f8eSopenharmony_ci     */
67561847f8eSopenharmony_ci    lastRejectTime: number;
67661847f8eSopenharmony_ci
67761847f8eSopenharmony_ci    /**
67861847f8eSopenharmony_ci     * The last access duration, in milliseconds
67961847f8eSopenharmony_ci     *
68061847f8eSopenharmony_ci     * @type { number }
68161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
68261847f8eSopenharmony_ci     * @systemapi
68361847f8eSopenharmony_ci     * @since 9
68461847f8eSopenharmony_ci     */
68561847f8eSopenharmony_ci    lastAccessDuration: number;
68661847f8eSopenharmony_ci
68761847f8eSopenharmony_ci    /**
68861847f8eSopenharmony_ci     * The list of access records of details
68961847f8eSopenharmony_ci     *
69061847f8eSopenharmony_ci     * @type { Array<UsedRecordDetail> }
69161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
69261847f8eSopenharmony_ci     * @systemapi
69361847f8eSopenharmony_ci     * @since 9
69461847f8eSopenharmony_ci     */
69561847f8eSopenharmony_ci    accessRecords: Array<UsedRecordDetail>;
69661847f8eSopenharmony_ci
69761847f8eSopenharmony_ci    /**
69861847f8eSopenharmony_ci     * The list of reject records of details
69961847f8eSopenharmony_ci     *
70061847f8eSopenharmony_ci     * @type { Array<UsedRecordDetail> }
70161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
70261847f8eSopenharmony_ci     * @systemapi
70361847f8eSopenharmony_ci     * @since 9
70461847f8eSopenharmony_ci     */
70561847f8eSopenharmony_ci    rejectRecords: Array<UsedRecordDetail>;
70661847f8eSopenharmony_ci  }
70761847f8eSopenharmony_ci
70861847f8eSopenharmony_ci  /**
70961847f8eSopenharmony_ci   * UsedRecordDetail.
71061847f8eSopenharmony_ci   *
71161847f8eSopenharmony_ci   * @interface UsedRecordDetail
71261847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
71361847f8eSopenharmony_ci   * @systemapi
71461847f8eSopenharmony_ci   * @since 9
71561847f8eSopenharmony_ci   */
71661847f8eSopenharmony_ci  interface UsedRecordDetail {
71761847f8eSopenharmony_ci    /**
71861847f8eSopenharmony_ci     * The status
71961847f8eSopenharmony_ci     *
72061847f8eSopenharmony_ci     * @type { number }
72161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
72261847f8eSopenharmony_ci     * @systemapi
72361847f8eSopenharmony_ci     * @since 9
72461847f8eSopenharmony_ci     */
72561847f8eSopenharmony_ci    status: number;
72661847f8eSopenharmony_ci
72761847f8eSopenharmony_ci    /**
72861847f8eSopenharmony_ci     * Indicates the status of lockscreen.
72961847f8eSopenharmony_ci     *
73061847f8eSopenharmony_ci     * @type { ?number }
73161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
73261847f8eSopenharmony_ci     * @systemapi
73361847f8eSopenharmony_ci     * @since 11
73461847f8eSopenharmony_ci     */
73561847f8eSopenharmony_ci    lockScreenStatus?: number;
73661847f8eSopenharmony_ci
73761847f8eSopenharmony_ci    /**
73861847f8eSopenharmony_ci     * Timestamp, in milliseconds
73961847f8eSopenharmony_ci     *
74061847f8eSopenharmony_ci     * @type { number }
74161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
74261847f8eSopenharmony_ci     * @systemapi
74361847f8eSopenharmony_ci     * @since 9
74461847f8eSopenharmony_ci     */
74561847f8eSopenharmony_ci    timestamp: number;
74661847f8eSopenharmony_ci
74761847f8eSopenharmony_ci    /**
74861847f8eSopenharmony_ci     * The value of successCount or failCount passed in to addPermissionUsedRecord.
74961847f8eSopenharmony_ci     *
75061847f8eSopenharmony_ci     * @type { ?number }
75161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
75261847f8eSopenharmony_ci     * @systemapi
75361847f8eSopenharmony_ci     * @since 11
75461847f8eSopenharmony_ci     */
75561847f8eSopenharmony_ci    count?: number;
75661847f8eSopenharmony_ci
75761847f8eSopenharmony_ci    /**
75861847f8eSopenharmony_ci     * Access duration, in milliseconds
75961847f8eSopenharmony_ci     *
76061847f8eSopenharmony_ci     * @type { number }
76161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
76261847f8eSopenharmony_ci     * @systemapi
76361847f8eSopenharmony_ci     * @since 9
76461847f8eSopenharmony_ci     */
76561847f8eSopenharmony_ci    accessDuration: number;
76661847f8eSopenharmony_ci
76761847f8eSopenharmony_ci    /**
76861847f8eSopenharmony_ci     * Used type of the permission accessed.
76961847f8eSopenharmony_ci     *
77061847f8eSopenharmony_ci     * @type { ?PermissionUsedType }
77161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
77261847f8eSopenharmony_ci     * @systemapi
77361847f8eSopenharmony_ci     * @since 12
77461847f8eSopenharmony_ci     */
77561847f8eSopenharmony_ci    usedType?: PermissionUsedType;
77661847f8eSopenharmony_ci  }
77761847f8eSopenharmony_ci
77861847f8eSopenharmony_ci  /**
77961847f8eSopenharmony_ci   * Enumerates the means by which sensitive resources are accessed.
78061847f8eSopenharmony_ci   *
78161847f8eSopenharmony_ci   * @enum { number } PermissionUsedType
78261847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
78361847f8eSopenharmony_ci   * @systemapi
78461847f8eSopenharmony_ci   * @since 12
78561847f8eSopenharmony_ci   */
78661847f8eSopenharmony_ci  enum PermissionUsedType {
78761847f8eSopenharmony_ci    /**
78861847f8eSopenharmony_ci     * Sensitive resources are accessed with the declared permission or permission granted by the user.
78961847f8eSopenharmony_ci     *
79061847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
79161847f8eSopenharmony_ci     * @systemapi
79261847f8eSopenharmony_ci     * @since 12
79361847f8eSopenharmony_ci     */
79461847f8eSopenharmony_ci    NORMAL_TYPE = 0,
79561847f8eSopenharmony_ci
79661847f8eSopenharmony_ci    /**
79761847f8eSopenharmony_ci     * Sensitive resources are accessed through a picker.
79861847f8eSopenharmony_ci     *
79961847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
80061847f8eSopenharmony_ci     * @systemapi
80161847f8eSopenharmony_ci     * @since 12
80261847f8eSopenharmony_ci     */
80361847f8eSopenharmony_ci    PICKER_TYPE = 1,
80461847f8eSopenharmony_ci
80561847f8eSopenharmony_ci    /**
80661847f8eSopenharmony_ci     * Sensitive resources are accessed through a security component.
80761847f8eSopenharmony_ci     *
80861847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
80961847f8eSopenharmony_ci     * @systemapi
81061847f8eSopenharmony_ci     * @since 12
81161847f8eSopenharmony_ci     */
81261847f8eSopenharmony_ci    SECURITY_COMPONENT_TYPE = 2
81361847f8eSopenharmony_ci  }
81461847f8eSopenharmony_ci
81561847f8eSopenharmony_ci  /**
81661847f8eSopenharmony_ci   * Information about the permission used type.
81761847f8eSopenharmony_ci   *
81861847f8eSopenharmony_ci   * @interface PermissionUsedTypeInfo
81961847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
82061847f8eSopenharmony_ci   * @systemapi
82161847f8eSopenharmony_ci   * @since 12
82261847f8eSopenharmony_ci   */
82361847f8eSopenharmony_ci  interface PermissionUsedTypeInfo {
82461847f8eSopenharmony_ci    /**
82561847f8eSopenharmony_ci     * Token ID of the application.
82661847f8eSopenharmony_ci     *
82761847f8eSopenharmony_ci     * @type { number }
82861847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
82961847f8eSopenharmony_ci     * @systemapi
83061847f8eSopenharmony_ci     * @since 12
83161847f8eSopenharmony_ci     */
83261847f8eSopenharmony_ci    tokenId: number;
83361847f8eSopenharmony_ci
83461847f8eSopenharmony_ci    /**
83561847f8eSopenharmony_ci     * Name of the permission accessed.
83661847f8eSopenharmony_ci     *
83761847f8eSopenharmony_ci     * @type { Permissions }
83861847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
83961847f8eSopenharmony_ci     * @systemapi
84061847f8eSopenharmony_ci     * @since 12
84161847f8eSopenharmony_ci     */
84261847f8eSopenharmony_ci    permissionName: Permissions;
84361847f8eSopenharmony_ci
84461847f8eSopenharmony_ci    /**
84561847f8eSopenharmony_ci     * Used type of the permission accessed.
84661847f8eSopenharmony_ci     *
84761847f8eSopenharmony_ci     * @type { PermissionUsedType }
84861847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
84961847f8eSopenharmony_ci     * @systemapi
85061847f8eSopenharmony_ci     * @since 12
85161847f8eSopenharmony_ci     */
85261847f8eSopenharmony_ci    usedType: PermissionUsedType;
85361847f8eSopenharmony_ci  }
85461847f8eSopenharmony_ci
85561847f8eSopenharmony_ci  /**
85661847f8eSopenharmony_ci   * Additional information to add.
85761847f8eSopenharmony_ci   *
85861847f8eSopenharmony_ci   * @interface AddPermissionUsedRecordOptions
85961847f8eSopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
86061847f8eSopenharmony_ci   * @systemapi
86161847f8eSopenharmony_ci   * @since 12
86261847f8eSopenharmony_ci   */
86361847f8eSopenharmony_ci  interface AddPermissionUsedRecordOptions {
86461847f8eSopenharmony_ci    /**
86561847f8eSopenharmony_ci     * Used type of the permission accessed.
86661847f8eSopenharmony_ci     *
86761847f8eSopenharmony_ci     * @type { ?PermissionUsedType }
86861847f8eSopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
86961847f8eSopenharmony_ci     * @systemapi
87061847f8eSopenharmony_ci     * @since 12
87161847f8eSopenharmony_ci     */
87261847f8eSopenharmony_ci    usedType?: PermissionUsedType;
87361847f8eSopenharmony_ci  }
87461847f8eSopenharmony_ci}
87561847f8eSopenharmony_ci
87661847f8eSopenharmony_ciexport default privacyManager;
87761847f8eSopenharmony_ciexport { Permissions };