• 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  /**
942   * Represents description options.
943   *
944   * @typedef DescriptionOptions
945   * @syscap SystemCapability.Update.UpdateService
946   * @systemapi hide for inner use.
947   * @since 9
948   */
949  export interface DescriptionOptions {
950    /**
951     * Format of the description file
952     *
953     * @type { DescriptionFormat }
954     * @syscap SystemCapability.Update.UpdateService
955     * @systemapi hide for inner use.
956     * @since 9
957     */
958    format: DescriptionFormat;
959
960    /**
961     * Language of the description file
962     *
963     * @type { string }
964     * @syscap SystemCapability.Update.UpdateService
965     * @systemapi hide for inner use.
966     * @since 9
967     */
968    language: string;
969  }
970
971  /**
972   * Represents version component description.
973   *
974   * @typedef ComponentDescription
975   * @syscap SystemCapability.Update.UpdateService
976   * @systemapi hide for inner use.
977   * @since 9
978   */
979  export interface ComponentDescription {
980    /**
981     * Component id
982     *
983     * @type { string }
984     * @syscap SystemCapability.Update.UpdateService
985     * @systemapi hide for inner use.
986     * @since 9
987     */
988    componentId: string;
989
990    /**
991     * Information about the description file
992     *
993     * @type { DescriptionInfo }
994     * @syscap SystemCapability.Update.UpdateService
995     * @systemapi hide for inner use.
996     * @since 9
997     */
998    descriptionInfo: DescriptionInfo;
999  }
1000
1001  /**
1002   * Represents new version description information.
1003   *
1004   * @typedef DescriptionInfo
1005   * @syscap SystemCapability.Update.UpdateService
1006   * @systemapi hide for inner use.
1007   * @since 9
1008   */
1009  export interface DescriptionInfo {
1010    /**
1011     * Description content type
1012     *
1013     * @type { DescriptionType }
1014     * @syscap SystemCapability.Update.UpdateService
1015     * @systemapi hide for inner use.
1016     * @since 9
1017     */
1018    descriptionType: DescriptionType;
1019
1020    /**
1021     * Content of the description file
1022     *
1023     * @type { string }
1024     * @syscap SystemCapability.Update.UpdateService
1025     * @systemapi hide for inner use.
1026     * @since 9
1027     */
1028    content: string;
1029  }
1030
1031  /**
1032   * Represents current version info.
1033   *
1034   * @typedef CurrentVersionInfo
1035   * @syscap SystemCapability.Update.UpdateService
1036   * @systemapi hide for inner use.
1037   * @since 9
1038   */
1039  export interface CurrentVersionInfo {
1040    /**
1041     * System version number
1042     *
1043     * @type { string }
1044     * @syscap SystemCapability.Update.UpdateService
1045     * @systemapi hide for inner use.
1046     * @since 9
1047     */
1048    osVersion: string;
1049
1050    /**
1051     * Device name
1052     *
1053     * @type { string }
1054     * @syscap SystemCapability.Update.UpdateService
1055     * @systemapi hide for inner use.
1056     * @since 9
1057     */
1058    deviceName: string;
1059
1060    /**
1061     * Current version component array
1062     *
1063     * @type { Array<VersionComponent> }
1064     * @syscap SystemCapability.Update.UpdateService
1065     * @systemapi hide for inner use.
1066     * @since 9
1067     */
1068    versionComponents: Array<VersionComponent>;
1069  }
1070
1071  /**
1072   * Represents download options.
1073   *
1074   * @typedef DownloadOptions
1075   * @syscap SystemCapability.Update.UpdateService
1076   * @systemapi hide for inner use.
1077   * @since 9
1078   */
1079  export interface DownloadOptions {
1080    /**
1081     * Allow download with the network type
1082     *
1083     * @type { NetType }
1084     * @syscap SystemCapability.Update.UpdateService
1085     * @systemapi hide for inner use.
1086     * @since 9
1087     */
1088    allowNetwork: NetType;
1089
1090    /**
1091     * Upgrade command
1092     *
1093     * @type { Order }
1094     * @syscap SystemCapability.Update.UpdateService
1095     * @systemapi hide for inner use.
1096     * @since 9
1097     */
1098    order: Order;
1099  }
1100
1101  /**
1102   * Represents resume download options.
1103   *
1104   * @typedef ResumeDownloadOptions
1105   * @syscap SystemCapability.Update.UpdateService
1106   * @systemapi hide for inner use.
1107   * @since 9
1108   */
1109  export interface ResumeDownloadOptions {
1110    /**
1111     * Allow download with the network type
1112     *
1113     * @type { NetType }
1114     * @syscap SystemCapability.Update.UpdateService
1115     * @systemapi hide for inner use.
1116     * @since 9
1117     */
1118    allowNetwork: NetType;
1119  }
1120
1121  /**
1122   * Represents pause download options.
1123   *
1124   * @typedef PauseDownloadOptions
1125   * @syscap SystemCapability.Update.UpdateService
1126   * @systemapi hide for inner use.
1127   * @since 9
1128   */
1129  export interface PauseDownloadOptions {
1130    /**
1131     * Whether allow auto resume when net available
1132     *
1133     * @type { boolean }
1134     * @syscap SystemCapability.Update.UpdateService
1135     * @systemapi hide for inner use.
1136     * @since 9
1137     */
1138    isAllowAutoResume: boolean;
1139  }
1140
1141  /**
1142   * Represents upgrade options.
1143   *
1144   * @typedef UpgradeOptions
1145   * @syscap SystemCapability.Update.UpdateService
1146   * @systemapi hide for inner use.
1147   * @since 9
1148   */
1149  export interface UpgradeOptions {
1150    /**
1151     * Upgrade command
1152     *
1153     * @type { Order }
1154     * @syscap SystemCapability.Update.UpdateService
1155     * @systemapi hide for inner use.
1156     * @since 9
1157     */
1158    order: Order;
1159  }
1160
1161  /**
1162   * Represents clear error options.
1163   *
1164   * @typedef ClearOptions
1165   * @syscap SystemCapability.Update.UpdateService
1166   * @systemapi hide for inner use.
1167   * @since 9
1168   */
1169  export interface ClearOptions {
1170    /**
1171     * Clear status error
1172     *
1173     * @type { UpgradeStatus }
1174     * @syscap SystemCapability.Update.UpdateService
1175     * @systemapi hide for inner use.
1176     * @since 9
1177     */
1178    status: UpgradeStatus;
1179  }
1180
1181  /**
1182   * Represents upgrade policy.
1183   *
1184   * @typedef UpgradePolicy
1185   * @syscap SystemCapability.Update.UpdateService
1186   * @systemapi hide for inner use.
1187   * @since 9
1188   */
1189  export interface UpgradePolicy {
1190    /**
1191     * Download strategy: open or close
1192     *
1193     * @type { boolean }
1194     * @syscap SystemCapability.Update.UpdateService
1195     * @systemapi hide for inner use.
1196     * @since 9
1197     */
1198    downloadStrategy: boolean;
1199
1200    /**
1201     * Auto upgrade strategy: open or close
1202     *
1203     * @type { boolean }
1204     * @syscap SystemCapability.Update.UpdateService
1205     * @systemapi hide for inner use.
1206     * @since 9
1207     */
1208    autoUpgradeStrategy: boolean;
1209
1210    /**
1211     * Auto upgrade period
1212     *
1213     * @type { Array<UpgradePeriod> }
1214     * @syscap SystemCapability.Update.UpdateService
1215     * @systemapi hide for inner use.
1216     * @since 9
1217     */
1218    autoUpgradePeriods: Array<UpgradePeriod>;
1219  }
1220
1221  /**
1222   * Represents upgrade period.
1223   *
1224   * @typedef UpgradePeriod
1225   * @syscap SystemCapability.Update.UpdateService
1226   * @systemapi hide for inner use.
1227   * @since 9
1228   */
1229  export interface UpgradePeriod {
1230    /**
1231     * Start time of upgrade period
1232     *
1233     * @type { number }
1234     * @syscap SystemCapability.Update.UpdateService
1235     * @systemapi hide for inner use.
1236     * @since 9
1237     */
1238    start: number;
1239
1240    /**
1241     * End time of upgrade period
1242     *
1243     * @type { number }
1244     * @syscap SystemCapability.Update.UpdateService
1245     * @systemapi hide for inner use.
1246     * @since 9
1247     */
1248    end: number;
1249  }
1250
1251  /**
1252   * Represents task info.
1253   *
1254   * @typedef TaskInfo
1255   * @syscap SystemCapability.Update.UpdateService
1256   * @systemapi hide for inner use.
1257   * @since 9
1258   */
1259  export interface TaskInfo {
1260    /**
1261     * Whether upgrade task exist
1262     *
1263     * @type { boolean }
1264     * @syscap SystemCapability.Update.UpdateService
1265     * @systemapi hide for inner use.
1266     * @since 9
1267     */
1268    existTask: boolean;
1269
1270    /**
1271     * Task body info
1272     *
1273     * @type { TaskBody }
1274     * @syscap SystemCapability.Update.UpdateService
1275     * @systemapi hide for inner use.
1276     * @since 9
1277     */
1278    taskBody: TaskBody;
1279  }
1280
1281  /**
1282   * Represents event info.
1283   *
1284   * @typedef EventInfo
1285   * @syscap SystemCapability.Update.UpdateService
1286   * @systemapi hide for inner use.
1287   * @since 9
1288   */
1289  export interface EventInfo {
1290    /**
1291     * Event id
1292     *
1293     * @type { EventId }
1294     * @syscap SystemCapability.Update.UpdateService
1295     * @systemapi hide for inner use.
1296     * @since 9
1297     */
1298    eventId: EventId;
1299
1300    /**
1301     * Task body info
1302     *
1303     * @type { TaskBody }
1304     * @syscap SystemCapability.Update.UpdateService
1305     * @systemapi hide for inner use.
1306     * @since 9
1307     */
1308    taskBody: TaskBody;
1309  }
1310
1311  /**
1312   * Represents task body info.
1313   *
1314   * @typedef TaskBody
1315   * @syscap SystemCapability.Update.UpdateService
1316   * @systemapi hide for inner use.
1317   * @since 9
1318   */
1319  export interface TaskBody {
1320    /**
1321     * Digest info of new version
1322     *
1323     * @type { VersionDigestInfo }
1324     * @syscap SystemCapability.Update.UpdateService
1325     * @systemapi hide for inner use.
1326     * @since 9
1327     */
1328    versionDigestInfo: VersionDigestInfo;
1329
1330    /**
1331     * Upgrade status
1332     *
1333     * @type { UpgradeStatus }
1334     * @syscap SystemCapability.Update.UpdateService
1335     * @systemapi hide for inner use.
1336     * @since 9
1337     */
1338    status: UpgradeStatus;
1339
1340    /**
1341     * Upgrade sub status
1342     *
1343     * @type { number }
1344     * @syscap SystemCapability.Update.UpdateService
1345     * @systemapi hide for inner use.
1346     * @since 9
1347     */
1348    subStatus: number;
1349
1350    /**
1351     * Upgrade progress
1352     *
1353     * @type { number }
1354     * @syscap SystemCapability.Update.UpdateService
1355     * @systemapi hide for inner use.
1356     * @since 9
1357     */
1358    progress: number;
1359
1360    /**
1361     * Install mode
1362     *
1363     * @type { number }
1364     * @syscap SystemCapability.Update.UpdateService
1365     * @systemapi hide for inner use.
1366     * @since 9
1367     */
1368    installMode: number;
1369
1370    /**
1371     * Error messages
1372     *
1373     * @type { Array<ErrorMessage> }
1374     * @syscap SystemCapability.Update.UpdateService
1375     * @systemapi hide for inner use.
1376     * @since 9
1377     */
1378    errorMessages: Array<ErrorMessage>;
1379
1380    /**
1381     * Version component array
1382     *
1383     * @type { Array<VersionComponent> }
1384     * @syscap SystemCapability.Update.UpdateService
1385     * @systemapi hide for inner use.
1386     * @since 9
1387     */
1388    versionComponents: Array<VersionComponent>;
1389  }
1390
1391  /**
1392   * Represents error message.
1393   *
1394   * @typedef ErrorMessage
1395   * @syscap SystemCapability.Update.UpdateService
1396   * @systemapi hide for inner use.
1397   * @since 9
1398   */
1399  export interface ErrorMessage {
1400    /**
1401     * Error code
1402     *
1403     * @type { number }
1404     * @syscap SystemCapability.Update.UpdateService
1405     * @systemapi hide for inner use.
1406     * @since 9
1407     */
1408    errorCode: number;
1409
1410    /**
1411     * Error message
1412     *
1413     * @type { string }
1414     * @syscap SystemCapability.Update.UpdateService
1415     * @systemapi hide for inner use.
1416     * @since 9
1417     */
1418    errorMessage: string;
1419  }
1420
1421  /**
1422   * Represents event classify info.
1423   *
1424   * @typedef EventClassifyInfo
1425   * @syscap SystemCapability.Update.UpdateService
1426   * @systemapi hide for inner use.
1427   * @since 9
1428   */
1429  export interface EventClassifyInfo {
1430    /**
1431     * Event classify
1432     *
1433     * @type { EventClassify }
1434     * @syscap SystemCapability.Update.UpdateService
1435     * @systemapi hide for inner use.
1436     * @since 9
1437     */
1438    eventClassify: EventClassify;
1439
1440    /**
1441     * Additional information
1442     *
1443     * @type { string }
1444     * @syscap SystemCapability.Update.UpdateService
1445     * @systemapi hide for inner use.
1446     * @since 9
1447     */
1448    extraInfo: string;
1449  }
1450
1451  /**
1452   * Represents upgrade file info.
1453   *
1454   * @typedef UpgradeFile
1455   * @syscap SystemCapability.Update.UpdateService
1456   * @systemapi hide for inner use.
1457   * @since 9
1458   */
1459  export interface UpgradeFile {
1460    /**
1461     * Upgrade file type
1462     *
1463     * @type { ComponentType }
1464     * @syscap SystemCapability.Update.UpdateService
1465     * @systemapi hide for inner use.
1466     * @since 9
1467     */
1468    fileType: ComponentType;
1469
1470    /**
1471     * Upgrade file path
1472     *
1473     * @type { string }
1474     * @syscap SystemCapability.Update.UpdateService
1475     * @systemapi hide for inner use.
1476     * @since 9
1477     */
1478    filePath: string;
1479  }
1480
1481  /**
1482   * Called when upgrade task info changes.
1483   * You need to implement this method in a child class.
1484   *
1485   * @typedef UpgradeTaskCallback
1486   * @syscap SystemCapability.Update.UpdateService
1487   * @systemapi hide for inner use.
1488   * @since 9
1489   */
1490  export interface UpgradeTaskCallback {
1491    /**
1492     * Event callback.
1493     *
1494     * @param { EventInfo } eventInfo - Event information.
1495     * @syscap SystemCapability.Update.UpdateService
1496     * @systemapi hide for inner use.
1497     * @since 9
1498     */
1499    (eventInfo: EventInfo): void;
1500  }
1501
1502  /**
1503   * Enumerates business vendor type.
1504   *
1505   * @enum { string }
1506   * @syscap SystemCapability.Update.UpdateService
1507   * @systemapi hide for inner use.
1508   * @since 9
1509   */
1510  export enum BusinessVendor {
1511    /**
1512     * Device vendor is open source.
1513     *
1514     * @syscap SystemCapability.Update.UpdateService
1515     * @systemapi hide for inner use.
1516     * @since 9
1517     */
1518    PUBLIC = 'public'
1519  }
1520
1521  /**
1522   * Enumerates business sub type.
1523   *
1524   * @enum { number }
1525   * @syscap SystemCapability.Update.UpdateService
1526   * @systemapi hide for inner use.
1527   * @since 9
1528   */
1529  export enum BusinessSubType {
1530    /**
1531     * Business sub type is Firmware.
1532     *
1533     * @syscap SystemCapability.Update.UpdateService
1534     * @systemapi hide for inner use.
1535     * @since 9
1536     */
1537    FIRMWARE = 1
1538  }
1539
1540  /**
1541   * Enumerates component type.
1542   *
1543   * @enum { number }
1544   * @syscap SystemCapability.Update.UpdateService
1545   * @systemapi hide for inner use.
1546   * @since 9
1547   */
1548  export enum ComponentType {
1549    /**
1550     * Component type is OTA.
1551     *
1552     * @syscap SystemCapability.Update.UpdateService
1553     * @systemapi hide for inner use.
1554     * @since 9
1555     */
1556    OTA = 1
1557  }
1558
1559  /**
1560   * Enumerates upgrade action type.
1561   *
1562   * @enum { string }
1563   * @syscap SystemCapability.Update.UpdateService
1564   * @systemapi hide for inner use.
1565   * @since 9
1566   */
1567  export enum UpgradeAction {
1568    /**
1569     * Differential package.
1570     *
1571     * @syscap SystemCapability.Update.UpdateService
1572     * @systemapi hide for inner use.
1573     * @since 9
1574     */
1575    UPGRADE = 'upgrade',
1576
1577    /**
1578     * Recovery package.
1579     *
1580     * @syscap SystemCapability.Update.UpdateService
1581     * @systemapi hide for inner use.
1582     * @since 9
1583     */
1584    RECOVERY = 'recovery'
1585  }
1586
1587  /**
1588   * Enumerates effective mode.
1589   *
1590   * @enum { number }
1591   * @syscap SystemCapability.Update.UpdateService
1592   * @systemapi hide for inner use.
1593   * @since 9
1594   */
1595  export enum EffectiveMode {
1596    /**
1597     * Cold update.
1598     *
1599     * @syscap SystemCapability.Update.UpdateService
1600     * @systemapi hide for inner use.
1601     * @since 9
1602     */
1603    COLD = 1,
1604
1605    /**
1606     * Live update.
1607     *
1608     * @syscap SystemCapability.Update.UpdateService
1609     * @systemapi hide for inner use.
1610     * @since 9
1611     */
1612    LIVE = 2,
1613
1614    /**
1615     * Hybrid live and cold update.
1616     *
1617     * @syscap SystemCapability.Update.UpdateService
1618     * @systemapi hide for inner use.
1619     * @since 9
1620     */
1621    LIVE_AND_COLD = 3
1622  }
1623
1624  /**
1625   * Enumerates description type.
1626   *
1627   * @enum { number }
1628   * @syscap SystemCapability.Update.UpdateService
1629   * @systemapi hide for inner use.
1630   * @since 9
1631   */
1632  export enum DescriptionType {
1633    /**
1634     * Description type is content.
1635     *
1636     * @syscap SystemCapability.Update.UpdateService
1637     * @systemapi hide for inner use.
1638     * @since 9
1639     */
1640    CONTENT = 0,
1641
1642    /**
1643     * Description type is link.
1644     *
1645     * @syscap SystemCapability.Update.UpdateService
1646     * @systemapi hide for inner use.
1647     * @since 9
1648     */
1649    URI = 1
1650  }
1651
1652  /**
1653   * Enumerates description format.
1654   *
1655   * @enum { number }
1656   * @syscap SystemCapability.Update.UpdateService
1657   * @systemapi hide for inner use.
1658   * @since 9
1659   */
1660  export enum DescriptionFormat {
1661    /**
1662     * Description format is standard format.
1663     *
1664     * @syscap SystemCapability.Update.UpdateService
1665     * @systemapi hide for inner use.
1666     * @since 9
1667     */
1668    STANDARD = 0,
1669
1670    /**
1671     * Description format is Simple format.
1672     *
1673     * @syscap SystemCapability.Update.UpdateService
1674     * @systemapi hide for inner use.
1675     * @since 9
1676     */
1677    SIMPLIFIED = 1
1678  }
1679
1680  /**
1681   * Enumerates network type.
1682   *
1683   * @enum { number }
1684   * @syscap SystemCapability.Update.UpdateService
1685   * @systemapi hide for inner use.
1686   * @since 9
1687   */
1688  export enum NetType {
1689    /**
1690     * Network type is data network.
1691     *
1692     * @syscap SystemCapability.Update.UpdateService
1693     * @systemapi hide for inner use.
1694     * @since 9
1695     */
1696    CELLULAR = 1,
1697
1698    /**
1699     * Network type is Wi-Fi hotspot.
1700     *
1701     * @syscap SystemCapability.Update.UpdateService
1702     * @systemapi hide for inner use.
1703     * @since 9
1704     */
1705    METERED_WIFI = 2,
1706
1707    /**
1708     * Network type is non Wi-Fi hotspot.
1709     *
1710     * @syscap SystemCapability.Update.UpdateService
1711     * @systemapi hide for inner use.
1712     * @since 9
1713     */
1714    NOT_METERED_WIFI = 4,
1715
1716    /**
1717     * Network type is Wi-Fi.
1718     *
1719     * @syscap SystemCapability.Update.UpdateService
1720     * @systemapi hide for inner use.
1721     * @since 9
1722     */
1723    WIFI = 6,
1724
1725    /**
1726     * Network type is data network and Wi-Fi.
1727     *
1728     * @syscap SystemCapability.Update.UpdateService
1729     * @systemapi hide for inner use.
1730     * @since 9
1731     */
1732    CELLULAR_AND_WIFI = 7
1733  }
1734
1735  /**
1736   * Enumerates upgrade order.
1737   *
1738   * @enum { number }
1739   * @syscap SystemCapability.Update.UpdateService
1740   * @systemapi hide for inner use.
1741   * @since 9
1742   */
1743  export enum Order {
1744    /**
1745     * Upgrade order is download.
1746     *
1747     * @syscap SystemCapability.Update.UpdateService
1748     * @systemapi hide for inner use.
1749     * @since 9
1750     */
1751    DOWNLOAD = 1,
1752
1753    /**
1754     * Upgrade order is Install.
1755     *
1756     * @syscap SystemCapability.Update.UpdateService
1757     * @systemapi hide for inner use.
1758     * @since 9
1759     */
1760    INSTALL = 2,
1761
1762    /**
1763     * Upgrade order is download and install.
1764     *
1765     * @syscap SystemCapability.Update.UpdateService
1766     * @systemapi hide for inner use.
1767     * @since 9
1768     */
1769    DOWNLOAD_AND_INSTALL = 3,
1770
1771    /**
1772     * Upgrade order is apply.
1773     *
1774     * @syscap SystemCapability.Update.UpdateService
1775     * @systemapi hide for inner use.
1776     * @since 9
1777     */
1778    APPLY = 4,
1779
1780    /**
1781     * Upgrade order is install and apply.
1782     *
1783     * @syscap SystemCapability.Update.UpdateService
1784     * @systemapi hide for inner use.
1785     * @since 9
1786     */
1787    INSTALL_AND_APPLY = 6
1788  }
1789
1790  /**
1791   * Enumerates upgrade status.
1792   *
1793   * @enum { number }
1794   * @syscap SystemCapability.Update.UpdateService
1795   * @systemapi hide for inner use.
1796   * @since 9
1797   */
1798  export enum UpgradeStatus {
1799    /**
1800     * Upgrade status is waiting for download.
1801     *
1802     * @syscap SystemCapability.Update.UpdateService
1803     * @systemapi hide for inner use.
1804     * @since 9
1805     */
1806    WAITING_DOWNLOAD = 20,
1807
1808    /**
1809     * Upgrade status is downloading.
1810     *
1811     * @syscap SystemCapability.Update.UpdateService
1812     * @systemapi hide for inner use.
1813     * @since 9
1814     */
1815    DOWNLOADING = 21,
1816
1817    /**
1818     * Upgrade status is download paused.
1819     *
1820     * @syscap SystemCapability.Update.UpdateService
1821     * @systemapi hide for inner use.
1822     * @since 9
1823     */
1824    DOWNLOAD_PAUSED = 22,
1825
1826    /**
1827     * Upgrade status is download failed.
1828     *
1829     * @syscap SystemCapability.Update.UpdateService
1830     * @systemapi hide for inner use.
1831     * @since 9
1832     */
1833    DOWNLOAD_FAIL = 23,
1834
1835    /**
1836     * Upgrade status is waiting for installation.
1837     *
1838     * @syscap SystemCapability.Update.UpdateService
1839     * @systemapi hide for inner use.
1840     * @since 9
1841     */
1842    WAITING_INSTALL = 30,
1843
1844    /**
1845     * Upgrade status is upgrading.
1846     *
1847     * @syscap SystemCapability.Update.UpdateService
1848     * @systemapi hide for inner use.
1849     * @since 9
1850     */
1851    UPDATING = 31,
1852
1853    /**
1854     * Upgrade status is waiting for applying the update.
1855     *
1856     * @syscap SystemCapability.Update.UpdateService
1857     * @systemapi hide for inner use.
1858     * @since 9
1859     */
1860    WAITING_APPLY = 40,
1861
1862    /**
1863     * Upgrade status is applying the update.
1864     *
1865     * @syscap SystemCapability.Update.UpdateService
1866     * @systemapi hide for inner use.
1867     * @since 9
1868     */
1869    APPLYING = 41,
1870
1871    /**
1872     * Upgrade status is update succeeded.
1873     *
1874     * @syscap SystemCapability.Update.UpdateService
1875     * @systemapi hide for inner use.
1876     * @since 9
1877     */
1878    UPGRADE_SUCCESS = 50,
1879
1880    /**
1881     * Upgrade status is update failed.
1882     *
1883     * @syscap SystemCapability.Update.UpdateService
1884     * @systemapi hide for inner use.
1885     * @since 9
1886     */
1887    UPGRADE_FAIL = 51
1888  }
1889
1890  /**
1891   * Enumerates event classify.
1892   *
1893   * @enum { number }
1894   * @syscap SystemCapability.Update.UpdateService
1895   * @systemapi hide for inner use.
1896   * @since 9
1897   */
1898  export enum EventClassify {
1899    /**
1900     * Event classify is task event.
1901     *
1902     * @syscap SystemCapability.Update.UpdateService
1903     * @systemapi hide for inner use.
1904     * @since 9
1905     */
1906    TASK = 0x01000000
1907  }
1908
1909  /**
1910   * Enumerates event id.
1911   *
1912   * @enum { number }
1913   * @syscap SystemCapability.Update.UpdateService
1914   * @systemapi hide for inner use.
1915   * @since 9
1916   */
1917  export enum EventId {
1918    /**
1919     * Event id is task event.
1920     *
1921     * @syscap SystemCapability.Update.UpdateService
1922     * @systemapi hide for inner use.
1923     * @since 9
1924     */
1925    EVENT_TASK_BASE = EventClassify.TASK,
1926
1927    /**
1928     * Event id is task received.
1929     *
1930     * @syscap SystemCapability.Update.UpdateService
1931     * @systemapi hide for inner use.
1932     * @since 9
1933     */
1934    EVENT_TASK_RECEIVE,
1935
1936    /**
1937     * Event id is task cancelled.
1938     *
1939     * @syscap SystemCapability.Update.UpdateService
1940     * @systemapi hide for inner use.
1941     * @since 9
1942     */
1943    EVENT_TASK_CANCEL,
1944
1945    /**
1946     * Event id is waiting for download.
1947     *
1948     * @syscap SystemCapability.Update.UpdateService
1949     * @systemapi hide for inner use.
1950     * @since 9
1951     */
1952    EVENT_DOWNLOAD_WAIT,
1953
1954    /**
1955     * Event id is download started.
1956     *
1957     * @syscap SystemCapability.Update.UpdateService
1958     * @systemapi hide for inner use.
1959     * @since 9
1960     */
1961    EVENT_DOWNLOAD_START,
1962
1963    /**
1964     * Event id is download progress update.
1965     *
1966     * @syscap SystemCapability.Update.UpdateService
1967     * @systemapi hide for inner use.
1968     * @since 9
1969     */
1970    EVENT_DOWNLOAD_UPDATE,
1971
1972    /**
1973     * Event id is download paused.
1974     *
1975     * @syscap SystemCapability.Update.UpdateService
1976     * @systemapi hide for inner use.
1977     * @since 9
1978     */
1979    EVENT_DOWNLOAD_PAUSE,
1980
1981    /**
1982     * Event id is download resumed.
1983     *
1984     * @syscap SystemCapability.Update.UpdateService
1985     * @systemapi hide for inner use.
1986     * @since 9
1987     */
1988    EVENT_DOWNLOAD_RESUME,
1989
1990    /**
1991     * Event id is download succeeded.
1992     *
1993     * @syscap SystemCapability.Update.UpdateService
1994     * @systemapi hide for inner use.
1995     * @since 9
1996     */
1997    EVENT_DOWNLOAD_SUCCESS,
1998
1999    /**
2000     * Event id is download failed.
2001     *
2002     * @syscap SystemCapability.Update.UpdateService
2003     * @systemapi hide for inner use.
2004     * @since 9
2005     */
2006    EVENT_DOWNLOAD_FAIL,
2007
2008    /**
2009     * Event id is waiting for update.
2010     *
2011     * @syscap SystemCapability.Update.UpdateService
2012     * @systemapi hide for inner use.
2013     * @since 9
2014     */
2015    EVENT_UPGRADE_WAIT,
2016
2017    /**
2018     * Event id is update started.
2019     *
2020     * @syscap SystemCapability.Update.UpdateService
2021     * @systemapi hide for inner use.
2022     * @since 9
2023     */
2024    EVENT_UPGRADE_START,
2025
2026    /**
2027     * Event id is update in progress.
2028     *
2029     * @syscap SystemCapability.Update.UpdateService
2030     * @systemapi hide for inner use.
2031     * @since 9
2032     */
2033    EVENT_UPGRADE_UPDATE,
2034
2035    /**
2036     * Event id is waiting for applying the update.
2037     *
2038     * @syscap SystemCapability.Update.UpdateService
2039     * @systemapi hide for inner use.
2040     * @since 9
2041     */
2042    EVENT_APPLY_WAIT,
2043
2044    /**
2045     * Event id is applying the update.
2046     *
2047     * @syscap SystemCapability.Update.UpdateService
2048     * @systemapi hide for inner use.
2049     * @since 9
2050     */
2051    EVENT_APPLY_START,
2052
2053    /**
2054     * Event id is update succeeded.
2055     *
2056     * @syscap SystemCapability.Update.UpdateService
2057     * @systemapi hide for inner use.
2058     * @since 9
2059     */
2060    EVENT_UPGRADE_SUCCESS,
2061
2062    /**
2063     * Event id is update failed.
2064     *
2065     * @syscap SystemCapability.Update.UpdateService
2066     * @systemapi hide for inner use.
2067     * @since 9
2068     */
2069    EVENT_UPGRADE_FAIL
2070  }
2071}
2072
2073export default update;