17c804472Sopenharmony_ci/*
27c804472Sopenharmony_ci * Copyright (c) 2021-2024 Huawei Device Co., Ltd.
37c804472Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
47c804472Sopenharmony_ci * you may not use this file except in compliance with the License.
57c804472Sopenharmony_ci * You may obtain a copy of the License at
67c804472Sopenharmony_ci *
77c804472Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
87c804472Sopenharmony_ci *
97c804472Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
107c804472Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
117c804472Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
127c804472Sopenharmony_ci * See the License for the specific language governing permissions and
137c804472Sopenharmony_ci * limitations under the License.
147c804472Sopenharmony_ci */
157c804472Sopenharmony_ci
167c804472Sopenharmony_ci/**
177c804472Sopenharmony_ci * @file
187c804472Sopenharmony_ci * @kit AbilityKit
197c804472Sopenharmony_ci */
207c804472Sopenharmony_ci
217c804472Sopenharmony_ciimport { AsyncCallback, Callback } from './@ohos.base';
227c804472Sopenharmony_ciimport { Permissions } from './permissions';
237c804472Sopenharmony_ciimport type _Context from './application/Context';
247c804472Sopenharmony_ciimport type _PermissionRequestResult from './security/PermissionRequestResult';
257c804472Sopenharmony_ci
267c804472Sopenharmony_ci/**
277c804472Sopenharmony_ci * @namespace abilityAccessCtrl
287c804472Sopenharmony_ci * @syscap SystemCapability.Security.AccessToken
297c804472Sopenharmony_ci * @since 8
307c804472Sopenharmony_ci */
317c804472Sopenharmony_ci/**
327c804472Sopenharmony_ci * @namespace abilityAccessCtrl
337c804472Sopenharmony_ci * @syscap SystemCapability.Security.AccessToken
347c804472Sopenharmony_ci * @atomicservice
357c804472Sopenharmony_ci * @since 11
367c804472Sopenharmony_ci */
377c804472Sopenharmony_cideclare namespace abilityAccessCtrl {
387c804472Sopenharmony_ci  /**
397c804472Sopenharmony_ci   * Obtains the AtManager instance.
407c804472Sopenharmony_ci   *
417c804472Sopenharmony_ci   * @returns { AtManager } Returns the instance of the AtManager.
427c804472Sopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
437c804472Sopenharmony_ci   * @since 8
447c804472Sopenharmony_ci   */
457c804472Sopenharmony_ci  /**
467c804472Sopenharmony_ci   * Obtains the AtManager instance.
477c804472Sopenharmony_ci   *
487c804472Sopenharmony_ci   * @returns { AtManager } returns the instance of the AtManager.
497c804472Sopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
507c804472Sopenharmony_ci   * @crossplatform
517c804472Sopenharmony_ci   * @since 10
527c804472Sopenharmony_ci   */
537c804472Sopenharmony_ci  /**
547c804472Sopenharmony_ci   * Obtains the AtManager instance.
557c804472Sopenharmony_ci   *
567c804472Sopenharmony_ci   * @returns { AtManager } returns the instance of the AtManager.
577c804472Sopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
587c804472Sopenharmony_ci   * @crossplatform
597c804472Sopenharmony_ci   * @atomicservice
607c804472Sopenharmony_ci   * @since 11
617c804472Sopenharmony_ci   */
627c804472Sopenharmony_ci  function createAtManager(): AtManager;
637c804472Sopenharmony_ci
647c804472Sopenharmony_ci  /**
657c804472Sopenharmony_ci   * Provides methods for managing access_token.
667c804472Sopenharmony_ci   *
677c804472Sopenharmony_ci   * @interface AtManager
687c804472Sopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
697c804472Sopenharmony_ci   * @since 8
707c804472Sopenharmony_ci   */
717c804472Sopenharmony_ci  /**
727c804472Sopenharmony_ci   * Provides methods for managing access_token.
737c804472Sopenharmony_ci   *
747c804472Sopenharmony_ci   * @interface AtManager
757c804472Sopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
767c804472Sopenharmony_ci   * @atomicservice
777c804472Sopenharmony_ci   * @since 11
787c804472Sopenharmony_ci   */
797c804472Sopenharmony_ci  interface AtManager {
807c804472Sopenharmony_ci    /**
817c804472Sopenharmony_ci     * Checks whether a specified application has been granted the given permission.
827c804472Sopenharmony_ci     *
837c804472Sopenharmony_ci     * @param { number } tokenID - Token ID of the application.
847c804472Sopenharmony_ci     * @param { Permissions } permissionName - Name of the permission to be verified. The Permissions type supports only valid permission names.
857c804472Sopenharmony_ci     * @returns { Promise<GrantStatus> } Returns permission verify result.
867c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
877c804472Sopenharmony_ci     * @since 9
887c804472Sopenharmony_ci     */
897c804472Sopenharmony_ci    verifyAccessToken(tokenID: number, permissionName: Permissions): Promise<GrantStatus>;
907c804472Sopenharmony_ci
917c804472Sopenharmony_ci    /**
927c804472Sopenharmony_ci     * Checks whether a specified application has been granted the given permission.
937c804472Sopenharmony_ci     *
947c804472Sopenharmony_ci     * @param { number } tokenID - Token ID of the application.
957c804472Sopenharmony_ci     * @param { string } permissionName - Name of the permission to be verified.
967c804472Sopenharmony_ci     * @returns { Promise<GrantStatus> } Returns permission verify result.
977c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
987c804472Sopenharmony_ci     * @since 8
997c804472Sopenharmony_ci     * @deprecated since 9
1007c804472Sopenharmony_ci     * @useinstead ohos.abilityAccessCtrl.AtManager#checkAccessToken
1017c804472Sopenharmony_ci     */
1027c804472Sopenharmony_ci    verifyAccessToken(tokenID: number, permissionName: string): Promise<GrantStatus>;
1037c804472Sopenharmony_ci
1047c804472Sopenharmony_ci    /**
1057c804472Sopenharmony_ci     * Checks whether a specified application has been granted the given permission synchronously.
1067c804472Sopenharmony_ci     *
1077c804472Sopenharmony_ci     * @param { number } tokenID - Token ID of the application.
1087c804472Sopenharmony_ci     * @param { Permissions } permissionName - Name of the permission to be verified.
1097c804472Sopenharmony_ci     * @returns { GrantStatus } Returns permission verify result.
1107c804472Sopenharmony_ci     * @throws { BusinessError } 401 - The parameter check failed.
1117c804472Sopenharmony_ci     * @throws { BusinessError } 12100001 - The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256.
1127c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
1137c804472Sopenharmony_ci     * @since 9
1147c804472Sopenharmony_ci     */
1157c804472Sopenharmony_ci    verifyAccessTokenSync(tokenID: number, permissionName: Permissions): GrantStatus;
1167c804472Sopenharmony_ci
1177c804472Sopenharmony_ci    /**
1187c804472Sopenharmony_ci     * Checks whether a specified application has been granted the given permission.
1197c804472Sopenharmony_ci     *
1207c804472Sopenharmony_ci     * @param { number } tokenID - Token ID of the application.
1217c804472Sopenharmony_ci     * @param { Permissions } permissionName - Name of the permission to be verified.
1227c804472Sopenharmony_ci     * @returns { Promise<GrantStatus> } Returns permission verify result.
1237c804472Sopenharmony_ci     * @throws { BusinessError } 401 - The parameter check failed.
1247c804472Sopenharmony_ci     * @throws { BusinessError } 12100001 - The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256.
1257c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
1267c804472Sopenharmony_ci     * @since 9
1277c804472Sopenharmony_ci     */
1287c804472Sopenharmony_ci    /**
1297c804472Sopenharmony_ci     * Checks whether a specified application has been granted the given permission.
1307c804472Sopenharmony_ci     * On the cross-platform, this function can be used to check the permission grant status for the current application only.
1317c804472Sopenharmony_ci     *
1327c804472Sopenharmony_ci     * @param { number } tokenID - Token ID of the application.
1337c804472Sopenharmony_ci     * @param { Permissions } permissionName - Name of the permission to be verified.
1347c804472Sopenharmony_ci     * @returns { Promise<GrantStatus> } Returns permission verify result.
1357c804472Sopenharmony_ci     * @throws { BusinessError } 401 - The parameter check failed.
1367c804472Sopenharmony_ci     * @throws { BusinessError } 12100001 - The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256.
1377c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
1387c804472Sopenharmony_ci     * @crossplatform
1397c804472Sopenharmony_ci     * @since 10
1407c804472Sopenharmony_ci     */
1417c804472Sopenharmony_ci    /**
1427c804472Sopenharmony_ci     * Checks whether a specified application has been granted the given permission.
1437c804472Sopenharmony_ci     * On the cross-platform, this function can be used to check the permission grant status for the current application only.
1447c804472Sopenharmony_ci     *
1457c804472Sopenharmony_ci     * @param { number } tokenID - Token ID of the application.
1467c804472Sopenharmony_ci     * @param { Permissions } permissionName - Name of the permission to be verified.
1477c804472Sopenharmony_ci     * @returns { Promise<GrantStatus> } Returns permission verify result.
1487c804472Sopenharmony_ci     * @throws { BusinessError } 401 - The parameter check failed.
1497c804472Sopenharmony_ci     * @throws { BusinessError } 12100001 - The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256.
1507c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
1517c804472Sopenharmony_ci     * @crossplatform
1527c804472Sopenharmony_ci     * @atomicservice
1537c804472Sopenharmony_ci     * @since 11
1547c804472Sopenharmony_ci     */
1557c804472Sopenharmony_ci    checkAccessToken(tokenID: number, permissionName: Permissions): Promise<GrantStatus>;
1567c804472Sopenharmony_ci
1577c804472Sopenharmony_ci    /**
1587c804472Sopenharmony_ci     * Checks whether a specified application has been granted the given permission.
1597c804472Sopenharmony_ci     * On the cross-platform, this function can be used to check the permission grant status for the current application only.
1607c804472Sopenharmony_ci     *
1617c804472Sopenharmony_ci     * @param { number } tokenID - Token ID of the application.
1627c804472Sopenharmony_ci     * @param { Permissions } permissionName - Name of the permission to be verified.
1637c804472Sopenharmony_ci     * @returns { GrantStatus } Returns permission verify result.
1647c804472Sopenharmony_ci     * @throws { BusinessError } 401 - The parameter check failed.
1657c804472Sopenharmony_ci     * @throws { BusinessError } 12100001 - The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256.
1667c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
1677c804472Sopenharmony_ci     * @crossplatform
1687c804472Sopenharmony_ci     * @since 10
1697c804472Sopenharmony_ci     */
1707c804472Sopenharmony_ci    /**
1717c804472Sopenharmony_ci     * Checks whether a specified application has been granted the given permission.
1727c804472Sopenharmony_ci     * On the cross-platform, this function can be used to check the permission grant status for the current application only.
1737c804472Sopenharmony_ci     *
1747c804472Sopenharmony_ci     * @param { number } tokenID - Token ID of the application.
1757c804472Sopenharmony_ci     * @param { Permissions } permissionName - Name of the permission to be verified.
1767c804472Sopenharmony_ci     * @returns { GrantStatus } Returns permission verify result.
1777c804472Sopenharmony_ci     * @throws { BusinessError } 401 - The parameter check failed.
1787c804472Sopenharmony_ci     * @throws { BusinessError } 12100001 - The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256.
1797c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
1807c804472Sopenharmony_ci     * @crossplatform
1817c804472Sopenharmony_ci     * @atomicservice
1827c804472Sopenharmony_ci     * @since 11
1837c804472Sopenharmony_ci     */
1847c804472Sopenharmony_ci    checkAccessTokenSync(tokenID: number, permissionName: Permissions): GrantStatus;
1857c804472Sopenharmony_ci
1867c804472Sopenharmony_ci    /**
1877c804472Sopenharmony_ci     * Requests certain permissions from the user.
1887c804472Sopenharmony_ci     *
1897c804472Sopenharmony_ci     * @param { Context } context - The context that initiates the permission request.
1907c804472Sopenharmony_ci     * @param { Array<Permissions> } permissionList - Indicates the list of permissions to be requested. This parameter cannot be null or empty.
1917c804472Sopenharmony_ci     * @param { AsyncCallback<PermissionRequestResult> } requestCallback Callback for the result from requesting permissions.
1927c804472Sopenharmony_ci     * @throws { BusinessError } 401 - The parameter check failed.
1937c804472Sopenharmony_ci     * @throws { BusinessError } 12100001 - The parameter is invalid. The context is invalid when it does not belong to the application itself.
1947c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
1957c804472Sopenharmony_ci     * @stagemodelonly
1967c804472Sopenharmony_ci     * @since 9
1977c804472Sopenharmony_ci     */
1987c804472Sopenharmony_ci    /**
1997c804472Sopenharmony_ci     * Requests certain permissions from the user.
2007c804472Sopenharmony_ci     *
2017c804472Sopenharmony_ci     * @param { Context } context - The context that initiates the permission request.
2027c804472Sopenharmony_ci     * @param { Array<Permissions> } permissionList - Indicates the list of permissions to be requested. This parameter cannot be null or empty.
2037c804472Sopenharmony_ci     * @param { AsyncCallback<PermissionRequestResult> } requestCallback Callback for the result from requesting permissions.
2047c804472Sopenharmony_ci     * @throws { BusinessError } 401 - The parameter check failed.
2057c804472Sopenharmony_ci     * @throws { BusinessError } 12100001 - The parameter is invalid. The context is invalid when it does not belong to the application itself.
2067c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
2077c804472Sopenharmony_ci     * @stagemodelonly
2087c804472Sopenharmony_ci     * @crossplatform
2097c804472Sopenharmony_ci     * @since 10
2107c804472Sopenharmony_ci     */
2117c804472Sopenharmony_ci    requestPermissionsFromUser(
2127c804472Sopenharmony_ci      context: Context,
2137c804472Sopenharmony_ci      permissionList: Array<Permissions>,
2147c804472Sopenharmony_ci      requestCallback: AsyncCallback<PermissionRequestResult>
2157c804472Sopenharmony_ci    ): void;
2167c804472Sopenharmony_ci
2177c804472Sopenharmony_ci    /**
2187c804472Sopenharmony_ci     * Requests certain permissions from the user.
2197c804472Sopenharmony_ci     *
2207c804472Sopenharmony_ci     * @param { Context } context - The context that initiates the permission request.
2217c804472Sopenharmony_ci     * @param { Array<Permissions> } permissionList - Indicates the list of permissions to be requested. This parameter cannot be null or empty.
2227c804472Sopenharmony_ci     * @returns { Promise<PermissionRequestResult> } Returns result of requesting permissions.
2237c804472Sopenharmony_ci     * @throws { BusinessError } 401 - The parameter check failed.
2247c804472Sopenharmony_ci     * @throws { BusinessError } 12100001 - The parameter is invalid. The context is invalid when it does not belong to the application itself.
2257c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
2267c804472Sopenharmony_ci     * @stagemodelonly
2277c804472Sopenharmony_ci     * @since 9
2287c804472Sopenharmony_ci     */
2297c804472Sopenharmony_ci    /**
2307c804472Sopenharmony_ci     * Requests certain permissions from the user.
2317c804472Sopenharmony_ci     *
2327c804472Sopenharmony_ci     * @param { Context } context - The context that initiates the permission request.
2337c804472Sopenharmony_ci     * @param { Array<Permissions> } permissionList - Indicates the list of permissions to be requested. This parameter cannot be null or empty.
2347c804472Sopenharmony_ci     * @returns { Promise<PermissionRequestResult> } Returns result of requesting permissions.
2357c804472Sopenharmony_ci     * @throws { BusinessError } 401 - The parameter check failed.
2367c804472Sopenharmony_ci     * @throws { BusinessError } 12100001 - The parameter is invalid. The context is invalid when it does not belong to the application itself.
2377c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
2387c804472Sopenharmony_ci     * @stagemodelonly
2397c804472Sopenharmony_ci     * @crossplatform
2407c804472Sopenharmony_ci     * @since 10
2417c804472Sopenharmony_ci     */
2427c804472Sopenharmony_ci    /**
2437c804472Sopenharmony_ci     * Requests certain permissions from the user.
2447c804472Sopenharmony_ci     *
2457c804472Sopenharmony_ci     * @param { Context } context - The context that initiates the permission request.
2467c804472Sopenharmony_ci     * @param { Array<Permissions> } permissionList - Indicates the list of permissions to be requested. This parameter cannot be null or empty.
2477c804472Sopenharmony_ci     * @returns { Promise<PermissionRequestResult> } Returns result of requesting permissions.
2487c804472Sopenharmony_ci     * @throws { BusinessError } 401 - The parameter check failed.
2497c804472Sopenharmony_ci     * @throws { BusinessError } 12100001 - The parameter is invalid. The context is invalid when it does not belong to the application itself.
2507c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
2517c804472Sopenharmony_ci     * @stagemodelonly
2527c804472Sopenharmony_ci     * @crossplatform
2537c804472Sopenharmony_ci     * @atomicservice
2547c804472Sopenharmony_ci     * @since 11
2557c804472Sopenharmony_ci     */
2567c804472Sopenharmony_ci    requestPermissionsFromUser(context: Context, permissionList: Array<Permissions>): Promise<PermissionRequestResult>;
2577c804472Sopenharmony_ci
2587c804472Sopenharmony_ci    /**
2597c804472Sopenharmony_ci     * Grants a specified user_grant permission to the given application.
2607c804472Sopenharmony_ci     *
2617c804472Sopenharmony_ci     * @permission ohos.permission.GRANT_SENSITIVE_PERMISSIONS
2627c804472Sopenharmony_ci     * @param { number } tokenID - Token ID of the application.
2637c804472Sopenharmony_ci     * @param { Permissions } permissionName - Name of the permission to be granted.
2647c804472Sopenharmony_ci     * @param { number } permissionFlags - Flags of permission state.
2657c804472Sopenharmony_ci     * @returns { Promise<void> } The promise returned by the function.
2667c804472Sopenharmony_ci     * @throws { BusinessError } 401 - The parameter check failed.
2677c804472Sopenharmony_ci     * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.GRANT_SENSITIVE_PERMISSIONS".
2687c804472Sopenharmony_ci     * @throws { BusinessError } 202 - Not System App. Interface caller is not a system app.
2697c804472Sopenharmony_ci     * @throws { BusinessError } 12100001 - The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256,
2707c804472Sopenharmony_ci     *  or the flags value is invalid.
2717c804472Sopenharmony_ci     * @throws { BusinessError } 12100002 - The specified tokenID does not exist.
2727c804472Sopenharmony_ci     * @throws { BusinessError } 12100003 - The specified permission does not exist.
2737c804472Sopenharmony_ci     * @throws { BusinessError } 12100006 - The application specified by the tokenID is not allowed to be granted with the specified permission.
2747c804472Sopenharmony_ci     *  Either the application is a sandbox or the tokenID is from a remote device.
2757c804472Sopenharmony_ci     * @throws { BusinessError } 12100007 - Service is abnormal.
2767c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
2777c804472Sopenharmony_ci     * @systemapi
2787c804472Sopenharmony_ci     * @since 8
2797c804472Sopenharmony_ci     */
2807c804472Sopenharmony_ci    grantUserGrantedPermission(tokenID: number, permissionName: Permissions, permissionFlags: number): Promise<void>;
2817c804472Sopenharmony_ci
2827c804472Sopenharmony_ci    /**
2837c804472Sopenharmony_ci     * Grants a specified user_grant permission to the given application.
2847c804472Sopenharmony_ci     *
2857c804472Sopenharmony_ci     * @permission ohos.permission.GRANT_SENSITIVE_PERMISSIONS
2867c804472Sopenharmony_ci     * @param { number } tokenID - Token ID of the application.
2877c804472Sopenharmony_ci     * @param { Permissions } permissionName - Name of the permission to be granted.
2887c804472Sopenharmony_ci     * @param { number } permissionFlags - Flags of permission state.
2897c804472Sopenharmony_ci     * @param { AsyncCallback<void> } callback - Asynchronous callback interface.
2907c804472Sopenharmony_ci     * @throws { BusinessError } 401 - The parameter check failed.
2917c804472Sopenharmony_ci     * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.GRANT_SENSITIVE_PERMISSIONS".
2927c804472Sopenharmony_ci     * @throws { BusinessError } 202 - Not System App. Interface caller is not a system app.
2937c804472Sopenharmony_ci     * @throws { BusinessError } 12100001 - The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256,
2947c804472Sopenharmony_ci     *  or the flags value is invalid.
2957c804472Sopenharmony_ci     * @throws { BusinessError } 12100002 - The specified tokenID does not exist.
2967c804472Sopenharmony_ci     * @throws { BusinessError } 12100003 - The specified permission does not exist.
2977c804472Sopenharmony_ci     * @throws { BusinessError } 12100006 - The application specified by the tokenID is not allowed to be granted with the specified permission.
2987c804472Sopenharmony_ci     *  Either the application is a sandbox or the tokenID is from a remote device.
2997c804472Sopenharmony_ci     * @throws { BusinessError } 12100007 - Service is abnormal.
3007c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
3017c804472Sopenharmony_ci     * @systemapi
3027c804472Sopenharmony_ci     * @since 8
3037c804472Sopenharmony_ci     */
3047c804472Sopenharmony_ci    grantUserGrantedPermission(
3057c804472Sopenharmony_ci      tokenID: number,
3067c804472Sopenharmony_ci      permissionName: Permissions,
3077c804472Sopenharmony_ci      permissionFlags: number,
3087c804472Sopenharmony_ci      callback: AsyncCallback<void>
3097c804472Sopenharmony_ci    ): void;
3107c804472Sopenharmony_ci
3117c804472Sopenharmony_ci    /**
3127c804472Sopenharmony_ci     * Revoke a specified user_grant permission to the given application.
3137c804472Sopenharmony_ci     *
3147c804472Sopenharmony_ci     * @permission ohos.permission.REVOKE_SENSITIVE_PERMISSIONS
3157c804472Sopenharmony_ci     * @param { number } tokenID - Token ID of the application.
3167c804472Sopenharmony_ci     * @param { Permissions } permissionName - Name of the permission to be revoked.
3177c804472Sopenharmony_ci     * @param { number } permissionFlags - Flags of permission state.
3187c804472Sopenharmony_ci     * @returns { Promise<void> } The promise returned by the function.
3197c804472Sopenharmony_ci     * @throws { BusinessError } 401 - The parameter check failed.
3207c804472Sopenharmony_ci     * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.REVOKE_SENSITIVE_PERMISSIONS".
3217c804472Sopenharmony_ci     * @throws { BusinessError } 202 - Not System App. Interface caller is not a system app.
3227c804472Sopenharmony_ci     * @throws { BusinessError } 12100001 - The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256,
3237c804472Sopenharmony_ci     *  or the flags value is invalid.
3247c804472Sopenharmony_ci     * @throws { BusinessError } 12100002 - The specified tokenID does not exist.
3257c804472Sopenharmony_ci     * @throws { BusinessError } 12100003 - The specified permission does not exist.
3267c804472Sopenharmony_ci     * @throws { BusinessError } 12100006 - The application specified by the tokenID is not allowed to be revoked with the specified permission.
3277c804472Sopenharmony_ci     *  Either the application is a sandbox or the tokenID is from a remote device.
3287c804472Sopenharmony_ci     * @throws { BusinessError } 12100007 - Service is abnormal.
3297c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
3307c804472Sopenharmony_ci     * @systemapi
3317c804472Sopenharmony_ci     * @since 8
3327c804472Sopenharmony_ci     */
3337c804472Sopenharmony_ci    revokeUserGrantedPermission(tokenID: number, permissionName: Permissions, permissionFlags: number): Promise<void>;
3347c804472Sopenharmony_ci
3357c804472Sopenharmony_ci    /**
3367c804472Sopenharmony_ci     * Revoke a specified user_grant permission to the given application.
3377c804472Sopenharmony_ci     *
3387c804472Sopenharmony_ci     * @permission ohos.permission.REVOKE_SENSITIVE_PERMISSIONS
3397c804472Sopenharmony_ci     * @param { number } tokenID - Token ID of the application.
3407c804472Sopenharmony_ci     * @param { Permissions } permissionName - Name of the permission to be revoked.
3417c804472Sopenharmony_ci     * @param { number } permissionFlags - Flags of permission state.
3427c804472Sopenharmony_ci     * @param { AsyncCallback<void> } callback - Asynchronous callback interface.
3437c804472Sopenharmony_ci     * @throws { BusinessError } 401 - The parameter check failed.
3447c804472Sopenharmony_ci     * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.REVOKE_SENSITIVE_PERMISSIONS".
3457c804472Sopenharmony_ci     * @throws { BusinessError } 202 - Not System App. Interface caller is not a system app.
3467c804472Sopenharmony_ci     * @throws { BusinessError } 12100001 - The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256,
3477c804472Sopenharmony_ci     *  or the flags value is invalid.
3487c804472Sopenharmony_ci     * @throws { BusinessError } 12100002 - The specified tokenID does not exist.
3497c804472Sopenharmony_ci     * @throws { BusinessError } 12100003 - The specified permission does not exist.
3507c804472Sopenharmony_ci     * @throws { BusinessError } 12100006 - The application specified by the tokenID is not allowed to be revoked with the specified permission.
3517c804472Sopenharmony_ci     *  Either the application is a sandbox or the tokenID is from a remote device.
3527c804472Sopenharmony_ci     * @throws { BusinessError } 12100007 - Service is abnormal.
3537c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
3547c804472Sopenharmony_ci     * @systemapi
3557c804472Sopenharmony_ci     * @since 8
3567c804472Sopenharmony_ci     */
3577c804472Sopenharmony_ci    revokeUserGrantedPermission(
3587c804472Sopenharmony_ci      tokenID: number,
3597c804472Sopenharmony_ci      permissionName: Permissions,
3607c804472Sopenharmony_ci      permissionFlags: number,
3617c804472Sopenharmony_ci      callback: AsyncCallback<void>
3627c804472Sopenharmony_ci    ): void;
3637c804472Sopenharmony_ci
3647c804472Sopenharmony_ci    /**
3657c804472Sopenharmony_ci     * Queries specified permission flags of the given application.
3667c804472Sopenharmony_ci     *
3677c804472Sopenharmony_ci     * @permission ohos.permission.GET_SENSITIVE_PERMISSIONS or ohos.permission.GRANT_SENSITIVE_PERMISSIONS or ohos.permission.REVOKE_SENSITIVE_PERMISSIONS
3687c804472Sopenharmony_ci     * @param { number } tokenID - Token ID of the application.
3697c804472Sopenharmony_ci     * @param { Permissions } permissionName - Name of the permission to be get.
3707c804472Sopenharmony_ci     * @returns { Promise<number> } Return permission flags.
3717c804472Sopenharmony_ci     * @throws { BusinessError } 401 - The parameter check failed.
3727c804472Sopenharmony_ci     * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission specified below.
3737c804472Sopenharmony_ci     * @throws { BusinessError } 202 - Not System App. Interface caller is not a system app.
3747c804472Sopenharmony_ci     * @throws { BusinessError } 12100001 - The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256.
3757c804472Sopenharmony_ci     * @throws { BusinessError } 12100002 - The specified tokenID does not exist.
3767c804472Sopenharmony_ci     * @throws { BusinessError } 12100003 - The specified permission does not exist.
3777c804472Sopenharmony_ci     * @throws { BusinessError } 12100006 - The operation is not allowed. Either the application is a sandbox or the tokenID is from a remote device.
3787c804472Sopenharmony_ci     * @throws { BusinessError } 12100007 - Service is abnormal.
3797c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
3807c804472Sopenharmony_ci     * @systemapi
3817c804472Sopenharmony_ci     * @since 8
3827c804472Sopenharmony_ci     */
3837c804472Sopenharmony_ci    getPermissionFlags(tokenID: number, permissionName: Permissions): Promise<number>;
3847c804472Sopenharmony_ci
3857c804472Sopenharmony_ci    /**
3867c804472Sopenharmony_ci     * Queries permission management version.
3877c804472Sopenharmony_ci     *
3887c804472Sopenharmony_ci     * @returns { Promise<number> } Return permission version.
3897c804472Sopenharmony_ci     * @throws { BusinessError } 202 - Not System App. Interface caller is not a system app.
3907c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
3917c804472Sopenharmony_ci     * @systemapi
3927c804472Sopenharmony_ci     * @since 9
3937c804472Sopenharmony_ci     */
3947c804472Sopenharmony_ci    getVersion(): Promise<number>;
3957c804472Sopenharmony_ci
3967c804472Sopenharmony_ci    /**
3977c804472Sopenharmony_ci     * Queries permissions status of the given application.
3987c804472Sopenharmony_ci     *
3997c804472Sopenharmony_ci     * @permission ohos.permission.GET_SENSITIVE_PERMISSIONS
4007c804472Sopenharmony_ci     * @param { number } tokenID - Token ID of the application.
4017c804472Sopenharmony_ci     * @param { Array<Permissions> } permissionList - Indicates the list of permissions to be queried. This parameter cannot be null or empty.
4027c804472Sopenharmony_ci     * @returns { Promise<Array<PermissionStatus>> } Return permission status.
4037c804472Sopenharmony_ci     * @throws { BusinessError } 401 - The parameter check failed.
4047c804472Sopenharmony_ci     * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.GET_SENSITIVE_PERMISSIONS".
4057c804472Sopenharmony_ci     * @throws { BusinessError } 202 - Not System App. Interface caller is not a system app.
4067c804472Sopenharmony_ci     * @throws { BusinessError } 12100001 - The parameter is invalid. The tokenID is 0, or the permissionList is empty.
4077c804472Sopenharmony_ci     * @throws { BusinessError } 12100002 - The specified tokenID does not exist.
4087c804472Sopenharmony_ci     * @throws { BusinessError } 12100007 - Service is abnormal.
4097c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
4107c804472Sopenharmony_ci     * @systemapi
4117c804472Sopenharmony_ci     * @since 12
4127c804472Sopenharmony_ci     */
4137c804472Sopenharmony_ci    getPermissionsStatus(tokenID: number, permissionList: Array<Permissions>): Promise<Array<PermissionStatus>>;
4147c804472Sopenharmony_ci
4157c804472Sopenharmony_ci    /**
4167c804472Sopenharmony_ci     * Registers a permission state callback so that the application can be notified upon specified permission state of specified applications changes.
4177c804472Sopenharmony_ci     *
4187c804472Sopenharmony_ci     * @permission ohos.permission.GET_SENSITIVE_PERMISSIONS
4197c804472Sopenharmony_ci     * @param { 'permissionStateChange' } type - Event type.
4207c804472Sopenharmony_ci     * @param { Array<number> } tokenIDList - A list of permissions that specify the permissions to be listened on. The value in the list can be:
4217c804472Sopenharmony_ci     *        <ul>
4227c804472Sopenharmony_ci     *        <li>{@code empty} - Indicates that the application can be notified if the specified permission state of any applications changes.
4237c804472Sopenharmony_ci     *        </li>
4247c804472Sopenharmony_ci     *        <li>{@code non-empty} - Indicates that the application can only be notified if the specified
4257c804472Sopenharmony_ci     *                                permission state of the specified applications change.
4267c804472Sopenharmony_ci     *        </li>
4277c804472Sopenharmony_ci     *        </ul>
4287c804472Sopenharmony_ci     * @param { Array<Permissions> } permissionList - A list of permissions that specify the permissions to be listened on. The value in the list can be:
4297c804472Sopenharmony_ci     *        <ul>
4307c804472Sopenharmony_ci     *        <li>{@code empty} - Indicates that the application can be notified if any permission state of the specified applications changes.
4317c804472Sopenharmony_ci     *        </li>
4327c804472Sopenharmony_ci     *        <li>{@code non-empty} - Indicates that the application can only be notified if the specified
4337c804472Sopenharmony_ci     *                                permission state of the specified applications changes.
4347c804472Sopenharmony_ci     *        </li>
4357c804472Sopenharmony_ci     *        </ul>
4367c804472Sopenharmony_ci     * @param { Callback<PermissionStateChangeInfo> } callback - Callback for the result from registering permissions.
4377c804472Sopenharmony_ci     * @throws { BusinessError } 401 - The parameter check failed.
4387c804472Sopenharmony_ci     * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.GET_SENSITIVE_PERMISSIONS".
4397c804472Sopenharmony_ci     * @throws { BusinessError } 202 - Not System App. Interface caller is not a system app.
4407c804472Sopenharmony_ci     * @throws { BusinessError } 12100001 - The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256.
4417c804472Sopenharmony_ci     * @throws { BusinessError } 12100004 - The interface is called repeatedly with the same input.
4427c804472Sopenharmony_ci     * @throws { BusinessError } 12100005 - The registration time has exceeded the limitation.
4437c804472Sopenharmony_ci     * @throws { BusinessError } 12100007 - Service is abnormal.
4447c804472Sopenharmony_ci     * @throws { BusinessError } 12100008 - Out of memory.
4457c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
4467c804472Sopenharmony_ci     * @systemapi
4477c804472Sopenharmony_ci     * @since 9
4487c804472Sopenharmony_ci     */
4497c804472Sopenharmony_ci    on(
4507c804472Sopenharmony_ci      type: 'permissionStateChange',
4517c804472Sopenharmony_ci      tokenIDList: Array<number>,
4527c804472Sopenharmony_ci      permissionList: Array<Permissions>,
4537c804472Sopenharmony_ci      callback: Callback<PermissionStateChangeInfo>
4547c804472Sopenharmony_ci    ): void;
4557c804472Sopenharmony_ci
4567c804472Sopenharmony_ci    /**
4577c804472Sopenharmony_ci     * Unregisters a permission state callback so that the specified applications cannot be notified upon specified permissions state changes anymore.
4587c804472Sopenharmony_ci     *
4597c804472Sopenharmony_ci     * @permission ohos.permission.GET_SENSITIVE_PERMISSIONS
4607c804472Sopenharmony_ci     * @param { 'permissionStateChange' } type - Event type.
4617c804472Sopenharmony_ci     * @param { Array<number> } tokenIDList - A list of permissions that specify the permissions to be listened on.
4627c804472Sopenharmony_ci     *  It should correspond to the value registered by function of "on", whose type is "permissionStateChange".
4637c804472Sopenharmony_ci     * @param { Array<Permissions> } permissionList - A list of permissions that specify the permissions to be listened on.
4647c804472Sopenharmony_ci     *  It should correspond to the value registered by function of "on", whose type is "permissionStateChange".
4657c804472Sopenharmony_ci     * @param { Callback<PermissionStateChangeInfo> } callback - Callback for the result from unregistering permissions.
4667c804472Sopenharmony_ci     * @throws { BusinessError } 401 - The parameter check failed.
4677c804472Sopenharmony_ci     * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.GET_SENSITIVE_PERMISSIONS".
4687c804472Sopenharmony_ci     * @throws { BusinessError } 202 - Not System App. Interface caller is not a system app.
4697c804472Sopenharmony_ci     * @throws { BusinessError } 12100001 - The parameter is invalid. The tokenIDs or permissionNames in the list are all invalid.
4707c804472Sopenharmony_ci     * @throws { BusinessError } 12100004 - The interface is not used together with "on".
4717c804472Sopenharmony_ci     * @throws { BusinessError } 12100007 - Service is abnormal.
4727c804472Sopenharmony_ci     * @throws { BusinessError } 12100008 - Out of memory.
4737c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
4747c804472Sopenharmony_ci     * @systemapi
4757c804472Sopenharmony_ci     * @since 9
4767c804472Sopenharmony_ci     */
4777c804472Sopenharmony_ci    off(
4787c804472Sopenharmony_ci      type: 'permissionStateChange',
4797c804472Sopenharmony_ci      tokenIDList: Array<number>,
4807c804472Sopenharmony_ci      permissionList: Array<Permissions>,
4817c804472Sopenharmony_ci      callback?: Callback<PermissionStateChangeInfo>
4827c804472Sopenharmony_ci    ): void;
4837c804472Sopenharmony_ci  }
4847c804472Sopenharmony_ci
4857c804472Sopenharmony_ci  /**
4867c804472Sopenharmony_ci   * GrantStatus.
4877c804472Sopenharmony_ci   *
4887c804472Sopenharmony_ci   * @enum { number }
4897c804472Sopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
4907c804472Sopenharmony_ci   * @since 8
4917c804472Sopenharmony_ci   */
4927c804472Sopenharmony_ci  /**
4937c804472Sopenharmony_ci   * GrantStatus.
4947c804472Sopenharmony_ci   *
4957c804472Sopenharmony_ci   * @enum { number }
4967c804472Sopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
4977c804472Sopenharmony_ci   * @crossplatform
4987c804472Sopenharmony_ci   * @since 10
4997c804472Sopenharmony_ci   */
5007c804472Sopenharmony_ci  /**
5017c804472Sopenharmony_ci   * GrantStatus.
5027c804472Sopenharmony_ci   *
5037c804472Sopenharmony_ci   * @enum { number }
5047c804472Sopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
5057c804472Sopenharmony_ci   * @crossplatform
5067c804472Sopenharmony_ci   * @atomicservice
5077c804472Sopenharmony_ci   * @since 11
5087c804472Sopenharmony_ci   */
5097c804472Sopenharmony_ci  export enum GrantStatus {
5107c804472Sopenharmony_ci    /**
5117c804472Sopenharmony_ci     * access_token permission check fail
5127c804472Sopenharmony_ci     *
5137c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
5147c804472Sopenharmony_ci     * @since 8
5157c804472Sopenharmony_ci     */
5167c804472Sopenharmony_ci    /**
5177c804472Sopenharmony_ci     * access_token permission check fail
5187c804472Sopenharmony_ci     *
5197c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
5207c804472Sopenharmony_ci     * @crossplatform
5217c804472Sopenharmony_ci     * @since 10
5227c804472Sopenharmony_ci     */
5237c804472Sopenharmony_ci    /**
5247c804472Sopenharmony_ci     * access_token permission check fail
5257c804472Sopenharmony_ci     *
5267c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
5277c804472Sopenharmony_ci     * @crossplatform
5287c804472Sopenharmony_ci     * @atomicservice
5297c804472Sopenharmony_ci     * @since 11
5307c804472Sopenharmony_ci     */
5317c804472Sopenharmony_ci    PERMISSION_DENIED = -1,
5327c804472Sopenharmony_ci    /**
5337c804472Sopenharmony_ci     * access_token permission check success
5347c804472Sopenharmony_ci     *
5357c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
5367c804472Sopenharmony_ci     * @since 8
5377c804472Sopenharmony_ci     */
5387c804472Sopenharmony_ci    /**
5397c804472Sopenharmony_ci     * access_token permission check success
5407c804472Sopenharmony_ci     *
5417c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
5427c804472Sopenharmony_ci     * @crossplatform
5437c804472Sopenharmony_ci     * @since 10
5447c804472Sopenharmony_ci     */
5457c804472Sopenharmony_ci    /**
5467c804472Sopenharmony_ci     * access_token permission check success
5477c804472Sopenharmony_ci     *
5487c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
5497c804472Sopenharmony_ci     * @crossplatform
5507c804472Sopenharmony_ci     * @atomicservice
5517c804472Sopenharmony_ci     * @since 11
5527c804472Sopenharmony_ci     */
5537c804472Sopenharmony_ci    PERMISSION_GRANTED = 0
5547c804472Sopenharmony_ci  }
5557c804472Sopenharmony_ci
5567c804472Sopenharmony_ci  /**
5577c804472Sopenharmony_ci   * Enum for permission state change type.
5587c804472Sopenharmony_ci   *
5597c804472Sopenharmony_ci   * @enum { number }
5607c804472Sopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
5617c804472Sopenharmony_ci   * @systemapi
5627c804472Sopenharmony_ci   * @since 9
5637c804472Sopenharmony_ci   */
5647c804472Sopenharmony_ci  export enum PermissionStateChangeType {
5657c804472Sopenharmony_ci    /**
5667c804472Sopenharmony_ci     * A granted user_grant permission is revoked.
5677c804472Sopenharmony_ci     *
5687c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
5697c804472Sopenharmony_ci     * @systemapi
5707c804472Sopenharmony_ci     * @since 9
5717c804472Sopenharmony_ci     */
5727c804472Sopenharmony_ci    PERMISSION_REVOKED_OPER = 0,
5737c804472Sopenharmony_ci    /**
5747c804472Sopenharmony_ci     * A user_grant permission is granted.
5757c804472Sopenharmony_ci     *
5767c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
5777c804472Sopenharmony_ci     * @systemapi
5787c804472Sopenharmony_ci     * @since 9
5797c804472Sopenharmony_ci     */
5807c804472Sopenharmony_ci    PERMISSION_GRANTED_OPER = 1
5817c804472Sopenharmony_ci  }
5827c804472Sopenharmony_ci
5837c804472Sopenharmony_ci  /**
5847c804472Sopenharmony_ci   * Indicates the information of permission state change.
5857c804472Sopenharmony_ci   *
5867c804472Sopenharmony_ci   * @interface PermissionStateChangeInfo
5877c804472Sopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
5887c804472Sopenharmony_ci   * @systemapi
5897c804472Sopenharmony_ci   * @since 9
5907c804472Sopenharmony_ci   * @name PermissionStateChangeInfo
5917c804472Sopenharmony_ci   */
5927c804472Sopenharmony_ci  interface PermissionStateChangeInfo {
5937c804472Sopenharmony_ci    /**
5947c804472Sopenharmony_ci     * Indicates the permission state change type.
5957c804472Sopenharmony_ci     *
5967c804472Sopenharmony_ci     * @type { PermissionStateChangeType }
5977c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
5987c804472Sopenharmony_ci     * @systemapi
5997c804472Sopenharmony_ci     * @since 9
6007c804472Sopenharmony_ci     */
6017c804472Sopenharmony_ci    change: PermissionStateChangeType;
6027c804472Sopenharmony_ci
6037c804472Sopenharmony_ci    /**
6047c804472Sopenharmony_ci     * Indicates the application whose permission state has been changed.
6057c804472Sopenharmony_ci     *
6067c804472Sopenharmony_ci     * @type { number }
6077c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
6087c804472Sopenharmony_ci     * @systemapi
6097c804472Sopenharmony_ci     * @since 9
6107c804472Sopenharmony_ci     */
6117c804472Sopenharmony_ci    tokenID: number;
6127c804472Sopenharmony_ci
6137c804472Sopenharmony_ci    /**
6147c804472Sopenharmony_ci     * Indicates the permission whose state has been changed.
6157c804472Sopenharmony_ci     *
6167c804472Sopenharmony_ci     * @type { Permissions }
6177c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
6187c804472Sopenharmony_ci     * @systemapi
6197c804472Sopenharmony_ci     * @since 9
6207c804472Sopenharmony_ci     */
6217c804472Sopenharmony_ci    permissionName: Permissions;
6227c804472Sopenharmony_ci  }
6237c804472Sopenharmony_ci
6247c804472Sopenharmony_ci  /**
6257c804472Sopenharmony_ci   * PermissionStatus.
6267c804472Sopenharmony_ci   *
6277c804472Sopenharmony_ci   * @enum { number }
6287c804472Sopenharmony_ci   * @syscap SystemCapability.Security.AccessToken
6297c804472Sopenharmony_ci   * @systemapi
6307c804472Sopenharmony_ci   * @since 12
6317c804472Sopenharmony_ci   */
6327c804472Sopenharmony_ci  export enum PermissionStatus {
6337c804472Sopenharmony_ci    /**
6347c804472Sopenharmony_ci     * permission has been denied, only can change it in settings
6357c804472Sopenharmony_ci     *
6367c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
6377c804472Sopenharmony_ci     * @systemapi
6387c804472Sopenharmony_ci     * @since 12
6397c804472Sopenharmony_ci     */
6407c804472Sopenharmony_ci    DENIED = -1,
6417c804472Sopenharmony_ci    /**
6427c804472Sopenharmony_ci     * permission has been granted
6437c804472Sopenharmony_ci     *
6447c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
6457c804472Sopenharmony_ci     * @systemapi
6467c804472Sopenharmony_ci     * @since 12
6477c804472Sopenharmony_ci     */
6487c804472Sopenharmony_ci    GRANTED = 0,
6497c804472Sopenharmony_ci    /**
6507c804472Sopenharmony_ci     * permission is not determined
6517c804472Sopenharmony_ci     *
6527c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
6537c804472Sopenharmony_ci     * @systemapi
6547c804472Sopenharmony_ci     * @since 12
6557c804472Sopenharmony_ci     */
6567c804472Sopenharmony_ci    NOT_DETERMINED = 1,
6577c804472Sopenharmony_ci    /**
6587c804472Sopenharmony_ci     * permission is invalid
6597c804472Sopenharmony_ci     *
6607c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
6617c804472Sopenharmony_ci     * @systemapi
6627c804472Sopenharmony_ci     * @since 12
6637c804472Sopenharmony_ci     */
6647c804472Sopenharmony_ci    INVALID = 2,
6657c804472Sopenharmony_ci    /**
6667c804472Sopenharmony_ci     * permission has been restricted
6677c804472Sopenharmony_ci     *
6687c804472Sopenharmony_ci     * @syscap SystemCapability.Security.AccessToken
6697c804472Sopenharmony_ci     * @systemapi
6707c804472Sopenharmony_ci     * @since 12
6717c804472Sopenharmony_ci     */
6727c804472Sopenharmony_ci    RESTRICTED = 3
6737c804472Sopenharmony_ci  }
6747c804472Sopenharmony_ci}
6757c804472Sopenharmony_ci
6767c804472Sopenharmony_ciexport default abilityAccessCtrl;
6777c804472Sopenharmony_ciexport { Permissions };
6787c804472Sopenharmony_ci/**
6797c804472Sopenharmony_ci * PermissionRequestResult interface.
6807c804472Sopenharmony_ci *
6817c804472Sopenharmony_ci * @syscap SystemCapability.Security.AccessToken
6827c804472Sopenharmony_ci * @stagemodelonly
6837c804472Sopenharmony_ci * @crossplatform
6847c804472Sopenharmony_ci * @since 10
6857c804472Sopenharmony_ci */
6867c804472Sopenharmony_ci/**
6877c804472Sopenharmony_ci * PermissionRequestResult interface.
6887c804472Sopenharmony_ci *
6897c804472Sopenharmony_ci * @syscap SystemCapability.Security.AccessToken
6907c804472Sopenharmony_ci * @stagemodelonly
6917c804472Sopenharmony_ci * @crossplatform
6927c804472Sopenharmony_ci * @atomicservice
6937c804472Sopenharmony_ci * @since 11
6947c804472Sopenharmony_ci */
6957c804472Sopenharmony_ciexport type PermissionRequestResult = _PermissionRequestResult;
6967c804472Sopenharmony_ci/**
6977c804472Sopenharmony_ci * Context interface.
6987c804472Sopenharmony_ci *
6997c804472Sopenharmony_ci * @syscap SystemCapability.Security.AccessToken
7007c804472Sopenharmony_ci * @stagemodelonly
7017c804472Sopenharmony_ci * @crossplatform
7027c804472Sopenharmony_ci * @since 10
7037c804472Sopenharmony_ci */
7047c804472Sopenharmony_ci/**
7057c804472Sopenharmony_ci * Context interface.
7067c804472Sopenharmony_ci *
7077c804472Sopenharmony_ci * @syscap SystemCapability.Security.AccessToken
7087c804472Sopenharmony_ci * @stagemodelonly
7097c804472Sopenharmony_ci * @crossplatform
7107c804472Sopenharmony_ci * @atomicservice
7117c804472Sopenharmony_ci * @since 11
7127c804472Sopenharmony_ci */
7137c804472Sopenharmony_ciexport type Context = _Context;
714