/*

 * Copyright (c) 2022 Huawei Device Co., Ltd.

 * Licensed under the Apache License, Version 2.0 (the "License");

 * you may not use this file except in compliance with the License.

 * You may obtain a copy of the License at

 *

 *     http://www.apache.org/licenses/LICENSE-2.0

 *

 * Unless required by applicable law or agreed to in writing, software

 * distributed under the License is distributed on an "AS IS" BASIS,

 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

 * See the License for the specific language governing permissions and

 * limitations under the License.

 */



/**

 * @file

 * @kit AbilityKit

 */



import { ApplicationInfo } from './ApplicationInfo';

import { ElementName } from './ElementName';



/**

 * The module describes the ability information of the launcher application. The information can be obtained by calling

 * [getLauncherAbilityInfoSync]{@link ./../@ohos.bundle.launcherBundleManager:launcherBundleManager.getLauncherAbilityInfoSync}

 * <!--Del--> or

 * [getLauncherAbilityInfo]{@link ./../@ohos.bundle.launcherBundleManager:launcherBundleManager.getLauncherAbilityInfo(bundleName: string, userId: int, callback: AsyncCallback<Array<LauncherAbilityInfo>>)}

 * <!--DelEnd-->.

 *

 * @syscap SystemCapability.BundleManager.BundleFramework.Launcher

 * @since 18 dynamic

 * @since 23 static

 */

export interface LauncherAbilityInfo {

  /**

   * Application information of the launcher ability.

   *

   * @syscap SystemCapability.BundleManager.BundleFramework.Launcher

   * @since 18 dynamic

   * @since 23 static

   */

  readonly applicationInfo: ApplicationInfo;



  /**

   * Element name of the launcher ability.

   *

   * @syscap SystemCapability.BundleManager.BundleFramework.Launcher

   * @since 18 dynamic

   * @since 23 static

   */

  readonly elementName: ElementName;



  /**

   * Label ID of the launcher ability.

   *

   * @syscap SystemCapability.BundleManager.BundleFramework.Launcher

   * @since 18 dynamic

   * @since 23 static

   */

  readonly labelId: long;



  /**

   * Icon ID of the launcher ability.

   *

   * @syscap SystemCapability.BundleManager.BundleFramework.Launcher

   * @since 18 dynamic

   * @since 23 static

   */

  readonly iconId: long;



  /**

   * User ID of the launcher ability.

   *

   * @syscap SystemCapability.BundleManager.BundleFramework.Launcher

   * @since 18 dynamic

   * @since 23 static

   */

  readonly userId: int;



  /**

   * Timestamp when the launcher ability was installed, in milliseconds.

   *

   * @syscap SystemCapability.BundleManager.BundleFramework.Launcher

   * @since 18 dynamic

   * @since 23 static

   */

  readonly installTime: long;

}