19b19030aSopenharmony_ci/*
29b19030aSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
39b19030aSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
49b19030aSopenharmony_ci * you may not use this file except in compliance with the License.
59b19030aSopenharmony_ci * You may obtain a copy of the License at
69b19030aSopenharmony_ci *
79b19030aSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
89b19030aSopenharmony_ci *
99b19030aSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
109b19030aSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
119b19030aSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
129b19030aSopenharmony_ci * See the License for the specific language governing permissions and
139b19030aSopenharmony_ci * limitations under the License.
149b19030aSopenharmony_ci */
159b19030aSopenharmony_ci
169b19030aSopenharmony_ciimport type common from '@ohos.app.ability.common';
179b19030aSopenharmony_ciimport update from '@ohos.update';
189b19030aSopenharmony_ciimport type { Features, ChangelogType, CountDownDialogType } from '../const/update_const';
199b19030aSopenharmony_ci
209b19030aSopenharmony_ci/**
219b19030aSopenharmony_ci * 升级控制接口
229b19030aSopenharmony_ci *
239b19030aSopenharmony_ci * @since 2022-12-01
249b19030aSopenharmony_ci */
259b19030aSopenharmony_ciexport interface IUpgradeControl {
269b19030aSopenharmony_ci  /**
279b19030aSopenharmony_ci   * 升级UX
289b19030aSopenharmony_ci   */
299b19030aSopenharmony_ci  page: IPage,
309b19030aSopenharmony_ci
319b19030aSopenharmony_ci  /**
329b19030aSopenharmony_ci   * 升级提醒
339b19030aSopenharmony_ci   */
349b19030aSopenharmony_ci  notify: INotify
359b19030aSopenharmony_ci}
369b19030aSopenharmony_ci
379b19030aSopenharmony_ci/**
389b19030aSopenharmony_ci * 更新日志
399b19030aSopenharmony_ci *
409b19030aSopenharmony_ci * @since 2022-12-01
419b19030aSopenharmony_ci */
429b19030aSopenharmony_ciexport interface ChangelogInfo {
439b19030aSopenharmony_ci  /**
449b19030aSopenharmony_ci   * 版本号
459b19030aSopenharmony_ci   */
469b19030aSopenharmony_ci  version?: string;
479b19030aSopenharmony_ci
489b19030aSopenharmony_ci  /**
499b19030aSopenharmony_ci   * 版本大小
509b19030aSopenharmony_ci   */
519b19030aSopenharmony_ci  size?: string;
529b19030aSopenharmony_ci
539b19030aSopenharmony_ci  /**
549b19030aSopenharmony_ci   * 更新日志
559b19030aSopenharmony_ci   */
569b19030aSopenharmony_ci  content: string;
579b19030aSopenharmony_ci
589b19030aSopenharmony_ci  /**
599b19030aSopenharmony_ci   * 更新日志类型
609b19030aSopenharmony_ci   */
619b19030aSopenharmony_ci  displayType?: ChangelogType;
629b19030aSopenharmony_ci
639b19030aSopenharmony_ci  /**
649b19030aSopenharmony_ci   * 更新日志--概述
659b19030aSopenharmony_ci   */
669b19030aSopenharmony_ci  headFeatures?: Features;
679b19030aSopenharmony_ci
689b19030aSopenharmony_ci  /**
699b19030aSopenharmony_ci   * 更新日志--更新注意事项
709b19030aSopenharmony_ci   */
719b19030aSopenharmony_ci  endFeatures?: Features;
729b19030aSopenharmony_ci
739b19030aSopenharmony_ci  /**
749b19030aSopenharmony_ci   * 更新日志--具体内容
759b19030aSopenharmony_ci   */
769b19030aSopenharmony_ci  contentFeatures?: Array<Features>;
779b19030aSopenharmony_ci}
789b19030aSopenharmony_ci
799b19030aSopenharmony_ci/**
809b19030aSopenharmony_ci * 倒计时弹框信息
819b19030aSopenharmony_ci *
829b19030aSopenharmony_ci * @since 2022-12-01
839b19030aSopenharmony_ci */
849b19030aSopenharmony_ciexport interface CountDownDialogInfo {
859b19030aSopenharmony_ci  /**
869b19030aSopenharmony_ci   * 弹框消息体
879b19030aSopenharmony_ci   */
889b19030aSopenharmony_ci  dialogText: Resource;
899b19030aSopenharmony_ci
909b19030aSopenharmony_ci  /**
919b19030aSopenharmony_ci   * 弹框类型
929b19030aSopenharmony_ci   */
939b19030aSopenharmony_ci  dialogType: CountDownDialogType;
949b19030aSopenharmony_ci}
959b19030aSopenharmony_ci
969b19030aSopenharmony_ci/**
979b19030aSopenharmony_ci * 界面数据
989b19030aSopenharmony_ci *
999b19030aSopenharmony_ci * @since 2022-12-01
1009b19030aSopenharmony_ci */
1019b19030aSopenharmony_ciexport interface VersionPageInfo {
1029b19030aSopenharmony_ci  /**
1039b19030aSopenharmony_ci   * 版本号
1049b19030aSopenharmony_ci   */
1059b19030aSopenharmony_ci  version: string;
1069b19030aSopenharmony_ci
1079b19030aSopenharmony_ci  /**
1089b19030aSopenharmony_ci   * 版本大小
1099b19030aSopenharmony_ci   */
1109b19030aSopenharmony_ci  size?: number;
1119b19030aSopenharmony_ci
1129b19030aSopenharmony_ci  /**
1139b19030aSopenharmony_ci   * 生效模式
1149b19030aSopenharmony_ci   */
1159b19030aSopenharmony_ci  effectiveMode?: update.EffectiveMode;
1169b19030aSopenharmony_ci
1179b19030aSopenharmony_ci  /**
1189b19030aSopenharmony_ci   * 更新日志
1199b19030aSopenharmony_ci   */
1209b19030aSopenharmony_ci  changelog: ChangelogInfo;
1219b19030aSopenharmony_ci
1229b19030aSopenharmony_ci  /**
1239b19030aSopenharmony_ci   * 倒计时弹框显示内容
1249b19030aSopenharmony_ci   */
1259b19030aSopenharmony_ci  countDownDialogInfo?: CountDownDialogInfo;
1269b19030aSopenharmony_ci}
1279b19030aSopenharmony_ci
1289b19030aSopenharmony_ci/**
1299b19030aSopenharmony_ci * ux页面显示内容
1309b19030aSopenharmony_ci *
1319b19030aSopenharmony_ci * @since 2022-12-01
1329b19030aSopenharmony_ci */
1339b19030aSopenharmony_ciexport interface IPage {
1349b19030aSopenharmony_ci  /**
1359b19030aSopenharmony_ci   * 取新版本数据
1369b19030aSopenharmony_ci   *
1379b19030aSopenharmony_ci   * @param versionComponents 升级包
1389b19030aSopenharmony_ci   * @param componentDescriptions 更新日志
1399b19030aSopenharmony_ci   * @return Promise<VersionPageInfo> 具体的新版本数据
1409b19030aSopenharmony_ci   */
1419b19030aSopenharmony_ci  getNewVersionPageInfo(versionComponents: Array<update.VersionComponent>,
1429b19030aSopenharmony_ci    componentDescriptions?: Array<update.ComponentDescription>): Promise<VersionPageInfo>;
1439b19030aSopenharmony_ci
1449b19030aSopenharmony_ci  /**
1459b19030aSopenharmony_ci   * 取当前版本数据
1469b19030aSopenharmony_ci   *
1479b19030aSopenharmony_ci   * @param versionComponents 升级包
1489b19030aSopenharmony_ci   * @param componentDescriptions 更新日志
1499b19030aSopenharmony_ci   * @return VersionPageInfo 具体的当前版本数据
1509b19030aSopenharmony_ci   */
1519b19030aSopenharmony_ci  getCurrentVersionPageInfo(versionComponents: Array<update.VersionComponent>,
1529b19030aSopenharmony_ci    componentDescriptions: Array<update.ComponentDescription>): VersionPageInfo;
1539b19030aSopenharmony_ci}
1549b19030aSopenharmony_ci
1559b19030aSopenharmony_ci/**
1569b19030aSopenharmony_ci * 提醒
1579b19030aSopenharmony_ci *
1589b19030aSopenharmony_ci * @since 2022-12-01
1599b19030aSopenharmony_ci */
1609b19030aSopenharmony_ciexport interface INotify {
1619b19030aSopenharmony_ci  /**
1629b19030aSopenharmony_ci   * 下载进度通知
1639b19030aSopenharmony_ci   *
1649b19030aSopenharmony_ci   * @param version 版本号
1659b19030aSopenharmony_ci   * @param progress 进度
1669b19030aSopenharmony_ci   * @param context 上下文
1679b19030aSopenharmony_ci   */
1689b19030aSopenharmony_ci  showDownloading(version: string, progress: number, context: common.Context): Promise<void>;
1699b19030aSopenharmony_ci
1709b19030aSopenharmony_ci  /**
1719b19030aSopenharmony_ci   * 升级失败通知
1729b19030aSopenharmony_ci   *
1739b19030aSopenharmony_ci   * @param versionName 版本号
1749b19030aSopenharmony_ci   * @param context 上下文
1759b19030aSopenharmony_ci   */
1769b19030aSopenharmony_ci  showUpgradeFailed(versionName: string, context: common.Context): Promise<void>;
1779b19030aSopenharmony_ci
1789b19030aSopenharmony_ci  /**
1799b19030aSopenharmony_ci   * 升级成功通知
1809b19030aSopenharmony_ci   *
1819b19030aSopenharmony_ci   * @param versionName 版本号
1829b19030aSopenharmony_ci   * @param context 上下文
1839b19030aSopenharmony_ci   */
1849b19030aSopenharmony_ci  showUpgradeSuccess(versionName: string, context: common.Context): Promise<void>;
1859b19030aSopenharmony_ci
1869b19030aSopenharmony_ci  /**
1879b19030aSopenharmony_ci   * 安装中通知
1889b19030aSopenharmony_ci   *
1899b19030aSopenharmony_ci   * @param version 版本号
1909b19030aSopenharmony_ci   * @param progress 进度
1919b19030aSopenharmony_ci   * @param context 上下文
1929b19030aSopenharmony_ci   */
1939b19030aSopenharmony_ci  showInstalling(version: string, progress: number, context: common.Context): Promise<void>
1949b19030aSopenharmony_ci
1959b19030aSopenharmony_ci  /**
1969b19030aSopenharmony_ci   * 取消所有通知
1979b19030aSopenharmony_ci   */
1989b19030aSopenharmony_ci  cancelAll(): Promise<void>;
1999b19030aSopenharmony_ci
2009b19030aSopenharmony_ci  /**
2019b19030aSopenharmony_ci   * 检查notification服务是否启动
2029b19030aSopenharmony_ci   */
2039b19030aSopenharmony_ci   isServiceReady(): Promise<void>;
2049b19030aSopenharmony_ci}
2059b19030aSopenharmony_ci
206