/* * Copyright (c) 2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"), * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file * @kit CoreFileKit */ import type { AsyncCallback, Callback } from './@ohos.base'; /** * Provides the capabilities to control cloud file synchronization. * * @namespace cloudSync * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ declare namespace cloudSync { /** * Describes the Sync state type. * * @enum { number } * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ enum SyncState { /** * Indicates that the sync state is uploading. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ UPLOADING, /** * Indicates that the sync failed in upload processing. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ UPLOAD_FAILED, /** * Indicates that the sync state is downloading. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ DOWNLOADING, /** * Indicates that the sync failed in download processing. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ DOWNLOAD_FAILED, /** * Indicates that the sync finish. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ COMPLETED, /** * Indicates that the sync has been stopped. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ STOPPED } /** * Describes the Sync Error type. * * @enum { number } * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ enum ErrorType { /** * No error occurred. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ NO_ERROR, /** * Synchronization aborted due to network unavailable. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ NETWORK_UNAVAILABLE, /** * Synchronization aborted due to wifi unavailable. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ WIFI_UNAVAILABLE, /** * Synchronization aborted due to low capacity level. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ BATTERY_LEVEL_LOW, /** * Synchronization aborted due to warning low capacity level. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ BATTERY_LEVEL_WARNING, /** * Synchronization aborted due to cloud storage is full. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ CLOUD_STORAGE_FULL, /** * Synchronization aborted due to local storage is full. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ LOCAL_STORAGE_FULL, /** * Synchronization aborted due to device temperature is too high. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 12 */ DEVICE_TEMPERATURE_TOO_HIGH, } /** * The SyncProgress data structure. * * @interface SyncProgress * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ interface SyncProgress { /** * The current sync state. * * @type { SyncState } * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ state: SyncState; /** * The error type of sync. * * @type { ErrorType } * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ error: ErrorType; } /** * GallerySync object. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ class GallerySync { /** * A constructor used to create a GallerySync object. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ constructor(); /** * Subscribes to sync progress change event. This method uses a callback to get sync progress changes. * * @permission ohos.permission.CLOUDFILE_SYNC * @param { 'progress' } evt - event type. * @param { function } callback - callback function with a `SyncProgress` argument. * @throws { BusinessError } 201 - Permission verification failed. * @throws { BusinessError } 202 - The caller is not a system application. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ on(evt: 'progress', callback: (pg: SyncProgress) => void): void; /** * Unsubscribes from sync progress event. * * @permission ohos.permission.CLOUDFILE_SYNC * @param { 'progress' } evt - event type. * @param { function } callback - callback function with a `SyncProgress` argument. * @throws { BusinessError } 201 - Permission verification failed. * @throws { BusinessError } 202 - The caller is not a system application. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ off(evt: 'progress', callback: (pg: SyncProgress) => void): void; /** * Unsubscribes all callbacks objects from sync progress event. * * @permission ohos.permission.CLOUDFILE_SYNC * @param { 'progress' } evt - event type. * @throws { BusinessError } 201 - Permission verification failed. * @throws { BusinessError } 202 - The caller is not a system application. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ off(evt: 'progress'): void; /** * Start the gallery sync task. * * @permission ohos.permission.CLOUDFILE_SYNC * @returns { Promise } - Return Promise. * @throws { BusinessError } 201 - Permission verification failed. * @throws { BusinessError } 202 - The caller is not a system application. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 22400001 - Cloud status not ready. * @throws { BusinessError } 22400002 - Network unavailable. * @throws { BusinessError } 22400003 - Battery level warning. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ start(): Promise; /** * Start the gallery sync task with callback. * * @permission ohos.permission.CLOUDFILE_SYNC * @param { AsyncCallback } [callback] - Callback function. * @throws { BusinessError } 201 - Permission verification failed. * @throws { BusinessError } 202 - The caller is not a system application. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 22400001 - Cloud status not ready. * @throws { BusinessError } 22400002 - Network unavailable. * @throws { BusinessError } 22400003 - Battery level warning. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ start(callback: AsyncCallback): void; /** * Stop the gallery sync task. * * @permission ohos.permission.CLOUDFILE_SYNC * @returns { Promise } - Return Promise. * @throws { BusinessError } 201 - Permission verification failed. * @throws { BusinessError } 202 - The caller is not a system application. * @throws { BusinessError } 401 - The input parameter is invalid. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ stop(): Promise; /** * Stop the gallery sync task with callback. * * @permission ohos.permission.CLOUDFILE_SYNC * @param { AsyncCallback } [callback] - Callback function. * @throws { BusinessError } 201 - Permission verification failed. * @throws { BusinessError } 202 - The caller is not a system application. * @throws { BusinessError } 401 - The input parameter is invalid. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ stop(callback: AsyncCallback): void; } /** * Describes the State type of download. * * @enum { number } * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ enum State { /** * Indicates that the download task in process now. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ RUNNING, /** * Indicates that the download task finished. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ COMPLETED, /** * Indicates that the download task failed. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ FAILED, /** * Indicates that the download task stopped. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ STOPPED } /** * Describes the download Error type. * * @enum { number } * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ enum DownloadErrorType { /** * No error occurred. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ NO_ERROR, /** * download aborted due to unknown error. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ UNKNOWN_ERROR, /** * download aborted due to network unavailable. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ NETWORK_UNAVAILABLE, /** * download aborted due to local storage is full. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ LOCAL_STORAGE_FULL, /** * download aborted due to content is not found in the cloud. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ CONTENT_NOT_FOUND, /** * download aborted due to frequent user requests. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ FREQUENT_USER_REQUESTS, } /** * The DownloadProgress data structure. * * @interface DownloadProgress * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ interface DownloadProgress { /** * The current download state. * * @type { State } * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ state: State; /** * The processed data size for current file. * * @type { number } * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ processed: number; /** * The size of current file. * * @type { number } * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ size: number; /** * The uri of current file. * * @type { string } * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ uri: string; /** * The error type of download. * * @type { DownloadErrorType } * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ error: DownloadErrorType; } /** * Download object. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ class Download { /** * A constructor used to create a Download object. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ constructor(); /** * Subscribes to download progress change event. This method uses a callback to get download progress changes. * * @permission ohos.permission.CLOUDFILE_SYNC * @param { 'progress' } evt - event type. * @param { function } callback - callback function with a `DownloadProgress` argument. * @throws { BusinessError } 201 - Permission verification failed. * @throws { BusinessError } 202 - The caller is not a system application. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ on(evt: 'progress', callback: (pg: DownloadProgress) => void): void; /** * Unsubscribes from download progress event. * * @permission ohos.permission.CLOUDFILE_SYNC * @param { 'progress' } evt - event type. * @param { function } callback - callback function with a `DownloadProgress` argument. * @throws { BusinessError } 201 - Permission verification failed. * @throws { BusinessError } 202 - The caller is not a system application. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ off(evt: 'progress', callback: (pg: DownloadProgress) => void): void; /** * Unsubscribes all callbacks objects from download progress event. * * @permission ohos.permission.CLOUDFILE_SYNC * @param { 'progress' } evt - event type. * @throws { BusinessError } 201 - Permission verification failed. * @throws { BusinessError } 202 - The caller is not a system application. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ off(evt: 'progress'): void; /** * Start the download task. * * @permission ohos.permission.CLOUDFILE_SYNC * @param { string } uri - uri of file. * @returns { Promise } - Return Promise. * @throws { BusinessError } 201 - Permission verification failed. * @throws { BusinessError } 202 - The caller is not a system application. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13900002 - No such file or directory. * @throws { BusinessError } 13900025 - No space left on device. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ start(uri: string): Promise; /** * Start the download task with callback. * * @permission ohos.permission.CLOUDFILE_SYNC * @param { string } uri - uri of file. * @param { AsyncCallback } [callback] - Callback function. * @throws { BusinessError } 201 - Permission verification failed. * @throws { BusinessError } 202 - The caller is not a system application. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13900002 - No such file or directory. * @throws { BusinessError } 13900025 - No space left on device. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ start(uri: string, callback: AsyncCallback): void; /** * Stop the download task. * * @permission ohos.permission.CLOUDFILE_SYNC * @param { string } uri - uri of file. * @returns { Promise } - Return Promise. * @throws { BusinessError } 201 - Permission verification failed. * @throws { BusinessError } 202 - The caller is not a system application. * @throws { BusinessError } 401 - The input parameter is invalid. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ stop(uri: string): Promise; /** * Stop the download task with callback. * * @permission ohos.permission.CLOUDFILE_SYNC * @param { string } uri - uri of file. * @param { AsyncCallback } [callback] - Callback function. * @throws { BusinessError } 201 - Permission verification failed. * @throws { BusinessError } 202 - The caller is not a system application. * @throws { BusinessError } 401 - The input parameter is invalid. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 10 */ stop(uri: string, callback: AsyncCallback): void; } /** * FileSync object. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 11 */ class FileSync { /** * A constructor used to create a FileSync object. * * @throws { BusinessError } 202 - Permission verification failed, application which is not a system application uses system API. * @throws { BusinessError } 401 - The input parameter is invalid. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 11 */ constructor(); /** * A constructor used to create a FileSync object. * * @param { string } bundleName - Name of the bundle that need to synchronize and subscribe the sync progress event. * @throws { BusinessError } 202 - Permission verification failed, application which is not a system application uses system API. * @throws { BusinessError } 401 - The input parameter is invalid. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 12 */ constructor(bundleName: string); /** * Subscribes to sync progress change event. This method uses a callback to get sync progress changes. * * @permission ohos.permission.CLOUDFILE_SYNC * @param { 'progress' } event - event type. * @param { Callback } callback - callback function with a `SyncProgress` argument. * @throws { BusinessError } 201 - Permission verification failed, usually the result returned by VerifyAccessToken. * @throws { BusinessError } 202 - Permission verification failed, application which is not a system application uses system API. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 11 */ on(event: 'progress', callback: Callback): void; /** * Unsubscribes from sync progress event. * * @permission ohos.permission.CLOUDFILE_SYNC * @param { 'progress' } event - event type. * @param { Callback } [callback] - callback function with a `SyncProgress` argument. * @throws { BusinessError } 201 - Permission verification failed, usually the result returned by VerifyAccessToken. * @throws { BusinessError } 202 - Permission verification failed, application which is not a system application uses system API. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 11 */ off(event: 'progress', callback?: Callback): void; /** * Start the file sync task. * * @permission ohos.permission.CLOUDFILE_SYNC * @returns { Promise } - Return Promise. * @throws { BusinessError } 201 - Permission verification failed, usually the result returned by VerifyAccessToken. * @throws { BusinessError } 202 - Permission verification failed, application which is not a system application uses system API. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error. * @throws { BusinessError } 22400001 - Cloud status not ready. * @throws { BusinessError } 22400002 - Network unavailable. * @throws { BusinessError } 22400003 - Battery level warning. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 11 */ start(): Promise; /** * Start the file sync task with callback. * * @permission ohos.permission.CLOUDFILE_SYNC * @param { AsyncCallback } callback - Callback function. * @throws { BusinessError } 201 - Permission verification failed, usually the result returned by VerifyAccessToken. * @throws { BusinessError } 202 - Permission verification failed, application which is not a system application uses system API. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error. * @throws { BusinessError } 22400001 - Cloud status not ready. * @throws { BusinessError } 22400002 - Network unavailable. * @throws { BusinessError } 22400003 - Battery level warning. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 11 */ start(callback: AsyncCallback): void; /** * Stop the file sync task. * * @permission ohos.permission.CLOUDFILE_SYNC * @returns { Promise } - Return Promise. * @throws { BusinessError } 201 - Permission verification failed, usually the result returned by VerifyAccessToken. * @throws { BusinessError } 202 - Permission verification failed, application which is not a system application uses system API. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 11 */ stop(): Promise; /** * Stop the file sync task with callback. * * @permission ohos.permission.CLOUDFILE_SYNC * @param { AsyncCallback } callback - Callback function. * @throws { BusinessError } 201 - Permission verification failed, usually the result returned by VerifyAccessToken. * @throws { BusinessError } 202 - Permission verification failed, application which is not a system application uses system API. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 11 */ stop(callback: AsyncCallback): void; /** * Get the last synchronization time. * * @permission ohos.permission.CLOUDFILE_SYNC * @returns { Promise } - Return the date of last synchronization. * @throws { BusinessError } 201 - Permission verification failed, usually the result returned by VerifyAccessToken. * @throws { BusinessError } 202 - Permission verification failed, application which is not a system application uses system API. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 11 */ getLastSyncTime(): Promise; /** * Get the last synchronization time. * * @permission ohos.permission.CLOUDFILE_SYNC * @param { AsyncCallback } callback - Callback function. * @throws { BusinessError } 201 - Permission verification failed, usually the result returned by VerifyAccessToken. * @throws { BusinessError } 202 - Permission verification failed, application which is not a system application uses system API. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 11 */ getLastSyncTime(callback: AsyncCallback): void; } /** * CloudFileCache object. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ class CloudFileCache { /** * A constructor used to create a CloudFileCache object. * * @throws { BusinessError } 401 - The input parameter is invalid. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ constructor(); /** * Subscribes to cloud file cache download progress change event. This method uses a callback to get download progress changes. * * @param { 'progress' } event - event type. * @param { Callback } callback - callback function with a `DownloadProgress` argument. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ on(event: 'progress', callback: Callback): void; /** * Unsubscribes from cloud file cache download progress event. * * @param { 'progress' } event - event type. * @param { Callback } [callback] - callback function with a `DownloadProgress` argument. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ off(event: 'progress', callback?: Callback): void; /** * Start the cloud file cache download task. * * @param { string } uri - uri of file. * @returns { Promise } - Return Promise. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error. * @throws { BusinessError } 13900002 - No such file or directory. * @throws { BusinessError } 13900025 - No space left on device. * @throws { BusinessError } 14000002 - Invalid uri. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ start(uri: string): Promise; /** * Start the cloud file cache download task with callback. * * @param { string } uri - uri of file. * @param { AsyncCallback } callback - Callback function. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error. * @throws { BusinessError } 13900002 - No such file or directory. * @throws { BusinessError } 13900025 - No space left on device. * @throws { BusinessError } 14000002 - Invalid uri. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ start(uri: string, callback: AsyncCallback): void; /** * Stop the cloud file cache download task. * * @param { string } uri - uri of file. * @returns { Promise } - Return Promise. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error. * @throws { BusinessError } 13900002 - No such file or directory. * @throws { BusinessError } 14000002 - Invalid uri. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ /** * Stop the cloud file cache download task. * * @param { string } uri - uri of file. * @param { boolean } [needClean] - whether to delete the file that already downloaded. * @returns { Promise } - Return Promise. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error. * @throws { BusinessError } 13900002 - No such file or directory. * @throws { BusinessError } 14000002 - Invalid uri. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 12 */ stop(uri: string, needClean?: boolean): Promise; /** * Stop the cloud file cache download task with callback. * * @param { string } uri - uri of file. * @param { AsyncCallback } callback - Callback function. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error. * @throws { BusinessError } 13900002 - No such file or directory. * @throws { BusinessError } 14000002 - Invalid uri. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @since 11 */ stop(uri: string, callback: AsyncCallback): void; /** * Clean the local file cache. * * @permission ohos.permission.CLOUDFILE_SYNC * @param { string } uri - uri of file. * @throws { BusinessError } 201 - Permission verification failed, usually the result returned by VerifyAccessToken. * @throws { BusinessError } 202 - Permission verification failed, application which is not a system application uses system API. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error. * @throws { BusinessError } 13900002 - No such file or directory. * @throws { BusinessError } 14000002 - Invalid uri. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 11 */ cleanCache(uri: string): void; } /** * Describes the sync state of file. * * @enum { number } * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 11 */ enum FileSyncState { /** * Indicates that the file cache is uploading now. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 11 */ UPLOADING, /** * Indicates that the file cache is downloading now. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 11 */ DOWNLOADING, /** * Indicates that the file cache sync task finished. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 11 */ COMPLETED, /** * Indicates that the file cache sync task stopped. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 11 */ STOPPED, /** * Indicates that the file is waiting for upload. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 12 */ TO_BE_UPLOADED, /** * Indicates that the file has been already uploaded successfully. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 12 */ UPLOAD_SUCCESS, /** * Indicates that the file upload failure. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 12 */ UPLOAD_FAILURE, } /** * Get the sync state of file. * * @permission ohos.permission.CLOUDFILE_SYNC * @param { Array } uri - uri of files. * @returns { Promise> } - Return the sync state of given files. * @throws { BusinessError } 201 - Permission verification failed, usually the result returned by VerifyAccessToken. * @throws { BusinessError } 202 - Permission verification failed, application which is not a system application uses system API. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error. * @throws { BusinessError } 13900002 - No such file or directory. * @throws { BusinessError } 14000002 - Invalid uri. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 11 */ function getFileSyncState(uri: Array): Promise>; /** * Get the sync state of file. * * @permission ohos.permission.CLOUDFILE_SYNC * @param { Array } uri - uri of file. * @param { AsyncCallback> } callback - The callback is used to return the sync state of given files. * @throws { BusinessError } 201 - Permission verification failed, usually the result returned by VerifyAccessToken. * @throws { BusinessError } 202 - Permission verification failed, application which is not a system application uses system API. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13600001 - IPC error. * @throws { BusinessError } 13900002 - No such file or directory. * @throws { BusinessError } 14000002 - Invalid uri. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 11 */ function getFileSyncState(uri: Array, callback: AsyncCallback>): void; /** * Get the sync state of file. * * @param { string } uri - uri of file. * @returns { FileSyncState } - return the sync state of given files. * @throws { BusinessError } 202 - Permission verification failed, application which is not a system application uses system API. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13900002 - No such file or directory. * @throws { BusinessError } 13900004 - Interrupted system call * @throws { BusinessError } 13900010 - Try again * @throws { BusinessError } 13900012 - Permission denied by the file system * @throws { BusinessError } 13900031 - Function not implemented * @throws { BusinessError } 13900042 - Unknown error * @throws { BusinessError } 14000002 - Invalid uri. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 12 */ function getFileSyncState(uri: string): FileSyncState; /** * Register change notify for the specified uri. * * @param { string } uri - uri of file. * @param { boolean } recursion - Whether to monitor the child files. * @param { Callback } callback - Returns the changed data. * @throws { BusinessError } 202 - Permission verification failed, application which is not a system application uses system API. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13900001 - Operation not permitted * @throws { BusinessError } 13900002 - No such file or directory. * @throws { BusinessError } 13900012 - Permission denied * @throws { BusinessError } 14000002 - Invalid uri. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 12 */ function registerChange(uri: string, recursion: boolean, callback: Callback): void; /** * Unregister change notify fir the specified uri. * * @param { string } uri - uri of file. * @throws { BusinessError } 202 - Permission verification failed, application which is not a system application uses system API. * @throws { BusinessError } 401 - The input parameter is invalid. * @throws { BusinessError } 13900001 - Operation not permitted * @throws { BusinessError } 13900002 - No such file or directory. * @throws { BusinessError } 13900012 - Permission denied * @throws { BusinessError } 14000002 - Invalid uri. * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 12 */ function unregisterChange(uri: string): void; /** * Enumeration types of data change. * * @enum { number } NotifyType * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 12 */ enum NotifyType { /** * File has been newly created * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 12 */ NOTIFY_ADDED, /** * File has been modified. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 12 */ NOTIFY_MODIFIED, /** * File has been deleted. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 12 */ NOTIFY_DELETED, /** * File has been renamed or moved. * * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 12 */ NOTIFY_RENAMED } /** * Defines the change data * * @interface ChangeData * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 12 */ interface ChangeData { /** * The notify type of the change. * * @type {NotifyType} * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 12 */ type: NotifyType; /** * Indicates whether the changed uri is directory. * * @type {Array} * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 12 */ isDirectory: Array; /** * The changed uris. * * @type {Array} * @syscap SystemCapability.FileManagement.DistributedFileService.CloudSync.Core * @systemapi * @since 12 */ uris: Array; } } export default cloudSync;