• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16/**
17 * @file
18 * @kit BasicServicesKit
19 */
20
21import type { AsyncCallback } from './@ohos.base';
22
23/**
24 * A static class to do update for device.
25 *
26 * @namespace update
27 * @syscap SystemCapability.Update.UpdateService
28 * @systemapi hide for inner use.
29 * @since 9
30 */
31declare namespace update {
32  /**
33   * Get online update handler for the calling device.
34   *
35   * @param { UpgradeInfo } upgradeInfo - Indicates client app and business type.
36   * @returns { Updater } online update handler to perform online update.
37   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
38   * @syscap SystemCapability.Update.UpdateService
39   * @systemapi hide for inner use.
40   * @since 9
41   */
42  function getOnlineUpdater(upgradeInfo: UpgradeInfo): Updater;
43
44  /**
45   * Get restore handler.
46   *
47   * @returns { Restorer } restore handler to perform factory reset.
48   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
49   * @syscap SystemCapability.Update.UpdateService
50   * @systemapi hide for inner use.
51   * @since 9
52   */
53  function getRestorer(): Restorer;
54
55  /**
56   * Get local update handler.
57   *
58   * @returns { LocalUpdater } local update handler to perform local update.
59   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
60   * @syscap SystemCapability.Update.UpdateService
61   * @systemapi hide for inner use.
62   * @since 9
63   */
64  function getLocalUpdater(): LocalUpdater;
65
66  /**
67   * A static class to do online update.
68   *
69   * @interface Updater
70   * @syscap SystemCapability.Update.UpdateService
71   * @systemapi hide for inner use.
72   * @since 9
73   */
74  export interface Updater {
75    /**
76     * Check new version.
77     *
78     * @permission ohos.permission.UPDATE_SYSTEM
79     * @param { AsyncCallback<CheckResult> } callback - Callback used to return the result.
80     * @throws { BusinessError } 201 - Permission denied.
81     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
82     * @throws { BusinessError } 11500104 - IPC error.
83     * @syscap SystemCapability.Update.UpdateService
84     * @systemapi hide for inner use.
85     * @since 9
86     */
87    checkNewVersion(callback: AsyncCallback<CheckResult>): void;
88
89    /**
90     * Check new version.
91     *
92     * @permission ohos.permission.UPDATE_SYSTEM
93     * @returns { Promise<CheckResult> } Promise used to return the result.
94     * @throws { BusinessError } 201 - Permission denied.
95     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
96     * @throws { BusinessError } 11500104 - IPC error.
97     * @syscap SystemCapability.Update.UpdateService
98     * @systemapi hide for inner use.
99     * @since 9
100     */
101    checkNewVersion(): Promise<CheckResult>;
102
103    /**
104     * Get new version.
105     *
106     * @permission ohos.permission.UPDATE_SYSTEM
107     * @param { AsyncCallback<NewVersionInfo> } callback - Callback used to return the result.
108     * @throws { BusinessError } 201 - Permission denied.
109     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
110     * @throws { BusinessError } 11500104 - IPC error.
111     * @syscap SystemCapability.Update.UpdateService
112     * @systemapi hide for inner use.
113     * @since 9
114     */
115    getNewVersionInfo(callback: AsyncCallback<NewVersionInfo>): void;
116
117    /**
118     * Get new version.
119     *
120     * @permission ohos.permission.UPDATE_SYSTEM
121     * @returns { Promise<NewVersionInfo> } Promise used to return the result.
122     * @throws { BusinessError } 201 - Permission denied.
123     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
124     * @throws { BusinessError } 11500104 - IPC error.
125     * @syscap SystemCapability.Update.UpdateService
126     * @systemapi hide for inner use.
127     * @since 9
128     */
129    getNewVersionInfo(): Promise<NewVersionInfo>;
130
131    /**
132     * Get new version description.
133     *
134     * @permission ohos.permission.UPDATE_SYSTEM
135     * @param { VersionDigestInfo } versionDigestInfo - Version digest information.
136     * @param { DescriptionOptions } descriptionOptions - Options of the description file.
137     * @param { AsyncCallback<Array<ComponentDescription>> } callback - Callback used to return the result.
138     * @throws { BusinessError } 201 - Permission denied.
139     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
140     * @throws { BusinessError } 401 - Parameter verification failed.
141     * @throws { BusinessError } 11500104 - IPC error.
142     * @syscap SystemCapability.Update.UpdateService
143     * @systemapi hide for inner use.
144     * @since 9
145     */
146    getNewVersionDescription(
147      versionDigestInfo: VersionDigestInfo,
148      descriptionOptions: DescriptionOptions,
149      callback: AsyncCallback<Array<ComponentDescription>>
150    ): void;
151
152    /**
153     * Get new version description.
154     *
155     * @permission ohos.permission.UPDATE_SYSTEM
156     * @param { VersionDigestInfo } versionDigestInfo - Version digest information.
157     * @param { DescriptionOptions } descriptionOptions - Options of the description file.
158     * @returns { Promise<Array<ComponentDescription>> } Promise used to return the result.
159     * @throws { BusinessError } 201 - Permission denied.
160     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
161     * @throws { BusinessError } 401 - Parameter verification failed.
162     * @throws { BusinessError } 11500104 - IPC error.
163     * @syscap SystemCapability.Update.UpdateService
164     * @systemapi hide for inner use.
165     * @since 9
166     */
167    getNewVersionDescription(
168      versionDigestInfo: VersionDigestInfo,
169      descriptionOptions: DescriptionOptions
170    ): Promise<Array<ComponentDescription>>;
171
172    /**
173     * Get current version.
174     *
175     * @permission ohos.permission.UPDATE_SYSTEM
176     * @param { AsyncCallback<CurrentVersionInfo> } callback - Callback used to return the result.
177     * @throws { BusinessError } 201 - Permission denied.
178     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
179     * @throws { BusinessError } 11500104 - IPC error.
180     * @syscap SystemCapability.Update.UpdateService
181     * @systemapi hide for inner use.
182     * @since 9
183     */
184    getCurrentVersionInfo(callback: AsyncCallback<CurrentVersionInfo>): void;
185
186    /**
187     * Get current version.
188     *
189     * @permission ohos.permission.UPDATE_SYSTEM
190     * @returns { Promise<CurrentVersionInfo> } Promise used to return the result.
191     * @throws { BusinessError } 201 - Permission denied.
192     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
193     * @throws { BusinessError } 11500104 - IPC error.
194     * @syscap SystemCapability.Update.UpdateService
195     * @systemapi hide for inner use.
196     * @since 9
197     */
198    getCurrentVersionInfo(): Promise<CurrentVersionInfo>;
199
200    /**
201     * Get current version description.
202     *
203     * @permission ohos.permission.UPDATE_SYSTEM
204     * @param { DescriptionOptions } descriptionOptions - Options of the description file.
205     * @param { AsyncCallback<Array<ComponentDescription>> } callback - Callback used to return the result.
206     * @throws { BusinessError } 201 - Permission denied.
207     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
208     * @throws { BusinessError } 401 - Parameter verification failed.
209     * @throws { BusinessError } 11500104 - IPC error.
210     * @syscap SystemCapability.Update.UpdateService
211     * @systemapi hide for inner use.
212     * @since 9
213     */
214    getCurrentVersionDescription(
215      descriptionOptions: DescriptionOptions,
216      callback: AsyncCallback<Array<ComponentDescription>>
217    ): void;
218
219    /**
220     * Get current version description.
221     *
222     * @permission ohos.permission.UPDATE_SYSTEM
223     * @param { DescriptionOptions } descriptionOptions - Options of the description file.
224     * @returns { Promise<Array<ComponentDescription>> } Promise used to return the result.
225     * @throws { BusinessError } 201 - Permission denied.
226     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
227     * @throws { BusinessError } 401 - Parameter verification failed.
228     * @throws { BusinessError } 11500104 - IPC error.
229     * @syscap SystemCapability.Update.UpdateService
230     * @systemapi hide for inner use.
231     * @since 9
232     */
233    getCurrentVersionDescription(descriptionOptions: DescriptionOptions): Promise<Array<ComponentDescription>>;
234
235    /**
236     * Get task info.
237     *
238     * @permission ohos.permission.UPDATE_SYSTEM
239     * @param { AsyncCallback<TaskInfo> } callback - Callback used to return the result.
240     * @throws { BusinessError } 201 - Permission denied.
241     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
242     * @throws { BusinessError } 11500104 - IPC error.
243     * @syscap SystemCapability.Update.UpdateService
244     * @systemapi hide for inner use.
245     * @since 9
246     */
247    getTaskInfo(callback: AsyncCallback<TaskInfo>): void;
248
249    /**
250     * Get task info.
251     *
252     * @permission ohos.permission.UPDATE_SYSTEM
253     * @returns { Promise<TaskInfo> } Promise used to return the result.
254     * @throws { BusinessError } 201 - Permission denied.
255     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
256     * @throws { BusinessError } 11500104 - IPC error.
257     * @syscap SystemCapability.Update.UpdateService
258     * @systemapi hide for inner use.
259     * @since 9
260     */
261    getTaskInfo(): Promise<TaskInfo>;
262
263    /**
264     * Trigger download new version packages.
265     * Apps should listen to task update event
266     *
267     * @permission ohos.permission.UPDATE_SYSTEM
268     * @param { VersionDigestInfo } versionDigestInfo - Version digest information.
269     * @param { DownloadOptions } downloadOptions - Download options.
270     * @param { AsyncCallback<void> } callback - Callback used to return the result.
271     *    If the operation is successful, `err` is `undefined`; otherwise, `err` is an `Error` object.
272     * @throws { BusinessError } 201 - Permission denied.
273     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
274     * @throws { BusinessError } 401 - Parameter verification failed.
275     * @throws { BusinessError } 11500104 - IPC error.
276     * @syscap SystemCapability.Update.UpdateService
277     * @systemapi hide for inner use.
278     * @since 9
279     */
280    download(
281      versionDigestInfo: VersionDigestInfo,
282      downloadOptions: DownloadOptions,
283      callback: AsyncCallback<void>
284    ): void;
285
286    /**
287     * Trigger download new version packages.
288     * Apps should listen to task update event
289     *
290     * @permission ohos.permission.UPDATE_SYSTEM
291     * @param { VersionDigestInfo } versionDigestInfo - Version digest information.
292     * @param { DownloadOptions } downloadOptions - Download options.
293     * @returns { Promise<void> } Promise that returns no value.
294     * @throws { BusinessError } 201 - Permission denied.
295     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
296     * @throws { BusinessError } 401 - Parameter verification failed.
297     * @throws { BusinessError } 11500104 - IPC error.
298     * @syscap SystemCapability.Update.UpdateService
299     * @systemapi hide for inner use.
300     * @since 9
301     */
302    download(versionDigestInfo: VersionDigestInfo, downloadOptions: DownloadOptions): Promise<void>;
303
304    /**
305     * Resume download new version packages.
306     * Apps should listen to task update event
307     *
308     * @permission ohos.permission.UPDATE_SYSTEM
309     * @param { VersionDigestInfo } versionDigestInfo - Version digest information.
310     * @param { ResumeDownloadOptions } resumeDownloadOptions - Options for resume download.
311     * @param { AsyncCallback<void> } callback - Callback used to return the result.
312     *   If the operation is successful, `err` is `undefined`; otherwise, `err` is an `Error` object.
313     * @throws { BusinessError } 201 - Permission denied.
314     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
315     * @throws { BusinessError } 401 - Parameter verification failed.
316     * @throws { BusinessError } 11500104 - IPC error.
317     * @syscap SystemCapability.Update.UpdateService
318     * @systemapi hide for inner use.
319     * @since 9
320     */
321    resumeDownload(
322      versionDigestInfo: VersionDigestInfo,
323      resumeDownloadOptions: ResumeDownloadOptions,
324      callback: AsyncCallback<void>
325    ): void;
326
327    /**
328     * Resume download new version packages.
329     * Apps should listen to task update event
330     *
331     * @permission ohos.permission.UPDATE_SYSTEM
332     * @param { VersionDigestInfo } versionDigestInfo - Version digest information.
333     * @param { ResumeDownloadOptions } resumeDownloadOptions - Options for resume download.
334     * @returns { Promise<void> } Promise that returns no value.
335     * @throws { BusinessError } 201 - Permission denied.
336     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
337     * @throws { BusinessError } 401 - Parameter verification failed.
338     * @throws { BusinessError } 11500104 - IPC error.
339     * @syscap SystemCapability.Update.UpdateService
340     * @systemapi hide for inner use.
341     * @since 9
342     */
343    resumeDownload(versionDigestInfo: VersionDigestInfo, resumeDownloadOptions: ResumeDownloadOptions): Promise<void>;
344
345    /**
346     * Pause download new version packages.
347     * Apps should listen to task update event
348     *
349     * @permission ohos.permission.UPDATE_SYSTEM
350     * @param { VersionDigestInfo } versionDigestInfo - Version digest information.
351     * @param { PauseDownloadOptions } pauseDownloadOptions - Options for pause download.
352     * @param { AsyncCallback<void> } callback - Callback used to return the result.
353     *    If the operation is successful, `err` is `undefined`; otherwise, `err` is an `Error` object.
354     * @throws { BusinessError } 201 - Permission denied.
355     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
356     * @throws { BusinessError } 401 - Parameter verification failed.
357     * @throws { BusinessError } 11500104 - IPC error.
358     * @syscap SystemCapability.Update.UpdateService
359     * @systemapi hide for inner use.
360     * @since 9
361     */
362    pauseDownload(
363      versionDigestInfo: VersionDigestInfo,
364      pauseDownloadOptions: PauseDownloadOptions,
365      callback: AsyncCallback<void>
366    ): void;
367
368    /**
369     * Pause download new version packages.
370     * Apps should listen to task update event
371     *
372     * @permission ohos.permission.UPDATE_SYSTEM
373     * @param { VersionDigestInfo } versionDigestInfo - Version digest information.
374     * @param { PauseDownloadOptions } pauseDownloadOptions - Options for pause download.
375     * @returns { Promise<void> } Promise that returns no value.
376     * @throws { BusinessError } 201 - Permission denied.
377     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
378     * @throws { BusinessError } 401 - Parameter verification failed.
379     * @throws { BusinessError } 11500104 - IPC error.
380     * @syscap SystemCapability.Update.UpdateService
381     * @systemapi hide for inner use.
382     * @since 9
383     */
384    pauseDownload(versionDigestInfo: VersionDigestInfo, pauseDownloadOptions: PauseDownloadOptions): Promise<void>;
385
386    /**
387     * Install packages for the device.
388     * Apps should listen to task update event
389     *
390     * @permission ohos.permission.UPDATE_SYSTEM
391     * @param { VersionDigestInfo } versionDigestInfo - Version digest information.
392     * @param { UpgradeOptions } upgradeOptions - Update options.
393     * @param { AsyncCallback<void> } callback - Callback used to return the result.
394     *   If the operation is successful, `err` is `undefined`; otherwise, `err` is an `Error` object.
395     * @throws { BusinessError } 201 - Permission denied.
396     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
397     * @throws { BusinessError } 401 - Parameter verification failed.
398     * @throws { BusinessError } 11500104 - IPC error.
399     * @syscap SystemCapability.Update.UpdateService
400     * @systemapi hide for inner use.
401     * @since 9
402     */
403    upgrade(versionDigestInfo: VersionDigestInfo, upgradeOptions: UpgradeOptions, callback: AsyncCallback<void>): void;
404
405    /**
406     * Install packages for the device.
407     * Apps should listen to task update event
408     *
409     * @permission ohos.permission.UPDATE_SYSTEM
410     * @param { VersionDigestInfo } versionDigestInfo - Version digest information.
411     * @param { UpgradeOptions } upgradeOptions - Update options.
412     * @returns { Promise<void> } Promise that returns no value.
413     * @throws { BusinessError } 201 - Permission denied.
414     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
415     * @throws { BusinessError } 401 - Parameter verification failed.
416     * @throws { BusinessError } 11500104 - IPC error.
417     * @syscap SystemCapability.Update.UpdateService
418     * @systemapi hide for inner use.
419     * @since 9
420     */
421    upgrade(versionDigestInfo: VersionDigestInfo, upgradeOptions: UpgradeOptions): Promise<void>;
422
423    /**
424     * Clear error during upgrade.
425     *
426     * @permission ohos.permission.UPDATE_SYSTEM
427     * @param { VersionDigestInfo } versionDigestInfo - Version digest information.
428     * @param { ClearOptions } clearOptions - Clear options.
429     * @param { AsyncCallback<void> } callback - Callback used to return the result.
430     *   If the operation is successful, `err` is `undefined`; otherwise, `err` is an `Error` object.
431     * @throws { BusinessError } 201 - Permission denied.
432     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
433     * @throws { BusinessError } 401 - Parameter verification failed.
434     * @throws { BusinessError } 11500104 - IPC error.
435     * @syscap SystemCapability.Update.UpdateService
436     * @systemapi hide for inner use.
437     * @since 9
438     */
439    clearError(versionDigestInfo: VersionDigestInfo, clearOptions: ClearOptions, callback: AsyncCallback<void>): void;
440
441    /**
442     * Clear error during upgrade.
443     *
444     * @permission ohos.permission.UPDATE_SYSTEM
445     * @param { VersionDigestInfo } versionDigestInfo - Version digest information.
446     * @param { ClearOptions } clearOptions - Clear options.
447     * @returns { Promise<void> } Promise that returns no value.
448     * @throws { BusinessError } 201 - Permission denied.
449     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
450     * @throws { BusinessError } 401 - Parameter verification failed.
451     * @throws { BusinessError } 11500104 - IPC error.
452     * @syscap SystemCapability.Update.UpdateService
453     * @systemapi hide for inner use.
454     * @since 9
455     */
456    clearError(versionDigestInfo: VersionDigestInfo, clearOptions: ClearOptions): Promise<void>;
457
458    /**
459     * Get current upgrade policy.
460     *
461     * @permission ohos.permission.UPDATE_SYSTEM
462     * @param { AsyncCallback<UpgradePolicy> } callback - Callback used to return the result.
463     * @throws { BusinessError } 201 - Permission denied.
464     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
465     * @throws { BusinessError } 11500104 - IPC error.
466     * @syscap SystemCapability.Update.UpdateService
467     * @systemapi hide for inner use.
468     * @since 9
469     */
470    getUpgradePolicy(callback: AsyncCallback<UpgradePolicy>): void;
471
472    /**
473     * Get current upgrade policy.
474     *
475     * @permission ohos.permission.UPDATE_SYSTEM
476     * @returns { Promise<UpgradePolicy> } Promise used to return the result.
477     * @throws { BusinessError } 201 - Permission denied.
478     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
479     * @throws { BusinessError } 11500104 - IPC error.
480     * @syscap SystemCapability.Update.UpdateService
481     * @systemapi hide for inner use.
482     * @since 9
483     */
484    getUpgradePolicy(): Promise<UpgradePolicy>;
485
486    /**
487     * Set upgrade policy.
488     *
489     * @permission ohos.permission.UPDATE_SYSTEM
490     * @param { UpgradePolicy } policy - Update policy.
491     * @param { AsyncCallback<void> } callback - Callback used to return the result.
492     * @throws { BusinessError } 201 - Permission denied.
493     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
494     * @throws { BusinessError } 11500104 - IPC error.
495     * @syscap SystemCapability.Update.UpdateService
496     * @systemapi hide for inner use.
497     * @since 9
498     */
499    setUpgradePolicy(policy: UpgradePolicy, callback: AsyncCallback<void>): void;
500
501    /**
502     * Set upgrade policy.
503     *
504     * @permission ohos.permission.UPDATE_SYSTEM
505     * @param { UpgradePolicy } policy - Update policy.
506     * @returns { Promise<void> } Promise that returns no value.
507     * @throws { BusinessError } 201 - Permission denied.
508     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
509     * @throws { BusinessError } 11500104 - IPC error.
510     * @syscap SystemCapability.Update.UpdateService
511     * @systemapi hide for inner use.
512     * @since 9
513     */
514    setUpgradePolicy(policy: UpgradePolicy): Promise<void>;
515
516    /**
517     * Terminate upgrade task.
518     *
519     * @permission ohos.permission.UPDATE_SYSTEM
520     * @param { AsyncCallback<void> } callback - Callback used to return the result.
521     *     If the operation is successful, 'err' is 'undefined'; otherwise, 'err' is an 'Error' object.
522     * @throws { BusinessError } 201 - Permission denied.
523     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
524     * @throws { BusinessError } 11500104 - IPC error.
525     * @syscap SystemCapability.Update.UpdateService
526     * @systemapi hide for inner use.
527     * @since 9
528     */
529    terminateUpgrade(callback: AsyncCallback<void>): void;
530
531    /**
532     * Terminate upgrade task.
533     *
534     * @permission ohos.permission.UPDATE_SYSTEM
535     * @returns { Promise<void> } Promise that returns no value.
536     * @throws { BusinessError } 201 - Permission denied.
537     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
538     * @throws { BusinessError } 11500104 - IPC error.
539     * @syscap SystemCapability.Update.UpdateService
540     * @systemapi hide for inner use.
541     * @since 9
542     */
543    terminateUpgrade(): Promise<void>;
544
545    /**
546     * Subscribe task update events
547     *
548     * @param { EventClassifyInfo } eventClassifyInfo - Event information.
549     * @param { UpgradeTaskCallback } taskCallback - Event callback.
550     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
551     * @syscap SystemCapability.Update.UpdateService
552     * @systemapi hide for inner use.
553     * @since 9
554     */
555    on(eventClassifyInfo: EventClassifyInfo, taskCallback: UpgradeTaskCallback): void;
556
557    /**
558     * Unsubscribe task update events
559     *
560     * @param { EventClassifyInfo } eventClassifyInfo - Event information.
561     * @param { UpgradeTaskCallback } taskCallback - Event callback.
562     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
563     * @syscap SystemCapability.Update.UpdateService
564     * @systemapi hide for inner use.
565     * @since 9
566     */
567    off(eventClassifyInfo: EventClassifyInfo, taskCallback?: UpgradeTaskCallback): void;
568  }
569
570  /**
571   * A static class to do restore.
572   *
573   * @interface Restorer
574   * @syscap SystemCapability.Update.UpdateService
575   * @systemapi hide for inner use.
576   * @since 9
577   */
578  export interface Restorer {
579    /**
580     * Reboot and clean user data.
581     *
582     * @permission ohos.permission.FACTORY_RESET
583     * @param { AsyncCallback<void> } callback - Callback used to return the result.
584     *   If the operation is successful, `err` is `undefined`; otherwise, `err` is an `Error` object.
585     * @throws { BusinessError } 201 - Permission denied.
586     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
587     * @throws { BusinessError } 11500104 - IPC error.
588     * @syscap SystemCapability.Update.UpdateService
589     * @systemapi hide for inner use.
590     * @since 9
591     */
592    factoryReset(callback: AsyncCallback<void>): void;
593
594    /**
595     * Reboot and clean user data.
596     *
597     * @permission ohos.permission.FACTORY_RESET
598     * @returns { Promise<void> } Promise that returns no value.
599     * @throws { BusinessError } 201 - Permission denied.
600     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
601     * @throws { BusinessError } 11500104 - IPC error.
602     * @syscap SystemCapability.Update.UpdateService
603     * @systemapi hide for inner use.
604     * @since 9
605     */
606    factoryReset(): Promise<void>;
607  }
608
609  /**
610   * A static class to do local update.
611   *
612   * @interface LocalUpdater
613   * @syscap SystemCapability.Update.UpdateService
614   * @systemapi hide for inner use.
615   * @since 9
616   */
617  export interface LocalUpdater {
618    /**
619     * Verify local update package.
620     *
621     * @permission ohos.permission.UPDATE_SYSTEM
622     * @param { UpgradeFile } upgradeFile - Update file.
623     * @param { string } certsFile - Path of the certificate file.
624     * @param { AsyncCallback<void> } callback - Callback used to return the verify upgrade package result.
625     * @throws { BusinessError } 201 - Permission denied.
626     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
627     * @throws { BusinessError } 401 - Parameter verification failed.
628     * @throws { BusinessError } 11500104 - IPC error.
629     * @syscap SystemCapability.Update.UpdateService
630     * @systemapi hide for inner use.
631     * @since 9
632     */
633    verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string, callback: AsyncCallback<void>): void;
634
635    /**
636     * Verify local update package.
637     *
638     * @permission ohos.permission.UPDATE_SYSTEM
639     * @param { UpgradeFile } upgradeFile - Update file.
640     * @param { string } certsFile - Path of the certificate file.
641     * @returns { Promise<void> } Promise that returns no value.
642     * @throws { BusinessError } 201 - Permission denied.
643     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
644     * @throws { BusinessError } 401 - Parameter verification failed.
645     * @throws { BusinessError } 11500104 - IPC error.
646     * @syscap SystemCapability.Update.UpdateService
647     * @systemapi hide for inner use.
648     * @since 9
649     */
650    verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string): Promise<void>;
651
652    /**
653     * Apply local update package.
654     * Apps should listen to task update event
655     *
656     * @permission ohos.permission.UPDATE_SYSTEM
657     * @param { Array<UpgradeFile> } upgradeFiles - Update files.
658     * @param { AsyncCallback<void> } callback - Callback used to return the apply new version result.
659     * @throws { BusinessError } 201 - Permission denied.
660     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
661     * @throws { BusinessError } 401 - Parameter verification failed.
662     * @throws { BusinessError } 11500104 - IPC error.
663     * @syscap SystemCapability.Update.UpdateService
664     * @systemapi hide for inner use.
665     * @since 9
666     */
667    applyNewVersion(upgradeFiles: Array<UpgradeFile>, callback: AsyncCallback<void>): void;
668
669    /**
670     * Apply local update package.
671     * Apps should listen to task update event
672     *
673     * @permission ohos.permission.UPDATE_SYSTEM
674     * @param { Array<UpgradeFile> } upgradeFiles - Update files.
675     * @returns { Promise<void> } Promise that returns no value.
676     * @throws { BusinessError } 201 - Permission denied.
677     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
678     * @throws { BusinessError } 401 - Parameter verification failed.
679     * @throws { BusinessError } 11500104 - IPC error.
680     * @syscap SystemCapability.Update.UpdateService
681     * @systemapi hide for inner use.
682     * @since 9
683     */
684    applyNewVersion(upgradeFiles: Array<UpgradeFile>): Promise<void>;
685
686    /**
687     * Subscribe task update events
688     *
689     * @param { EventClassifyInfo } eventClassifyInfo - Event information.
690     * @param { UpgradeTaskCallback } taskCallback - Event callback.
691     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
692     * @syscap SystemCapability.Update.UpdateService
693     * @systemapi hide for inner use.
694     * @since 9
695     */
696    on(eventClassifyInfo: EventClassifyInfo, taskCallback: UpgradeTaskCallback): void;
697
698    /**
699     * Unsubscribe task update events
700     *
701     * @param { EventClassifyInfo } eventClassifyInfo - Event information.
702     * @param { UpgradeTaskCallback } taskCallback - Event callback.
703     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
704     * @syscap SystemCapability.Update.UpdateService
705     * @systemapi hide for inner use.
706     * @since 9
707     */
708    off(eventClassifyInfo: EventClassifyInfo, taskCallback?: UpgradeTaskCallback): void;
709  }
710
711  /**
712   * Represents upgrade info.
713   *
714   * @typedef UpgradeInfo
715   * @syscap SystemCapability.Update.UpdateService
716   * @systemapi hide for inner use.
717   * @since 9
718   */
719  export interface UpgradeInfo {
720    /**
721     * Upgrade client package name
722     *
723     * @type { string }
724     * @syscap SystemCapability.Update.UpdateService
725     * @systemapi hide for inner use.
726     * @since 9
727     */
728    upgradeApp: string;
729
730    /**
731     * BusinessType of upgrade
732     *
733     * @type { BusinessType }
734     * @syscap SystemCapability.Update.UpdateService
735     * @systemapi hide for inner use.
736     * @since 9
737     */
738    businessType: BusinessType;
739  }
740
741  /**
742   * Represents business type.
743   *
744   * @typedef BusinessType
745   * @syscap SystemCapability.Update.UpdateService
746   * @systemapi hide for inner use.
747   * @since 9
748   */
749  export interface BusinessType {
750    /**
751     * Vendor of business type
752     *
753     * @type { BusinessVendor }
754     * @syscap SystemCapability.Update.UpdateService
755     * @systemapi hide for inner use.
756     * @since 9
757     */
758    vendor: BusinessVendor;
759
760    /**
761     * Update service type
762     *
763     * @type { BusinessSubType }
764     * @syscap SystemCapability.Update.UpdateService
765     * @systemapi hide for inner use.
766     * @since 9
767     */
768    subType: BusinessSubType;
769  }
770
771  /**
772   * Represents new version check result.
773   *
774   * @typedef CheckResult
775   * @syscap SystemCapability.Update.UpdateService
776   * @systemapi hide for inner use.
777   * @since 9
778   */
779  export interface CheckResult {
780    /**
781     * New version exist or not
782     *
783     * @type { boolean }
784     * @syscap SystemCapability.Update.UpdateService
785     * @systemapi hide for inner use.
786     * @since 9
787     */
788    isExistNewVersion: boolean;
789
790    /**
791     * New version info
792     *
793     * @type { NewVersionInfo }
794     * @syscap SystemCapability.Update.UpdateService
795     * @systemapi hide for inner use.
796     * @since 9
797     */
798    newVersionInfo: NewVersionInfo;
799  }
800
801  /**
802   * Represents new version info.
803   *
804   * @typedef NewVersionInfo
805   * @syscap SystemCapability.Update.UpdateService
806   * @systemapi hide for inner use.
807   * @since 9
808   */
809  export interface NewVersionInfo {
810    /**
811     * Digest info of new version
812     *
813     * @type { VersionDigestInfo }
814     * @syscap SystemCapability.Update.UpdateService
815     * @systemapi hide for inner use.
816     * @since 9
817     */
818    versionDigestInfo: VersionDigestInfo;
819
820    /**
821     * New version component array
822     *
823     * @type { Array<VersionComponent> }
824     * @syscap SystemCapability.Update.UpdateService
825     * @systemapi hide for inner use.
826     * @since 9
827     */
828    versionComponents: Array<VersionComponent>;
829  }
830
831  /**
832   * Represents version digest info.
833   *
834   * @typedef VersionDigestInfo
835   * @syscap SystemCapability.Update.UpdateService
836   * @systemapi hide for inner use.
837   * @since 9
838   */
839  export interface VersionDigestInfo {
840    /**
841     * Version digest value
842     *
843     * @type { string }
844     * @syscap SystemCapability.Update.UpdateService
845     * @systemapi hide for inner use.
846     * @since 9
847     */
848    versionDigest: string;
849  }
850
851  /**
852   * Represents version component info.
853   *
854   * @typedef VersionComponent
855   * @syscap SystemCapability.Update.UpdateService
856   * @systemapi hide for inner use.
857   * @since 9
858   */
859  export interface VersionComponent {
860    /**
861     * Version component id
862     *
863     * @type { string }
864     * @syscap SystemCapability.Update.UpdateService
865     * @systemapi hide for inner use.
866     * @since 9
867     */
868    componentId: string;
869
870    /**
871     * Version component type
872     *
873     * @type { ComponentType }
874     * @syscap SystemCapability.Update.UpdateService
875     * @systemapi hide for inner use.
876     * @since 9
877     */
878    componentType: ComponentType;
879
880    /**
881     * Upgrade action
882     *
883     * @type { UpgradeAction }
884     * @syscap SystemCapability.Update.UpdateService
885     * @systemapi hide for inner use.
886     * @since 9
887     */
888    upgradeAction: UpgradeAction;
889
890    /**
891     * Display version number
892     *
893     * @type { string }
894     * @syscap SystemCapability.Update.UpdateService
895     * @systemapi hide for inner use.
896     * @since 9
897     */
898    displayVersion: string;
899
900    /**
901     * Internal version number
902     *
903     * @type { string }
904     * @syscap SystemCapability.Update.UpdateService
905     * @systemapi hide for inner use.
906     * @since 9
907     */
908    innerVersion: string;
909
910    /**
911     * Update package size
912     *
913     * @type { number }
914     * @syscap SystemCapability.Update.UpdateService
915     * @systemapi hide for inner use.
916     * @since 9
917     */
918    size: number;
919
920    /**
921     * Effective mode
922     *
923     * @type { EffectiveMode }
924     * @syscap SystemCapability.Update.UpdateService
925     * @systemapi hide for inner use.
926     * @since 9
927     */
928    effectiveMode: EffectiveMode;
929
930    /**
931     * Information about the version description file
932     *
933     * @type { DescriptionInfo }
934     * @syscap SystemCapability.Update.UpdateService
935     * @systemapi hide for inner use.
936     * @since 9
937     */
938    descriptionInfo: DescriptionInfo;
939
940    /**
941     * Ota mode
942     *
943     * @type { ?OtaMode }
944     * @syscap SystemCapability.Update.UpdateService
945     * @systemapi hide for inner use.
946     * @since 20
947     */
948    otaMode?: OtaMode;
949  }
950
951  /**
952   * Represents description options.
953   *
954   * @typedef DescriptionOptions
955   * @syscap SystemCapability.Update.UpdateService
956   * @systemapi hide for inner use.
957   * @since 9
958   */
959  export interface DescriptionOptions {
960    /**
961     * Format of the description file
962     *
963     * @type { DescriptionFormat }
964     * @syscap SystemCapability.Update.UpdateService
965     * @systemapi hide for inner use.
966     * @since 9
967     */
968    format: DescriptionFormat;
969
970    /**
971     * Language of the description file
972     *
973     * @type { string }
974     * @syscap SystemCapability.Update.UpdateService
975     * @systemapi hide for inner use.
976     * @since 9
977     */
978    language: string;
979  }
980
981  /**
982   * Represents version component description.
983   *
984   * @typedef ComponentDescription
985   * @syscap SystemCapability.Update.UpdateService
986   * @systemapi hide for inner use.
987   * @since 9
988   */
989  export interface ComponentDescription {
990    /**
991     * Component id
992     *
993     * @type { string }
994     * @syscap SystemCapability.Update.UpdateService
995     * @systemapi hide for inner use.
996     * @since 9
997     */
998    componentId: string;
999
1000    /**
1001     * Information about the description file
1002     *
1003     * @type { DescriptionInfo }
1004     * @syscap SystemCapability.Update.UpdateService
1005     * @systemapi hide for inner use.
1006     * @since 9
1007     */
1008    descriptionInfo: DescriptionInfo;
1009  }
1010
1011  /**
1012   * Represents new version description information.
1013   *
1014   * @typedef DescriptionInfo
1015   * @syscap SystemCapability.Update.UpdateService
1016   * @systemapi hide for inner use.
1017   * @since 9
1018   */
1019  export interface DescriptionInfo {
1020    /**
1021     * Description content type
1022     *
1023     * @type { DescriptionType }
1024     * @syscap SystemCapability.Update.UpdateService
1025     * @systemapi hide for inner use.
1026     * @since 9
1027     */
1028    descriptionType: DescriptionType;
1029
1030    /**
1031     * Content of the description file
1032     *
1033     * @type { string }
1034     * @syscap SystemCapability.Update.UpdateService
1035     * @systemapi hide for inner use.
1036     * @since 9
1037     */
1038    content: string;
1039  }
1040
1041  /**
1042   * Represents current version info.
1043   *
1044   * @typedef CurrentVersionInfo
1045   * @syscap SystemCapability.Update.UpdateService
1046   * @systemapi hide for inner use.
1047   * @since 9
1048   */
1049  export interface CurrentVersionInfo {
1050    /**
1051     * System version number
1052     *
1053     * @type { string }
1054     * @syscap SystemCapability.Update.UpdateService
1055     * @systemapi hide for inner use.
1056     * @since 9
1057     */
1058    osVersion: string;
1059
1060    /**
1061     * Device name
1062     *
1063     * @type { string }
1064     * @syscap SystemCapability.Update.UpdateService
1065     * @systemapi hide for inner use.
1066     * @since 9
1067     */
1068    deviceName: string;
1069
1070    /**
1071     * Current version component array
1072     *
1073     * @type { Array<VersionComponent> }
1074     * @syscap SystemCapability.Update.UpdateService
1075     * @systemapi hide for inner use.
1076     * @since 9
1077     */
1078    versionComponents: Array<VersionComponent>;
1079  }
1080
1081  /**
1082   * Represents download options.
1083   *
1084   * @typedef DownloadOptions
1085   * @syscap SystemCapability.Update.UpdateService
1086   * @systemapi hide for inner use.
1087   * @since 9
1088   */
1089  export interface DownloadOptions {
1090    /**
1091     * Allow download with the network type
1092     *
1093     * @type { NetType }
1094     * @syscap SystemCapability.Update.UpdateService
1095     * @systemapi hide for inner use.
1096     * @since 9
1097     */
1098    allowNetwork: NetType;
1099
1100    /**
1101     * Upgrade command
1102     *
1103     * @type { Order }
1104     * @syscap SystemCapability.Update.UpdateService
1105     * @systemapi hide for inner use.
1106     * @since 9
1107     */
1108    order: Order;
1109  }
1110
1111  /**
1112   * Represents resume download options.
1113   *
1114   * @typedef ResumeDownloadOptions
1115   * @syscap SystemCapability.Update.UpdateService
1116   * @systemapi hide for inner use.
1117   * @since 9
1118   */
1119  export interface ResumeDownloadOptions {
1120    /**
1121     * Allow download with the network type
1122     *
1123     * @type { NetType }
1124     * @syscap SystemCapability.Update.UpdateService
1125     * @systemapi hide for inner use.
1126     * @since 9
1127     */
1128    allowNetwork: NetType;
1129  }
1130
1131  /**
1132   * Represents pause download options.
1133   *
1134   * @typedef PauseDownloadOptions
1135   * @syscap SystemCapability.Update.UpdateService
1136   * @systemapi hide for inner use.
1137   * @since 9
1138   */
1139  export interface PauseDownloadOptions {
1140    /**
1141     * Whether allow auto resume when net available
1142     *
1143     * @type { boolean }
1144     * @syscap SystemCapability.Update.UpdateService
1145     * @systemapi hide for inner use.
1146     * @since 9
1147     */
1148    isAllowAutoResume: boolean;
1149  }
1150
1151  /**
1152   * Represents upgrade options.
1153   *
1154   * @typedef UpgradeOptions
1155   * @syscap SystemCapability.Update.UpdateService
1156   * @systemapi hide for inner use.
1157   * @since 9
1158   */
1159  export interface UpgradeOptions {
1160    /**
1161     * Upgrade command
1162     *
1163     * @type { Order }
1164     * @syscap SystemCapability.Update.UpdateService
1165     * @systemapi hide for inner use.
1166     * @since 9
1167     */
1168    order: Order;
1169  }
1170
1171  /**
1172   * Represents clear error options.
1173   *
1174   * @typedef ClearOptions
1175   * @syscap SystemCapability.Update.UpdateService
1176   * @systemapi hide for inner use.
1177   * @since 9
1178   */
1179  export interface ClearOptions {
1180    /**
1181     * Clear status error
1182     *
1183     * @type { UpgradeStatus }
1184     * @syscap SystemCapability.Update.UpdateService
1185     * @systemapi hide for inner use.
1186     * @since 9
1187     */
1188    status: UpgradeStatus;
1189  }
1190
1191  /**
1192   * Represents upgrade policy.
1193   *
1194   * @typedef UpgradePolicy
1195   * @syscap SystemCapability.Update.UpdateService
1196   * @systemapi hide for inner use.
1197   * @since 9
1198   */
1199  export interface UpgradePolicy {
1200    /**
1201     * Download strategy: open or close
1202     *
1203     * @type { boolean }
1204     * @syscap SystemCapability.Update.UpdateService
1205     * @systemapi hide for inner use.
1206     * @since 9
1207     */
1208    downloadStrategy: boolean;
1209
1210    /**
1211     * Auto upgrade strategy: open or close
1212     *
1213     * @type { boolean }
1214     * @syscap SystemCapability.Update.UpdateService
1215     * @systemapi hide for inner use.
1216     * @since 9
1217     */
1218    autoUpgradeStrategy: boolean;
1219
1220    /**
1221     * Auto upgrade period
1222     *
1223     * @type { Array<UpgradePeriod> }
1224     * @syscap SystemCapability.Update.UpdateService
1225     * @systemapi hide for inner use.
1226     * @since 9
1227     */
1228    autoUpgradePeriods: Array<UpgradePeriod>;
1229  }
1230
1231  /**
1232   * Represents upgrade period.
1233   *
1234   * @typedef UpgradePeriod
1235   * @syscap SystemCapability.Update.UpdateService
1236   * @systemapi hide for inner use.
1237   * @since 9
1238   */
1239  export interface UpgradePeriod {
1240    /**
1241     * Start time of upgrade period
1242     *
1243     * @type { number }
1244     * @syscap SystemCapability.Update.UpdateService
1245     * @systemapi hide for inner use.
1246     * @since 9
1247     */
1248    start: number;
1249
1250    /**
1251     * End time of upgrade period
1252     *
1253     * @type { number }
1254     * @syscap SystemCapability.Update.UpdateService
1255     * @systemapi hide for inner use.
1256     * @since 9
1257     */
1258    end: number;
1259  }
1260
1261  /**
1262   * Represents task info.
1263   *
1264   * @typedef TaskInfo
1265   * @syscap SystemCapability.Update.UpdateService
1266   * @systemapi hide for inner use.
1267   * @since 9
1268   */
1269  export interface TaskInfo {
1270    /**
1271     * Whether upgrade task exist
1272     *
1273     * @type { boolean }
1274     * @syscap SystemCapability.Update.UpdateService
1275     * @systemapi hide for inner use.
1276     * @since 9
1277     */
1278    existTask: boolean;
1279
1280    /**
1281     * Task body info
1282     *
1283     * @type { TaskBody }
1284     * @syscap SystemCapability.Update.UpdateService
1285     * @systemapi hide for inner use.
1286     * @since 9
1287     */
1288    taskBody: TaskBody;
1289  }
1290
1291  /**
1292   * Represents event info.
1293   *
1294   * @typedef EventInfo
1295   * @syscap SystemCapability.Update.UpdateService
1296   * @systemapi hide for inner use.
1297   * @since 9
1298   */
1299  export interface EventInfo {
1300    /**
1301     * Event id
1302     *
1303     * @type { EventId }
1304     * @syscap SystemCapability.Update.UpdateService
1305     * @systemapi hide for inner use.
1306     * @since 9
1307     */
1308    eventId: EventId;
1309
1310    /**
1311     * Task body info
1312     *
1313     * @type { TaskBody }
1314     * @syscap SystemCapability.Update.UpdateService
1315     * @systemapi hide for inner use.
1316     * @since 9
1317     */
1318    taskBody: TaskBody;
1319  }
1320
1321  /**
1322   * Represents task body info.
1323   *
1324   * @typedef TaskBody
1325   * @syscap SystemCapability.Update.UpdateService
1326   * @systemapi hide for inner use.
1327   * @since 9
1328   */
1329  export interface TaskBody {
1330    /**
1331     * Digest info of new version
1332     *
1333     * @type { VersionDigestInfo }
1334     * @syscap SystemCapability.Update.UpdateService
1335     * @systemapi hide for inner use.
1336     * @since 9
1337     */
1338    versionDigestInfo: VersionDigestInfo;
1339
1340    /**
1341     * Upgrade status
1342     *
1343     * @type { UpgradeStatus }
1344     * @syscap SystemCapability.Update.UpdateService
1345     * @systemapi hide for inner use.
1346     * @since 9
1347     */
1348    status: UpgradeStatus;
1349
1350    /**
1351     * Upgrade sub status
1352     *
1353     * @type { number }
1354     * @syscap SystemCapability.Update.UpdateService
1355     * @systemapi hide for inner use.
1356     * @since 9
1357     */
1358    subStatus: number;
1359
1360    /**
1361     * Upgrade progress
1362     *
1363     * @type { number }
1364     * @syscap SystemCapability.Update.UpdateService
1365     * @systemapi hide for inner use.
1366     * @since 9
1367     */
1368    progress: number;
1369
1370    /**
1371     * Install mode
1372     *
1373     * @type { number }
1374     * @syscap SystemCapability.Update.UpdateService
1375     * @systemapi hide for inner use.
1376     * @since 9
1377     */
1378    installMode: number;
1379
1380    /**
1381     * Error messages
1382     *
1383     * @type { Array<ErrorMessage> }
1384     * @syscap SystemCapability.Update.UpdateService
1385     * @systemapi hide for inner use.
1386     * @since 9
1387     */
1388    errorMessages: Array<ErrorMessage>;
1389
1390    /**
1391     * Version component array
1392     *
1393     * @type { Array<VersionComponent> }
1394     * @syscap SystemCapability.Update.UpdateService
1395     * @systemapi hide for inner use.
1396     * @since 9
1397     */
1398    versionComponents: Array<VersionComponent>;
1399  }
1400
1401  /**
1402   * Represents error message.
1403   *
1404   * @typedef ErrorMessage
1405   * @syscap SystemCapability.Update.UpdateService
1406   * @systemapi hide for inner use.
1407   * @since 9
1408   */
1409  export interface ErrorMessage {
1410    /**
1411     * Error code
1412     *
1413     * @type { number }
1414     * @syscap SystemCapability.Update.UpdateService
1415     * @systemapi hide for inner use.
1416     * @since 9
1417     */
1418    errorCode: number;
1419
1420    /**
1421     * Error message
1422     *
1423     * @type { string }
1424     * @syscap SystemCapability.Update.UpdateService
1425     * @systemapi hide for inner use.
1426     * @since 9
1427     */
1428    errorMessage: string;
1429  }
1430
1431  /**
1432   * Represents event classify info.
1433   *
1434   * @typedef EventClassifyInfo
1435   * @syscap SystemCapability.Update.UpdateService
1436   * @systemapi hide for inner use.
1437   * @since 9
1438   */
1439  export interface EventClassifyInfo {
1440    /**
1441     * Event classify
1442     *
1443     * @type { EventClassify }
1444     * @syscap SystemCapability.Update.UpdateService
1445     * @systemapi hide for inner use.
1446     * @since 9
1447     */
1448    eventClassify: EventClassify;
1449
1450    /**
1451     * Additional information
1452     *
1453     * @type { string }
1454     * @syscap SystemCapability.Update.UpdateService
1455     * @systemapi hide for inner use.
1456     * @since 9
1457     */
1458    extraInfo: string;
1459  }
1460
1461  /**
1462   * Represents upgrade file info.
1463   *
1464   * @typedef UpgradeFile
1465   * @syscap SystemCapability.Update.UpdateService
1466   * @systemapi hide for inner use.
1467   * @since 9
1468   */
1469  export interface UpgradeFile {
1470    /**
1471     * Upgrade file type
1472     *
1473     * @type { ComponentType }
1474     * @syscap SystemCapability.Update.UpdateService
1475     * @systemapi hide for inner use.
1476     * @since 9
1477     */
1478    fileType: ComponentType;
1479
1480    /**
1481     * Upgrade file path
1482     *
1483     * @type { string }
1484     * @syscap SystemCapability.Update.UpdateService
1485     * @systemapi hide for inner use.
1486     * @since 9
1487     */
1488    filePath: string;
1489  }
1490
1491  /**
1492   * Called when upgrade task info changes.
1493   * You need to implement this method in a child class.
1494   *
1495   * @typedef UpgradeTaskCallback
1496   * @syscap SystemCapability.Update.UpdateService
1497   * @systemapi hide for inner use.
1498   * @since 9
1499   */
1500  export interface UpgradeTaskCallback {
1501    /**
1502     * Event callback.
1503     *
1504     * @param { EventInfo } eventInfo - Event information.
1505     * @syscap SystemCapability.Update.UpdateService
1506     * @systemapi hide for inner use.
1507     * @since 9
1508     */
1509    (eventInfo: EventInfo): void;
1510  }
1511
1512  /**
1513   * Enumerates business vendor type.
1514   *
1515   * @enum { string }
1516   * @syscap SystemCapability.Update.UpdateService
1517   * @systemapi hide for inner use.
1518   * @since 9
1519   */
1520  export enum BusinessVendor {
1521    /**
1522     * Device vendor is open source.
1523     *
1524     * @syscap SystemCapability.Update.UpdateService
1525     * @systemapi hide for inner use.
1526     * @since 9
1527     */
1528    PUBLIC = 'public'
1529  }
1530
1531  /**
1532   * Enumerates business sub type.
1533   *
1534   * @enum { number }
1535   * @syscap SystemCapability.Update.UpdateService
1536   * @systemapi hide for inner use.
1537   * @since 9
1538   */
1539  export enum BusinessSubType {
1540    /**
1541     * Business sub type is Firmware.
1542     *
1543     * @syscap SystemCapability.Update.UpdateService
1544     * @systemapi hide for inner use.
1545     * @since 9
1546     */
1547    FIRMWARE = 1
1548  }
1549
1550  /**
1551   * Enumerates component type.
1552   *
1553   * @enum { number }
1554   * @syscap SystemCapability.Update.UpdateService
1555   * @systemapi hide for inner use.
1556   * @since 9
1557   */
1558  export enum ComponentType {
1559    /**
1560     * Component type is OTA.
1561     *
1562     * @syscap SystemCapability.Update.UpdateService
1563     * @systemapi hide for inner use.
1564     * @since 9
1565     */
1566    OTA = 1
1567  }
1568
1569  /**
1570   * Enumerates upgrade action type.
1571   *
1572   * @enum { string }
1573   * @syscap SystemCapability.Update.UpdateService
1574   * @systemapi hide for inner use.
1575   * @since 9
1576   */
1577  export enum UpgradeAction {
1578    /**
1579     * Differential package.
1580     *
1581     * @syscap SystemCapability.Update.UpdateService
1582     * @systemapi hide for inner use.
1583     * @since 9
1584     */
1585    UPGRADE = 'upgrade',
1586
1587    /**
1588     * Recovery package.
1589     *
1590     * @syscap SystemCapability.Update.UpdateService
1591     * @systemapi hide for inner use.
1592     * @since 9
1593     */
1594    RECOVERY = 'recovery'
1595  }
1596
1597  /**
1598   * Enumerates effective mode.
1599   *
1600   * @enum { number }
1601   * @syscap SystemCapability.Update.UpdateService
1602   * @systemapi hide for inner use.
1603   * @since 9
1604   */
1605  export enum EffectiveMode {
1606    /**
1607     * Cold update.
1608     *
1609     * @syscap SystemCapability.Update.UpdateService
1610     * @systemapi hide for inner use.
1611     * @since 9
1612     */
1613    COLD = 1,
1614
1615    /**
1616     * Live update.
1617     *
1618     * @syscap SystemCapability.Update.UpdateService
1619     * @systemapi hide for inner use.
1620     * @since 9
1621     */
1622    LIVE = 2,
1623
1624    /**
1625     * Hybrid live and cold update.
1626     *
1627     * @syscap SystemCapability.Update.UpdateService
1628     * @systemapi hide for inner use.
1629     * @since 9
1630     */
1631    LIVE_AND_COLD = 3
1632  }
1633
1634  /**
1635   * Enumerates ota mode.
1636   *
1637   * @enum { number }
1638   * @syscap SystemCapability.Update.UpdateService
1639   * @systemapi hide for inner use.
1640   * @since 20
1641   */
1642  export enum OtaMode {
1643    /**
1644     * Regular update.
1645     *
1646     * @syscap SystemCapability.Update.UpdateService
1647     * @systemapi hide for inner use.
1648     * @since 20
1649     */
1650    REGULAR_OTA = 0,
1651
1652    /**
1653     * Stream update.
1654     *
1655     * @syscap SystemCapability.Update.UpdateService
1656     * @systemapi hide for inner use.
1657     * @since 20
1658     */
1659    STREAM_OTA = 1,
1660
1661    /**
1662     * AB regular update.
1663     *
1664     * @syscap SystemCapability.Update.UpdateService
1665     * @systemapi hide for inner use.
1666     * @since 20
1667     */
1668    AB_REGULAR_OTA = 2,
1669
1670    /**
1671     * AB stream update.
1672     *
1673     * @syscap SystemCapability.Update.UpdateService
1674     * @systemapi hide for inner use.
1675     * @since 20
1676     */
1677    AB_STREAM_OTA = 3
1678  }
1679
1680  /**
1681   * Enumerates description type.
1682   *
1683   * @enum { number }
1684   * @syscap SystemCapability.Update.UpdateService
1685   * @systemapi hide for inner use.
1686   * @since 9
1687   */
1688  export enum DescriptionType {
1689    /**
1690     * Description type is content.
1691     *
1692     * @syscap SystemCapability.Update.UpdateService
1693     * @systemapi hide for inner use.
1694     * @since 9
1695     */
1696    CONTENT = 0,
1697
1698    /**
1699     * Description type is link.
1700     *
1701     * @syscap SystemCapability.Update.UpdateService
1702     * @systemapi hide for inner use.
1703     * @since 9
1704     */
1705    URI = 1
1706  }
1707
1708  /**
1709   * Enumerates description format.
1710   *
1711   * @enum { number }
1712   * @syscap SystemCapability.Update.UpdateService
1713   * @systemapi hide for inner use.
1714   * @since 9
1715   */
1716  export enum DescriptionFormat {
1717    /**
1718     * Description format is standard format.
1719     *
1720     * @syscap SystemCapability.Update.UpdateService
1721     * @systemapi hide for inner use.
1722     * @since 9
1723     */
1724    STANDARD = 0,
1725
1726    /**
1727     * Description format is Simple format.
1728     *
1729     * @syscap SystemCapability.Update.UpdateService
1730     * @systemapi hide for inner use.
1731     * @since 9
1732     */
1733    SIMPLIFIED = 1
1734  }
1735
1736  /**
1737   * Enumerates network type.
1738   *
1739   * @enum { number }
1740   * @syscap SystemCapability.Update.UpdateService
1741   * @systemapi hide for inner use.
1742   * @since 9
1743   */
1744  export enum NetType {
1745    /**
1746     * Network type is data network.
1747     *
1748     * @syscap SystemCapability.Update.UpdateService
1749     * @systemapi hide for inner use.
1750     * @since 9
1751     */
1752    CELLULAR = 1,
1753
1754    /**
1755     * Network type is Wi-Fi hotspot.
1756     *
1757     * @syscap SystemCapability.Update.UpdateService
1758     * @systemapi hide for inner use.
1759     * @since 9
1760     */
1761    METERED_WIFI = 2,
1762
1763    /**
1764     * Network type is non Wi-Fi hotspot.
1765     *
1766     * @syscap SystemCapability.Update.UpdateService
1767     * @systemapi hide for inner use.
1768     * @since 9
1769     */
1770    NOT_METERED_WIFI = 4,
1771
1772    /**
1773     * Network type is Wi-Fi.
1774     *
1775     * @syscap SystemCapability.Update.UpdateService
1776     * @systemapi hide for inner use.
1777     * @since 9
1778     */
1779    WIFI = 6,
1780
1781    /**
1782     * Network type is data network and Wi-Fi.
1783     *
1784     * @syscap SystemCapability.Update.UpdateService
1785     * @systemapi hide for inner use.
1786     * @since 9
1787     */
1788    CELLULAR_AND_WIFI = 7
1789  }
1790
1791  /**
1792   * Enumerates upgrade order.
1793   *
1794   * @enum { number }
1795   * @syscap SystemCapability.Update.UpdateService
1796   * @systemapi hide for inner use.
1797   * @since 9
1798   */
1799  export enum Order {
1800    /**
1801     * Upgrade order is download.
1802     *
1803     * @syscap SystemCapability.Update.UpdateService
1804     * @systemapi hide for inner use.
1805     * @since 9
1806     */
1807    DOWNLOAD = 1,
1808
1809    /**
1810     * Upgrade order is Install.
1811     *
1812     * @syscap SystemCapability.Update.UpdateService
1813     * @systemapi hide for inner use.
1814     * @since 9
1815     */
1816    INSTALL = 2,
1817
1818    /**
1819     * Upgrade order is download and install.
1820     *
1821     * @syscap SystemCapability.Update.UpdateService
1822     * @systemapi hide for inner use.
1823     * @since 9
1824     */
1825    DOWNLOAD_AND_INSTALL = 3,
1826
1827    /**
1828     * Upgrade order is apply.
1829     *
1830     * @syscap SystemCapability.Update.UpdateService
1831     * @systemapi hide for inner use.
1832     * @since 9
1833     */
1834    APPLY = 4,
1835
1836    /**
1837     * Upgrade order is install and apply.
1838     *
1839     * @syscap SystemCapability.Update.UpdateService
1840     * @systemapi hide for inner use.
1841     * @since 9
1842     */
1843    INSTALL_AND_APPLY = 6
1844  }
1845
1846  /**
1847   * Enumerates upgrade status.
1848   *
1849   * @enum { number }
1850   * @syscap SystemCapability.Update.UpdateService
1851   * @systemapi hide for inner use.
1852   * @since 9
1853   */
1854  export enum UpgradeStatus {
1855    /**
1856     * Upgrade status is waiting for download.
1857     *
1858     * @syscap SystemCapability.Update.UpdateService
1859     * @systemapi hide for inner use.
1860     * @since 9
1861     */
1862    WAITING_DOWNLOAD = 20,
1863
1864    /**
1865     * Upgrade status is downloading.
1866     *
1867     * @syscap SystemCapability.Update.UpdateService
1868     * @systemapi hide for inner use.
1869     * @since 9
1870     */
1871    DOWNLOADING = 21,
1872
1873    /**
1874     * Upgrade status is download paused.
1875     *
1876     * @syscap SystemCapability.Update.UpdateService
1877     * @systemapi hide for inner use.
1878     * @since 9
1879     */
1880    DOWNLOAD_PAUSED = 22,
1881
1882    /**
1883     * Upgrade status is download failed.
1884     *
1885     * @syscap SystemCapability.Update.UpdateService
1886     * @systemapi hide for inner use.
1887     * @since 9
1888     */
1889    DOWNLOAD_FAIL = 23,
1890
1891    /**
1892     * Upgrade status is waiting for installation.
1893     *
1894     * @syscap SystemCapability.Update.UpdateService
1895     * @systemapi hide for inner use.
1896     * @since 9
1897     */
1898    WAITING_INSTALL = 30,
1899
1900    /**
1901     * Upgrade status is upgrading.
1902     *
1903     * @syscap SystemCapability.Update.UpdateService
1904     * @systemapi hide for inner use.
1905     * @since 9
1906     */
1907    UPDATING = 31,
1908
1909    /**
1910     * Upgrade status is waiting for applying the update.
1911     *
1912     * @syscap SystemCapability.Update.UpdateService
1913     * @systemapi hide for inner use.
1914     * @since 9
1915     */
1916    WAITING_APPLY = 40,
1917
1918    /**
1919     * Upgrade status is applying the update.
1920     *
1921     * @syscap SystemCapability.Update.UpdateService
1922     * @systemapi hide for inner use.
1923     * @since 9
1924     */
1925    APPLYING = 41,
1926
1927    /**
1928     * Upgrade status is update succeeded.
1929     *
1930     * @syscap SystemCapability.Update.UpdateService
1931     * @systemapi hide for inner use.
1932     * @since 9
1933     */
1934    UPGRADE_SUCCESS = 50,
1935
1936    /**
1937     * Upgrade status is update failed.
1938     *
1939     * @syscap SystemCapability.Update.UpdateService
1940     * @systemapi hide for inner use.
1941     * @since 9
1942     */
1943    UPGRADE_FAIL = 51
1944  }
1945
1946  /**
1947   * Enumerates event classify.
1948   *
1949   * @enum { number }
1950   * @syscap SystemCapability.Update.UpdateService
1951   * @systemapi hide for inner use.
1952   * @since 9
1953   */
1954  export enum EventClassify {
1955    /**
1956     * Event classify is task event.
1957     *
1958     * @syscap SystemCapability.Update.UpdateService
1959     * @systemapi hide for inner use.
1960     * @since 9
1961     */
1962    TASK = 0x01000000
1963  }
1964
1965  /**
1966   * Enumerates event id.
1967   *
1968   * @enum { number }
1969   * @syscap SystemCapability.Update.UpdateService
1970   * @systemapi hide for inner use.
1971   * @since 9
1972   */
1973  export enum EventId {
1974    /**
1975     * Event id is task event.
1976     *
1977     * @syscap SystemCapability.Update.UpdateService
1978     * @systemapi hide for inner use.
1979     * @since 9
1980     */
1981    EVENT_TASK_BASE = EventClassify.TASK,
1982
1983    /**
1984     * Event id is task received.
1985     *
1986     * @syscap SystemCapability.Update.UpdateService
1987     * @systemapi hide for inner use.
1988     * @since 9
1989     */
1990    EVENT_TASK_RECEIVE,
1991
1992    /**
1993     * Event id is task cancelled.
1994     *
1995     * @syscap SystemCapability.Update.UpdateService
1996     * @systemapi hide for inner use.
1997     * @since 9
1998     */
1999    EVENT_TASK_CANCEL,
2000
2001    /**
2002     * Event id is waiting for download.
2003     *
2004     * @syscap SystemCapability.Update.UpdateService
2005     * @systemapi hide for inner use.
2006     * @since 9
2007     */
2008    EVENT_DOWNLOAD_WAIT,
2009
2010    /**
2011     * Event id is download started.
2012     *
2013     * @syscap SystemCapability.Update.UpdateService
2014     * @systemapi hide for inner use.
2015     * @since 9
2016     */
2017    EVENT_DOWNLOAD_START,
2018
2019    /**
2020     * Event id is download progress update.
2021     *
2022     * @syscap SystemCapability.Update.UpdateService
2023     * @systemapi hide for inner use.
2024     * @since 9
2025     */
2026    EVENT_DOWNLOAD_UPDATE,
2027
2028    /**
2029     * Event id is download paused.
2030     *
2031     * @syscap SystemCapability.Update.UpdateService
2032     * @systemapi hide for inner use.
2033     * @since 9
2034     */
2035    EVENT_DOWNLOAD_PAUSE,
2036
2037    /**
2038     * Event id is download resumed.
2039     *
2040     * @syscap SystemCapability.Update.UpdateService
2041     * @systemapi hide for inner use.
2042     * @since 9
2043     */
2044    EVENT_DOWNLOAD_RESUME,
2045
2046    /**
2047     * Event id is download succeeded.
2048     *
2049     * @syscap SystemCapability.Update.UpdateService
2050     * @systemapi hide for inner use.
2051     * @since 9
2052     */
2053    EVENT_DOWNLOAD_SUCCESS,
2054
2055    /**
2056     * Event id is download failed.
2057     *
2058     * @syscap SystemCapability.Update.UpdateService
2059     * @systemapi hide for inner use.
2060     * @since 9
2061     */
2062    EVENT_DOWNLOAD_FAIL,
2063
2064    /**
2065     * Event id is waiting for update.
2066     *
2067     * @syscap SystemCapability.Update.UpdateService
2068     * @systemapi hide for inner use.
2069     * @since 9
2070     */
2071    EVENT_UPGRADE_WAIT,
2072
2073    /**
2074     * Event id is update started.
2075     *
2076     * @syscap SystemCapability.Update.UpdateService
2077     * @systemapi hide for inner use.
2078     * @since 9
2079     */
2080    EVENT_UPGRADE_START,
2081
2082    /**
2083     * Event id is update in progress.
2084     *
2085     * @syscap SystemCapability.Update.UpdateService
2086     * @systemapi hide for inner use.
2087     * @since 9
2088     */
2089    EVENT_UPGRADE_UPDATE,
2090
2091    /**
2092     * Event id is waiting for applying the update.
2093     *
2094     * @syscap SystemCapability.Update.UpdateService
2095     * @systemapi hide for inner use.
2096     * @since 9
2097     */
2098    EVENT_APPLY_WAIT,
2099
2100    /**
2101     * Event id is applying the update.
2102     *
2103     * @syscap SystemCapability.Update.UpdateService
2104     * @systemapi hide for inner use.
2105     * @since 9
2106     */
2107    EVENT_APPLY_START,
2108
2109    /**
2110     * Event id is update succeeded.
2111     *
2112     * @syscap SystemCapability.Update.UpdateService
2113     * @systemapi hide for inner use.
2114     * @since 9
2115     */
2116    EVENT_UPGRADE_SUCCESS,
2117
2118    /**
2119     * Event id is update failed.
2120     *
2121     * @syscap SystemCapability.Update.UpdateService
2122     * @systemapi hide for inner use.
2123     * @since 9
2124     */
2125    EVENT_UPGRADE_FAIL
2126  }
2127}
2128
2129export default update;