161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
361847f8eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
461847f8eSopenharmony_ci * you may not use this file except in compliance with the License.
561847f8eSopenharmony_ci * You may obtain a copy of the License at
661847f8eSopenharmony_ci *
761847f8eSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
861847f8eSopenharmony_ci *
961847f8eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1061847f8eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1161847f8eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1261847f8eSopenharmony_ci * See the License for the specific language governing permissions and
1361847f8eSopenharmony_ci * limitations under the License.
1461847f8eSopenharmony_ci */
1561847f8eSopenharmony_ci
1661847f8eSopenharmony_ci/**
1761847f8eSopenharmony_ci * @file
1861847f8eSopenharmony_ci * @kit ArkData
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ciimport type rpc from './@ohos.rpc';
2261847f8eSopenharmony_ciimport type cloudData from './@ohos.data.cloudData';
2361847f8eSopenharmony_ciimport type relationalStore from './@ohos.data.relationalStore';
2461847f8eSopenharmony_ci
2561847f8eSopenharmony_ci/**
2661847f8eSopenharmony_ci * Provides interfaces to implement extended cloud capabilities.
2761847f8eSopenharmony_ci *
2861847f8eSopenharmony_ci * @namespace cloudExtension
2961847f8eSopenharmony_ci * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
3061847f8eSopenharmony_ci * @since 11
3161847f8eSopenharmony_ci */
3261847f8eSopenharmony_cideclare namespace cloudExtension {
3361847f8eSopenharmony_ci  /**
3461847f8eSopenharmony_ci   * Provides interface for managing cloud assets.
3561847f8eSopenharmony_ci   *
3661847f8eSopenharmony_ci   * @interface CloudAsset
3761847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
3861847f8eSopenharmony_ci   * @systemapi
3961847f8eSopenharmony_ci   * @since 11
4061847f8eSopenharmony_ci   */
4161847f8eSopenharmony_ci  export interface CloudAsset extends relationalStore.Asset {
4261847f8eSopenharmony_ci    /**
4361847f8eSopenharmony_ci     * Asset ID.
4461847f8eSopenharmony_ci     *
4561847f8eSopenharmony_ci     * @type { string }
4661847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
4761847f8eSopenharmony_ci     * @systemapi
4861847f8eSopenharmony_ci     * @since 11
4961847f8eSopenharmony_ci     */
5061847f8eSopenharmony_ci    assetId: string;
5161847f8eSopenharmony_ci
5261847f8eSopenharmony_ci    /**
5361847f8eSopenharmony_ci     * Asset hash value.
5461847f8eSopenharmony_ci     *
5561847f8eSopenharmony_ci     * @type { string }
5661847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
5761847f8eSopenharmony_ci     * @systemapi
5861847f8eSopenharmony_ci     * @since 11
5961847f8eSopenharmony_ci     */
6061847f8eSopenharmony_ci    hash: string;
6161847f8eSopenharmony_ci  }
6261847f8eSopenharmony_ci
6361847f8eSopenharmony_ci  /**
6461847f8eSopenharmony_ci   * Indicates cloud assets in one column.
6561847f8eSopenharmony_ci   *
6661847f8eSopenharmony_ci   * @typedef { Array<CloudAsset> } CloudAssets
6761847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
6861847f8eSopenharmony_ci   * @systemapi
6961847f8eSopenharmony_ci   * @since 11
7061847f8eSopenharmony_ci   */
7161847f8eSopenharmony_ci  type CloudAssets = Array<CloudAsset>;
7261847f8eSopenharmony_ci
7361847f8eSopenharmony_ci  /**
7461847f8eSopenharmony_ci   * Indicates possible cloud types.
7561847f8eSopenharmony_ci   *
7661847f8eSopenharmony_ci   * @typedef { null | number | string | boolean | Uint8Array | CloudAsset | CloudAssets } CloudType
7761847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
7861847f8eSopenharmony_ci   * @systemapi
7961847f8eSopenharmony_ci   * @since 11
8061847f8eSopenharmony_ci   */
8161847f8eSopenharmony_ci  type CloudType = null | number | string | boolean | Uint8Array | CloudAsset | CloudAssets;
8261847f8eSopenharmony_ci
8361847f8eSopenharmony_ci  /**
8461847f8eSopenharmony_ci   * Defines cloud information.
8561847f8eSopenharmony_ci   *
8661847f8eSopenharmony_ci   * @interface CloudInfo
8761847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
8861847f8eSopenharmony_ci   * @systemapi
8961847f8eSopenharmony_ci   * @since 11
9061847f8eSopenharmony_ci   */
9161847f8eSopenharmony_ci  export interface CloudInfo {
9261847f8eSopenharmony_ci    /**
9361847f8eSopenharmony_ci     * Cloud information. For details, see {@link ServiceInfo}.
9461847f8eSopenharmony_ci     *
9561847f8eSopenharmony_ci     * @type { ServiceInfo }
9661847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
9761847f8eSopenharmony_ci     * @systemapi
9861847f8eSopenharmony_ci     * @since 11
9961847f8eSopenharmony_ci     */
10061847f8eSopenharmony_ci    cloudInfo: ServiceInfo;
10161847f8eSopenharmony_ci
10261847f8eSopenharmony_ci    /**
10361847f8eSopenharmony_ci     * Defines brief application information.
10461847f8eSopenharmony_ci     *
10561847f8eSopenharmony_ci     * @type { Record<string, AppBriefInfo> }
10661847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
10761847f8eSopenharmony_ci     * @systemapi
10861847f8eSopenharmony_ci     * @since 11
10961847f8eSopenharmony_ci     */
11061847f8eSopenharmony_ci    apps: Record<string, AppBriefInfo>;
11161847f8eSopenharmony_ci  }
11261847f8eSopenharmony_ci
11361847f8eSopenharmony_ci  /**
11461847f8eSopenharmony_ci   * Defines cloud service information.
11561847f8eSopenharmony_ci   *
11661847f8eSopenharmony_ci   * @interface ServiceInfo
11761847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
11861847f8eSopenharmony_ci   * @systemapi
11961847f8eSopenharmony_ci   * @since 11
12061847f8eSopenharmony_ci   */
12161847f8eSopenharmony_ci  export interface ServiceInfo {
12261847f8eSopenharmony_ci    /**
12361847f8eSopenharmony_ci     * Whether cloud is enabled. The value <b>true</b> means cloud is enabled;
12461847f8eSopenharmony_ci     * the value <b>false</b> means the opposite.
12561847f8eSopenharmony_ci     *
12661847f8eSopenharmony_ci     * @type { boolean }
12761847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
12861847f8eSopenharmony_ci     * @systemapi
12961847f8eSopenharmony_ci     * @since 11
13061847f8eSopenharmony_ci     */
13161847f8eSopenharmony_ci    enableCloud: boolean;
13261847f8eSopenharmony_ci
13361847f8eSopenharmony_ci    /**
13461847f8eSopenharmony_ci     * ID of the cloud account generated by using SHA-256.
13561847f8eSopenharmony_ci     *
13661847f8eSopenharmony_ci     * @type { string }
13761847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
13861847f8eSopenharmony_ci     * @systemapi
13961847f8eSopenharmony_ci     * @since 11
14061847f8eSopenharmony_ci     */
14161847f8eSopenharmony_ci    id: string;
14261847f8eSopenharmony_ci
14361847f8eSopenharmony_ci    /**
14461847f8eSopenharmony_ci     * Total space (in KB) of the account on the server.
14561847f8eSopenharmony_ci     *
14661847f8eSopenharmony_ci     * @type { number }
14761847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
14861847f8eSopenharmony_ci     * @systemapi
14961847f8eSopenharmony_ci     * @since 11
15061847f8eSopenharmony_ci     */
15161847f8eSopenharmony_ci    totalSpace: number;
15261847f8eSopenharmony_ci
15361847f8eSopenharmony_ci    /**
15461847f8eSopenharmony_ci     * Available space (in KB) of the account on the server.
15561847f8eSopenharmony_ci     *
15661847f8eSopenharmony_ci     * @type { number }
15761847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
15861847f8eSopenharmony_ci     * @systemapi
15961847f8eSopenharmony_ci     * @since 11
16061847f8eSopenharmony_ci     */
16161847f8eSopenharmony_ci    remainingSpace: number;
16261847f8eSopenharmony_ci
16361847f8eSopenharmony_ci    /**
16461847f8eSopenharmony_ci     * Current user of the device.
16561847f8eSopenharmony_ci     *
16661847f8eSopenharmony_ci     * @type { number }
16761847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
16861847f8eSopenharmony_ci     * @systemapi
16961847f8eSopenharmony_ci     * @since 11
17061847f8eSopenharmony_ci     */
17161847f8eSopenharmony_ci    user: number;
17261847f8eSopenharmony_ci  }
17361847f8eSopenharmony_ci
17461847f8eSopenharmony_ci  /**
17561847f8eSopenharmony_ci   * Defines the brief application information.
17661847f8eSopenharmony_ci   *
17761847f8eSopenharmony_ci   * @interface AppBriefInfo
17861847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
17961847f8eSopenharmony_ci   * @systemapi
18061847f8eSopenharmony_ci   * @since 11
18161847f8eSopenharmony_ci   */
18261847f8eSopenharmony_ci  export interface AppBriefInfo {
18361847f8eSopenharmony_ci    /**
18461847f8eSopenharmony_ci     * ID of the application.
18561847f8eSopenharmony_ci     *
18661847f8eSopenharmony_ci     * @type { string }
18761847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
18861847f8eSopenharmony_ci     * @systemapi
18961847f8eSopenharmony_ci     * @since 11
19061847f8eSopenharmony_ci     */
19161847f8eSopenharmony_ci    appId: string;
19261847f8eSopenharmony_ci
19361847f8eSopenharmony_ci    /**
19461847f8eSopenharmony_ci     * Bundle name.
19561847f8eSopenharmony_ci     *
19661847f8eSopenharmony_ci     * @type { string }
19761847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
19861847f8eSopenharmony_ci     * @systemapi
19961847f8eSopenharmony_ci     * @since 11
20061847f8eSopenharmony_ci     */
20161847f8eSopenharmony_ci    bundleName: string;
20261847f8eSopenharmony_ci
20361847f8eSopenharmony_ci    /**
20461847f8eSopenharmony_ci     * Whether cloud is enabled for the application.
20561847f8eSopenharmony_ci     * The value <b>true</b> means the cloud is enabled; the <b>false</b> means
20661847f8eSopenharmony_ci     * the opposite.
20761847f8eSopenharmony_ci     *
20861847f8eSopenharmony_ci     * @type { boolean }
20961847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
21061847f8eSopenharmony_ci     * @systemapi
21161847f8eSopenharmony_ci     * @since 11
21261847f8eSopenharmony_ci     */
21361847f8eSopenharmony_ci    cloudSwitch: boolean;
21461847f8eSopenharmony_ci
21561847f8eSopenharmony_ci    /**
21661847f8eSopenharmony_ci     * Application instance ID.
21761847f8eSopenharmony_ci     *
21861847f8eSopenharmony_ci     * @type { number }
21961847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
22061847f8eSopenharmony_ci     * @systemapi
22161847f8eSopenharmony_ci     * @since 11
22261847f8eSopenharmony_ci     */
22361847f8eSopenharmony_ci    instanceId: number;
22461847f8eSopenharmony_ci  }
22561847f8eSopenharmony_ci
22661847f8eSopenharmony_ci  /**
22761847f8eSopenharmony_ci   * Enumerates the field types.
22861847f8eSopenharmony_ci   *
22961847f8eSopenharmony_ci   * @enum { number }
23061847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
23161847f8eSopenharmony_ci   * @systemapi
23261847f8eSopenharmony_ci   * @since 11
23361847f8eSopenharmony_ci   */
23461847f8eSopenharmony_ci  export enum FieldType {
23561847f8eSopenharmony_ci    /**
23661847f8eSopenharmony_ci     * NULL.
23761847f8eSopenharmony_ci     *
23861847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
23961847f8eSopenharmony_ci     * @systemapi
24061847f8eSopenharmony_ci     * @since 11
24161847f8eSopenharmony_ci     */
24261847f8eSopenharmony_ci    NULL = 0,
24361847f8eSopenharmony_ci
24461847f8eSopenharmony_ci    /**
24561847f8eSopenharmony_ci     * Number.
24661847f8eSopenharmony_ci     *
24761847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
24861847f8eSopenharmony_ci     * @systemapi
24961847f8eSopenharmony_ci     * @since 11
25061847f8eSopenharmony_ci     */
25161847f8eSopenharmony_ci    NUMBER = 1,
25261847f8eSopenharmony_ci
25361847f8eSopenharmony_ci    /**
25461847f8eSopenharmony_ci     * Real.
25561847f8eSopenharmony_ci     *
25661847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
25761847f8eSopenharmony_ci     * @systemapi
25861847f8eSopenharmony_ci     * @since 11
25961847f8eSopenharmony_ci     */
26061847f8eSopenharmony_ci    REAL = 2,
26161847f8eSopenharmony_ci
26261847f8eSopenharmony_ci    /**
26361847f8eSopenharmony_ci     * Text.
26461847f8eSopenharmony_ci     *
26561847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
26661847f8eSopenharmony_ci     * @systemapi
26761847f8eSopenharmony_ci     * @since 11
26861847f8eSopenharmony_ci     */
26961847f8eSopenharmony_ci    TEXT = 3,
27061847f8eSopenharmony_ci
27161847f8eSopenharmony_ci    /**
27261847f8eSopenharmony_ci     * Boolean.
27361847f8eSopenharmony_ci     *
27461847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
27561847f8eSopenharmony_ci     * @systemapi
27661847f8eSopenharmony_ci     * @since 11
27761847f8eSopenharmony_ci     */
27861847f8eSopenharmony_ci    BOOL = 4,
27961847f8eSopenharmony_ci
28061847f8eSopenharmony_ci    /**
28161847f8eSopenharmony_ci     * BLOB.
28261847f8eSopenharmony_ci     *
28361847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
28461847f8eSopenharmony_ci     * @systemapi
28561847f8eSopenharmony_ci     * @since 11
28661847f8eSopenharmony_ci     */
28761847f8eSopenharmony_ci    BLOB = 5,
28861847f8eSopenharmony_ci
28961847f8eSopenharmony_ci    /**
29061847f8eSopenharmony_ci     * Asset. For details, see {@link relationalStore.Asset}.
29161847f8eSopenharmony_ci     *
29261847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
29361847f8eSopenharmony_ci     * @systemapi
29461847f8eSopenharmony_ci     * @since 11
29561847f8eSopenharmony_ci     */
29661847f8eSopenharmony_ci    ASSET = 6,
29761847f8eSopenharmony_ci
29861847f8eSopenharmony_ci    /**
29961847f8eSopenharmony_ci     * Assets. For details, see {@link relationalStore.Assets}.
30061847f8eSopenharmony_ci     *
30161847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
30261847f8eSopenharmony_ci     * @systemapi
30361847f8eSopenharmony_ci     * @since 11
30461847f8eSopenharmony_ci     */
30561847f8eSopenharmony_ci    ASSETS = 7
30661847f8eSopenharmony_ci  }
30761847f8eSopenharmony_ci
30861847f8eSopenharmony_ci  /**
30961847f8eSopenharmony_ci   * Defines the fields.
31061847f8eSopenharmony_ci   *
31161847f8eSopenharmony_ci   * @interface Field
31261847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
31361847f8eSopenharmony_ci   * @systemapi
31461847f8eSopenharmony_ci   * @since 11
31561847f8eSopenharmony_ci   */
31661847f8eSopenharmony_ci  export interface Field {
31761847f8eSopenharmony_ci    /**
31861847f8eSopenharmony_ci     * Alias of the field on the server.
31961847f8eSopenharmony_ci     *
32061847f8eSopenharmony_ci     * @type { string }
32161847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
32261847f8eSopenharmony_ci     * @systemapi
32361847f8eSopenharmony_ci     * @since 11
32461847f8eSopenharmony_ci     */
32561847f8eSopenharmony_ci    alias: string;
32661847f8eSopenharmony_ci
32761847f8eSopenharmony_ci    /**
32861847f8eSopenharmony_ci     * Column name.
32961847f8eSopenharmony_ci     *
33061847f8eSopenharmony_ci     * @type { string }
33161847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
33261847f8eSopenharmony_ci     * @systemapi
33361847f8eSopenharmony_ci     * @since 11
33461847f8eSopenharmony_ci     */
33561847f8eSopenharmony_ci    colName: string;
33661847f8eSopenharmony_ci
33761847f8eSopenharmony_ci    /**
33861847f8eSopenharmony_ci     * Type of the field. For details, see {@link FieldType}.
33961847f8eSopenharmony_ci     *
34061847f8eSopenharmony_ci     * @type { FieldType }
34161847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
34261847f8eSopenharmony_ci     * @systemapi
34361847f8eSopenharmony_ci     * @since 11
34461847f8eSopenharmony_ci     */
34561847f8eSopenharmony_ci    type: FieldType;
34661847f8eSopenharmony_ci
34761847f8eSopenharmony_ci    /**
34861847f8eSopenharmony_ci     * Whether the current column holds the primary key.
34961847f8eSopenharmony_ci     *
35061847f8eSopenharmony_ci     * @type { boolean }
35161847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
35261847f8eSopenharmony_ci     * @systemapi
35361847f8eSopenharmony_ci     * @since 11
35461847f8eSopenharmony_ci     */
35561847f8eSopenharmony_ci    primary: boolean;
35661847f8eSopenharmony_ci
35761847f8eSopenharmony_ci    /**
35861847f8eSopenharmony_ci     * Whether the current column is nullable.
35961847f8eSopenharmony_ci     *
36061847f8eSopenharmony_ci     * @type { boolean }
36161847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
36261847f8eSopenharmony_ci     * @systemapi
36361847f8eSopenharmony_ci     * @since 11
36461847f8eSopenharmony_ci     */
36561847f8eSopenharmony_ci    nullable: boolean;
36661847f8eSopenharmony_ci  }
36761847f8eSopenharmony_ci
36861847f8eSopenharmony_ci  /**
36961847f8eSopenharmony_ci   * Defines a table.
37061847f8eSopenharmony_ci   *
37161847f8eSopenharmony_ci   * @interface Table
37261847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
37361847f8eSopenharmony_ci   * @systemapi
37461847f8eSopenharmony_ci   * @since 11
37561847f8eSopenharmony_ci   */
37661847f8eSopenharmony_ci  export interface Table {
37761847f8eSopenharmony_ci    /**
37861847f8eSopenharmony_ci     * Alias of the table on the server.
37961847f8eSopenharmony_ci     *
38061847f8eSopenharmony_ci     * @type { string }
38161847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
38261847f8eSopenharmony_ci     * @systemapi
38361847f8eSopenharmony_ci     * @since 11
38461847f8eSopenharmony_ci     */
38561847f8eSopenharmony_ci    alias: string;
38661847f8eSopenharmony_ci
38761847f8eSopenharmony_ci    /**
38861847f8eSopenharmony_ci     * Name of the table.
38961847f8eSopenharmony_ci     *
39061847f8eSopenharmony_ci     * @type { string }
39161847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
39261847f8eSopenharmony_ci     * @systemapi
39361847f8eSopenharmony_ci     * @since 11
39461847f8eSopenharmony_ci     */
39561847f8eSopenharmony_ci    name: string;
39661847f8eSopenharmony_ci
39761847f8eSopenharmony_ci    /**
39861847f8eSopenharmony_ci     * Fields in the table. For details, see {@link Field}.
39961847f8eSopenharmony_ci     *
40061847f8eSopenharmony_ci     * @type { Array<Field> }
40161847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
40261847f8eSopenharmony_ci     * @systemapi
40361847f8eSopenharmony_ci     * @since 11
40461847f8eSopenharmony_ci     */
40561847f8eSopenharmony_ci    fields: Array<Field>;
40661847f8eSopenharmony_ci  }
40761847f8eSopenharmony_ci
40861847f8eSopenharmony_ci  /**
40961847f8eSopenharmony_ci   * Defines a database.
41061847f8eSopenharmony_ci   *
41161847f8eSopenharmony_ci   * @interface Database
41261847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
41361847f8eSopenharmony_ci   * @systemapi
41461847f8eSopenharmony_ci   * @since 11
41561847f8eSopenharmony_ci   */
41661847f8eSopenharmony_ci  export interface Database {
41761847f8eSopenharmony_ci    /**
41861847f8eSopenharmony_ci     * Name of the database.
41961847f8eSopenharmony_ci     *
42061847f8eSopenharmony_ci     * @type { string }
42161847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
42261847f8eSopenharmony_ci     * @systemapi
42361847f8eSopenharmony_ci     * @since 11
42461847f8eSopenharmony_ci     */
42561847f8eSopenharmony_ci    name: string;
42661847f8eSopenharmony_ci
42761847f8eSopenharmony_ci    /**
42861847f8eSopenharmony_ci     * Alias of the database on the server.
42961847f8eSopenharmony_ci     *
43061847f8eSopenharmony_ci     * @type { string }
43161847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
43261847f8eSopenharmony_ci     * @systemapi
43361847f8eSopenharmony_ci     * @since 11
43461847f8eSopenharmony_ci     */
43561847f8eSopenharmony_ci    alias: string;
43661847f8eSopenharmony_ci
43761847f8eSopenharmony_ci    /**
43861847f8eSopenharmony_ci     * Tables in the database. For details, see {@link Table}.
43961847f8eSopenharmony_ci     *
44061847f8eSopenharmony_ci     * @type { Array<Table> }
44161847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
44261847f8eSopenharmony_ci     * @systemapi
44361847f8eSopenharmony_ci     * @since 11
44461847f8eSopenharmony_ci     */
44561847f8eSopenharmony_ci    tables: Array<Table>;
44661847f8eSopenharmony_ci  }
44761847f8eSopenharmony_ci
44861847f8eSopenharmony_ci  /**
44961847f8eSopenharmony_ci   * Defines the application schema.
45061847f8eSopenharmony_ci   *
45161847f8eSopenharmony_ci   * @interface AppSchema
45261847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
45361847f8eSopenharmony_ci   * @systemapi
45461847f8eSopenharmony_ci   * @since 11
45561847f8eSopenharmony_ci   */
45661847f8eSopenharmony_ci  export interface AppSchema {
45761847f8eSopenharmony_ci
45861847f8eSopenharmony_ci    /**
45961847f8eSopenharmony_ci     * Bundle name of the application.
46061847f8eSopenharmony_ci     *
46161847f8eSopenharmony_ci     * @type { string }
46261847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
46361847f8eSopenharmony_ci     * @systemapi
46461847f8eSopenharmony_ci     * @since 11
46561847f8eSopenharmony_ci     */
46661847f8eSopenharmony_ci    bundleName: string;
46761847f8eSopenharmony_ci
46861847f8eSopenharmony_ci    /**
46961847f8eSopenharmony_ci     * Schema version.
47061847f8eSopenharmony_ci     *
47161847f8eSopenharmony_ci     * @type { number }
47261847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
47361847f8eSopenharmony_ci     * @systemapi
47461847f8eSopenharmony_ci     * @since 11
47561847f8eSopenharmony_ci     */
47661847f8eSopenharmony_ci    version: number;
47761847f8eSopenharmony_ci
47861847f8eSopenharmony_ci    /**
47961847f8eSopenharmony_ci     * Databases {@link Database} of the application.
48061847f8eSopenharmony_ci     *
48161847f8eSopenharmony_ci     * @type { Array<Database> }
48261847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
48361847f8eSopenharmony_ci     * @systemapi
48461847f8eSopenharmony_ci     * @since 11
48561847f8eSopenharmony_ci     */
48661847f8eSopenharmony_ci    databases: Array<Database>;
48761847f8eSopenharmony_ci  }
48861847f8eSopenharmony_ci
48961847f8eSopenharmony_ci  /**
49061847f8eSopenharmony_ci   * Defines the data in the cloud.
49161847f8eSopenharmony_ci   *
49261847f8eSopenharmony_ci   * @interface CloudData
49361847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
49461847f8eSopenharmony_ci   * @systemapi
49561847f8eSopenharmony_ci   * @since 11
49661847f8eSopenharmony_ci   */
49761847f8eSopenharmony_ci  export interface CloudData {
49861847f8eSopenharmony_ci    /**
49961847f8eSopenharmony_ci     * Next cursor for query.
50061847f8eSopenharmony_ci     *
50161847f8eSopenharmony_ci     * @type { string }
50261847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
50361847f8eSopenharmony_ci     * @systemapi
50461847f8eSopenharmony_ci     * @since 11
50561847f8eSopenharmony_ci     */
50661847f8eSopenharmony_ci    nextCursor: string;
50761847f8eSopenharmony_ci
50861847f8eSopenharmony_ci    /**
50961847f8eSopenharmony_ci     * Whether the server has more data to query {@link CloudDB.query()}.
51061847f8eSopenharmony_ci     *
51161847f8eSopenharmony_ci     * @type { boolean }
51261847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
51361847f8eSopenharmony_ci     * @systemapi
51461847f8eSopenharmony_ci     * @since 11
51561847f8eSopenharmony_ci     */
51661847f8eSopenharmony_ci    hasMore: boolean;
51761847f8eSopenharmony_ci
51861847f8eSopenharmony_ci    /**
51961847f8eSopenharmony_ci     * Array of data queried, including the data values and extension
52061847f8eSopenharmony_ci     * values {@link ExtensionValue}.
52161847f8eSopenharmony_ci     *
52261847f8eSopenharmony_ci     * @type { Array<Record<string, CloudType>> }
52361847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
52461847f8eSopenharmony_ci     * @systemapi
52561847f8eSopenharmony_ci     * @since 11
52661847f8eSopenharmony_ci     */
52761847f8eSopenharmony_ci    values: Array<Record<string, CloudType>>;
52861847f8eSopenharmony_ci  }
52961847f8eSopenharmony_ci
53061847f8eSopenharmony_ci  /**
53161847f8eSopenharmony_ci   * Defines the subscription information.
53261847f8eSopenharmony_ci   *
53361847f8eSopenharmony_ci   * @interface SubscribeInfo
53461847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
53561847f8eSopenharmony_ci   * @systemapi
53661847f8eSopenharmony_ci   * @since 11
53761847f8eSopenharmony_ci   */
53861847f8eSopenharmony_ci  export interface SubscribeInfo {
53961847f8eSopenharmony_ci    /**
54061847f8eSopenharmony_ci     * Subscription expiration time, in milliseconds.
54161847f8eSopenharmony_ci     *
54261847f8eSopenharmony_ci     * @type { number }
54361847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
54461847f8eSopenharmony_ci     * @systemapi
54561847f8eSopenharmony_ci     * @since 11
54661847f8eSopenharmony_ci     */
54761847f8eSopenharmony_ci    expirationTime: number;
54861847f8eSopenharmony_ci
54961847f8eSopenharmony_ci    /**
55061847f8eSopenharmony_ci     * Data to be observed.
55161847f8eSopenharmony_ci     *
55261847f8eSopenharmony_ci     * @type { Record<string, Array<SubscribeId>> }
55361847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
55461847f8eSopenharmony_ci     * @systemapi
55561847f8eSopenharmony_ci     * @since 11
55661847f8eSopenharmony_ci     */
55761847f8eSopenharmony_ci    subscribe: Record<string, Array<SubscribeId>>;
55861847f8eSopenharmony_ci  }
55961847f8eSopenharmony_ci
56061847f8eSopenharmony_ci  /**
56161847f8eSopenharmony_ci   * Defines the subscription ID.
56261847f8eSopenharmony_ci   *
56361847f8eSopenharmony_ci   * @interface SubscribeId
56461847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
56561847f8eSopenharmony_ci   * @systemapi
56661847f8eSopenharmony_ci   * @since 11
56761847f8eSopenharmony_ci   */
56861847f8eSopenharmony_ci  export interface SubscribeId {
56961847f8eSopenharmony_ci    /**
57061847f8eSopenharmony_ci     * Alias of the database on the server.
57161847f8eSopenharmony_ci     *
57261847f8eSopenharmony_ci     * @type { string }
57361847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
57461847f8eSopenharmony_ci     * @systemapi
57561847f8eSopenharmony_ci     * @since 11
57661847f8eSopenharmony_ci     */
57761847f8eSopenharmony_ci    databaseAlias: string;
57861847f8eSopenharmony_ci
57961847f8eSopenharmony_ci    /**
58061847f8eSopenharmony_ci     * Subscription ID generated by {@link CloudService.subscribe()}.
58161847f8eSopenharmony_ci     *
58261847f8eSopenharmony_ci     * @type { string }
58361847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
58461847f8eSopenharmony_ci     * @systemapi
58561847f8eSopenharmony_ci     * @since 11
58661847f8eSopenharmony_ci     */
58761847f8eSopenharmony_ci    id: string;
58861847f8eSopenharmony_ci  }
58961847f8eSopenharmony_ci
59061847f8eSopenharmony_ci  /**
59161847f8eSopenharmony_ci   * Enumerates the operations that can be performed on the database.
59261847f8eSopenharmony_ci   *
59361847f8eSopenharmony_ci   * @enum { number }
59461847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
59561847f8eSopenharmony_ci   * @systemapi
59661847f8eSopenharmony_ci   * @since 11
59761847f8eSopenharmony_ci   */
59861847f8eSopenharmony_ci  export enum Flag {
59961847f8eSopenharmony_ci    /**
60061847f8eSopenharmony_ci     * Insert data.
60161847f8eSopenharmony_ci     *
60261847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
60361847f8eSopenharmony_ci     * @systemapi
60461847f8eSopenharmony_ci     * @since 11
60561847f8eSopenharmony_ci     */
60661847f8eSopenharmony_ci    INSERT = 0,
60761847f8eSopenharmony_ci
60861847f8eSopenharmony_ci    /**
60961847f8eSopenharmony_ci     * Update data.
61061847f8eSopenharmony_ci     *
61161847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
61261847f8eSopenharmony_ci     * @systemapi
61361847f8eSopenharmony_ci     * @since 11
61461847f8eSopenharmony_ci     */
61561847f8eSopenharmony_ci    UPDATE = 1,
61661847f8eSopenharmony_ci
61761847f8eSopenharmony_ci    /**
61861847f8eSopenharmony_ci     * Delete data.
61961847f8eSopenharmony_ci     *
62061847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
62161847f8eSopenharmony_ci     * @systemapi
62261847f8eSopenharmony_ci     * @since 11
62361847f8eSopenharmony_ci     */
62461847f8eSopenharmony_ci    DELETE = 2
62561847f8eSopenharmony_ci  }
62661847f8eSopenharmony_ci
62761847f8eSopenharmony_ci  /**
62861847f8eSopenharmony_ci   * Defines the extension values.
62961847f8eSopenharmony_ci   *
63061847f8eSopenharmony_ci   * @interface ExtensionValue
63161847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
63261847f8eSopenharmony_ci   * @systemapi
63361847f8eSopenharmony_ci   * @since 11
63461847f8eSopenharmony_ci   */
63561847f8eSopenharmony_ci  export interface ExtensionValue {
63661847f8eSopenharmony_ci    /**
63761847f8eSopenharmony_ci     * ID generated by {@link CloudDB.insert()}.
63861847f8eSopenharmony_ci     * An ID is generated for each row when data is first inserted to the cloud.
63961847f8eSopenharmony_ci     * The ID must be unique for each table.
64061847f8eSopenharmony_ci     *
64161847f8eSopenharmony_ci     * @type { string }
64261847f8eSopenharmony_ci     * @readonly
64361847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
64461847f8eSopenharmony_ci     * @systemapi
64561847f8eSopenharmony_ci     * @since 11
64661847f8eSopenharmony_ci     */
64761847f8eSopenharmony_ci    readonly id: string;
64861847f8eSopenharmony_ci
64961847f8eSopenharmony_ci    /**
65061847f8eSopenharmony_ci     * Time when the row data was created.
65161847f8eSopenharmony_ci     *
65261847f8eSopenharmony_ci     * @type { number }
65361847f8eSopenharmony_ci     * @readonly
65461847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
65561847f8eSopenharmony_ci     * @systemapi
65661847f8eSopenharmony_ci     * @since 11
65761847f8eSopenharmony_ci     */
65861847f8eSopenharmony_ci    readonly createTime: number;
65961847f8eSopenharmony_ci
66061847f8eSopenharmony_ci    /**
66161847f8eSopenharmony_ci     * Time when the row data was last modified.
66261847f8eSopenharmony_ci     *
66361847f8eSopenharmony_ci     * @type { number }
66461847f8eSopenharmony_ci     * @readonly
66561847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
66661847f8eSopenharmony_ci     * @systemapi
66761847f8eSopenharmony_ci     * @since 11
66861847f8eSopenharmony_ci     */
66961847f8eSopenharmony_ci    readonly modifyTime: number;
67061847f8eSopenharmony_ci
67161847f8eSopenharmony_ci    /**
67261847f8eSopenharmony_ci     * Database operation.
67361847f8eSopenharmony_ci     *
67461847f8eSopenharmony_ci     * @type { Flag }
67561847f8eSopenharmony_ci     * @readonly
67661847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
67761847f8eSopenharmony_ci     * @systemapi
67861847f8eSopenharmony_ci     * @since 11
67961847f8eSopenharmony_ci     */
68061847f8eSopenharmony_ci    readonly operation: Flag;
68161847f8eSopenharmony_ci  }
68261847f8eSopenharmony_ci
68361847f8eSopenharmony_ci  /**
68461847f8eSopenharmony_ci   * Defines the lock information.
68561847f8eSopenharmony_ci   *
68661847f8eSopenharmony_ci   * @interface LockInfo
68761847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
68861847f8eSopenharmony_ci   * @systemapi
68961847f8eSopenharmony_ci   * @since 11
69061847f8eSopenharmony_ci   */
69161847f8eSopenharmony_ci  export interface LockInfo {
69261847f8eSopenharmony_ci    /**
69361847f8eSopenharmony_ci     * Duration for which the cloud database is locked, in seconds.
69461847f8eSopenharmony_ci     *
69561847f8eSopenharmony_ci     * @type { number }
69661847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
69761847f8eSopenharmony_ci     * @systemapi
69861847f8eSopenharmony_ci     * @since 11
69961847f8eSopenharmony_ci     */
70061847f8eSopenharmony_ci    interval: number;
70161847f8eSopenharmony_ci
70261847f8eSopenharmony_ci    /**
70361847f8eSopenharmony_ci     * Lock ID for locking the cloud database.
70461847f8eSopenharmony_ci     *
70561847f8eSopenharmony_ci     * @type { number }
70661847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
70761847f8eSopenharmony_ci     * @systemapi
70861847f8eSopenharmony_ci     * @since 11
70961847f8eSopenharmony_ci     */
71061847f8eSopenharmony_ci    lockId: number;
71161847f8eSopenharmony_ci  }
71261847f8eSopenharmony_ci
71361847f8eSopenharmony_ci  /**
71461847f8eSopenharmony_ci   * Enumerates the error codes.
71561847f8eSopenharmony_ci   *
71661847f8eSopenharmony_ci   * @enum { number }
71761847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
71861847f8eSopenharmony_ci   * @systemapi
71961847f8eSopenharmony_ci   * @since 11
72061847f8eSopenharmony_ci   */
72161847f8eSopenharmony_ci  export enum ErrorCode {
72261847f8eSopenharmony_ci    /**
72361847f8eSopenharmony_ci     * Successful.
72461847f8eSopenharmony_ci     *
72561847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
72661847f8eSopenharmony_ci     * @systemapi
72761847f8eSopenharmony_ci     * @since 11
72861847f8eSopenharmony_ci     */
72961847f8eSopenharmony_ci    SUCCESS = 0,
73061847f8eSopenharmony_ci
73161847f8eSopenharmony_ci    /**
73261847f8eSopenharmony_ci     * Unknown error.
73361847f8eSopenharmony_ci     *
73461847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
73561847f8eSopenharmony_ci     * @systemapi
73661847f8eSopenharmony_ci     * @since 11
73761847f8eSopenharmony_ci     */
73861847f8eSopenharmony_ci    UNKNOWN_ERROR = 1,
73961847f8eSopenharmony_ci
74061847f8eSopenharmony_ci    /**
74161847f8eSopenharmony_ci     * Network error.
74261847f8eSopenharmony_ci     *
74361847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
74461847f8eSopenharmony_ci     * @systemapi
74561847f8eSopenharmony_ci     * @since 11
74661847f8eSopenharmony_ci     */
74761847f8eSopenharmony_ci    NETWORK_ERROR = 2,
74861847f8eSopenharmony_ci
74961847f8eSopenharmony_ci    /**
75061847f8eSopenharmony_ci     * Cloud is disabled.
75161847f8eSopenharmony_ci     *
75261847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
75361847f8eSopenharmony_ci     * @systemapi
75461847f8eSopenharmony_ci     * @since 11
75561847f8eSopenharmony_ci     */
75661847f8eSopenharmony_ci    CLOUD_DISABLED = 3,
75761847f8eSopenharmony_ci
75861847f8eSopenharmony_ci    /**
75961847f8eSopenharmony_ci     * The cloud database is locked by others.
76061847f8eSopenharmony_ci     *
76161847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
76261847f8eSopenharmony_ci     * @systemapi
76361847f8eSopenharmony_ci     * @since 11
76461847f8eSopenharmony_ci     */
76561847f8eSopenharmony_ci    LOCKED_BY_OTHERS = 4,
76661847f8eSopenharmony_ci
76761847f8eSopenharmony_ci    /**
76861847f8eSopenharmony_ci     * The number of records exceeds the limit.
76961847f8eSopenharmony_ci     *
77061847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
77161847f8eSopenharmony_ci     * @systemapi
77261847f8eSopenharmony_ci     * @since 11
77361847f8eSopenharmony_ci     */
77461847f8eSopenharmony_ci    RECORD_LIMIT_EXCEEDED = 5,
77561847f8eSopenharmony_ci
77661847f8eSopenharmony_ci    /**
77761847f8eSopenharmony_ci     * The cloud has no space for the asset.
77861847f8eSopenharmony_ci     *
77961847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
78061847f8eSopenharmony_ci     * @systemapi
78161847f8eSopenharmony_ci     * @since 11
78261847f8eSopenharmony_ci     */
78361847f8eSopenharmony_ci    NO_SPACE_FOR_ASSET = 6
78461847f8eSopenharmony_ci  }
78561847f8eSopenharmony_ci
78661847f8eSopenharmony_ci  /**
78761847f8eSopenharmony_ci   * Defines the result.
78861847f8eSopenharmony_ci   *
78961847f8eSopenharmony_ci   * @interface Result
79061847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
79161847f8eSopenharmony_ci   * @systemapi
79261847f8eSopenharmony_ci   * @since 11
79361847f8eSopenharmony_ci   */
79461847f8eSopenharmony_ci  export interface Result<T> {
79561847f8eSopenharmony_ci    /**
79661847f8eSopenharmony_ci     * Error code.
79761847f8eSopenharmony_ci     *
79861847f8eSopenharmony_ci     * @type { number }
79961847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
80061847f8eSopenharmony_ci     * @systemapi
80161847f8eSopenharmony_ci     * @since 11
80261847f8eSopenharmony_ci     */
80361847f8eSopenharmony_ci    code: number;
80461847f8eSopenharmony_ci
80561847f8eSopenharmony_ci    /**
80661847f8eSopenharmony_ci     * Error code description.
80761847f8eSopenharmony_ci     *
80861847f8eSopenharmony_ci     * @type { ?string }
80961847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
81061847f8eSopenharmony_ci     * @systemapi
81161847f8eSopenharmony_ci     * @since 11
81261847f8eSopenharmony_ci     */
81361847f8eSopenharmony_ci    description?: string;
81461847f8eSopenharmony_ci
81561847f8eSopenharmony_ci    /**
81661847f8eSopenharmony_ci     * Result value.
81761847f8eSopenharmony_ci     *
81861847f8eSopenharmony_ci     * @type { ?T }
81961847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
82061847f8eSopenharmony_ci     * @systemapi
82161847f8eSopenharmony_ci     * @since 11
82261847f8eSopenharmony_ci     */
82361847f8eSopenharmony_ci    value?: T;
82461847f8eSopenharmony_ci  }
82561847f8eSopenharmony_ci
82661847f8eSopenharmony_ci  /**
82761847f8eSopenharmony_ci   * Creates a share service stub with the specified instance.
82861847f8eSopenharmony_ci   *
82961847f8eSopenharmony_ci   * @param { ShareCenter } instance - Indicates the <b>ShareCenter</b> instance.
83061847f8eSopenharmony_ci   * @returns { Promise<rpc.RemoteObject> } Returns remote object.
83161847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
83261847f8eSopenharmony_ci   * @systemapi
83361847f8eSopenharmony_ci   * @since 11
83461847f8eSopenharmony_ci   */
83561847f8eSopenharmony_ci  function createShareServiceStub(instance: ShareCenter): Promise<rpc.RemoteObject>;
83661847f8eSopenharmony_ci
83761847f8eSopenharmony_ci  /**
83861847f8eSopenharmony_ci   * Creates a cloud service stub with the specified instance.
83961847f8eSopenharmony_ci   *
84061847f8eSopenharmony_ci   * @param { CloudService } instance - Indicates the <b>CloudService</b> instance.
84161847f8eSopenharmony_ci   * @returns { Promise<rpc.RemoteObject> } Returns the remote object.
84261847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
84361847f8eSopenharmony_ci   * @systemapi
84461847f8eSopenharmony_ci   * @since 11
84561847f8eSopenharmony_ci   */
84661847f8eSopenharmony_ci  function createCloudServiceStub(instance: CloudService): Promise<rpc.RemoteObject>;
84761847f8eSopenharmony_ci
84861847f8eSopenharmony_ci  /**
84961847f8eSopenharmony_ci   * Creates a cloud database stub with the specified instance.
85061847f8eSopenharmony_ci   *
85161847f8eSopenharmony_ci   * @param { CloudDB } instance - Indicates the <b>CloudDB</b> instance.
85261847f8eSopenharmony_ci   * @returns { Promise<rpc.RemoteObject> } Returns the remote object.
85361847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
85461847f8eSopenharmony_ci   * @systemapi
85561847f8eSopenharmony_ci   * @since 11
85661847f8eSopenharmony_ci   */
85761847f8eSopenharmony_ci  function createCloudDBStub(instance: CloudDB): Promise<rpc.RemoteObject>;
85861847f8eSopenharmony_ci
85961847f8eSopenharmony_ci  /**
86061847f8eSopenharmony_ci   * Creates an asset loader stub with the specified instance.
86161847f8eSopenharmony_ci   *
86261847f8eSopenharmony_ci   * @param { AssetLoader } instance - Indicates the <b>AssetLoader</b> instance.
86361847f8eSopenharmony_ci   * @returns { Promise<rpc.RemoteObject> } Returns remote object.
86461847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
86561847f8eSopenharmony_ci   * @systemapi
86661847f8eSopenharmony_ci   * @since 11
86761847f8eSopenharmony_ci   */
86861847f8eSopenharmony_ci  function createAssetLoaderStub(instance: AssetLoader): Promise<rpc.RemoteObject>;
86961847f8eSopenharmony_ci
87061847f8eSopenharmony_ci  /**
87161847f8eSopenharmony_ci   * Provides interfaces for the operations on the cloud database.
87261847f8eSopenharmony_ci   *
87361847f8eSopenharmony_ci   * @interface CloudDB
87461847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
87561847f8eSopenharmony_ci   * @systemapi
87661847f8eSopenharmony_ci   * @since 11
87761847f8eSopenharmony_ci   */
87861847f8eSopenharmony_ci  export interface CloudDB {
87961847f8eSopenharmony_ci    /**
88061847f8eSopenharmony_ci     * Generates the IDs of the rows of data to be inserted to the cloud.
88161847f8eSopenharmony_ci     * The IDs must be unique for each table.
88261847f8eSopenharmony_ci     *
88361847f8eSopenharmony_ci     * @param { number } count - Indicates the number of IDs to generate.
88461847f8eSopenharmony_ci     * @returns { Promise<Result<Array<string>>> } Returns the IDs generated.
88561847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
88661847f8eSopenharmony_ci     * @systemapi
88761847f8eSopenharmony_ci     * @since 11
88861847f8eSopenharmony_ci     */
88961847f8eSopenharmony_ci    generateId(count: number): Promise<Result<Array<string>>>;
89061847f8eSopenharmony_ci
89161847f8eSopenharmony_ci    /**
89261847f8eSopenharmony_ci     * Inserts data to the cloud.
89361847f8eSopenharmony_ci     *
89461847f8eSopenharmony_ci     * @param { string } table - Indicates the table name.
89561847f8eSopenharmony_ci     * @param { Array<Record<string, CloudType>> } values - Indicates the data to insert.
89661847f8eSopenharmony_ci     * @param { Array<Record<string, CloudType>> } extensions - Indicates the extension
89761847f8eSopenharmony_ci     * values {@link ExtensionValue}.
89861847f8eSopenharmony_ci     * @returns { Promise<Array<Result<Record<string, CloudType>>>> } Returns the insert result.
89961847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
90061847f8eSopenharmony_ci     * @systemapi
90161847f8eSopenharmony_ci     * @since 11
90261847f8eSopenharmony_ci     */
90361847f8eSopenharmony_ci    insert(
90461847f8eSopenharmony_ci      table: string,
90561847f8eSopenharmony_ci      values: Array<Record<string, CloudType>>,
90661847f8eSopenharmony_ci      extensions: Array<Record<string, CloudType>>
90761847f8eSopenharmony_ci    ): Promise<Array<Result<Record<string, CloudType>>>>;
90861847f8eSopenharmony_ci
90961847f8eSopenharmony_ci    /**
91061847f8eSopenharmony_ci     * Updates data in the cloud.
91161847f8eSopenharmony_ci     *
91261847f8eSopenharmony_ci     * @param { string } table - Indicates the table name.
91361847f8eSopenharmony_ci     * @param { Array<Record<string, CloudType>> } values - Indicates the new data.
91461847f8eSopenharmony_ci     * @param { Array<Record<string, CloudType>> } extensions - Indicates the extension
91561847f8eSopenharmony_ci     * values {@link ExtensionValue}.
91661847f8eSopenharmony_ci     * @returns { Promise<Array<Result<Record<string, CloudType>>>> } Returns the update result.
91761847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
91861847f8eSopenharmony_ci     * @systemapi
91961847f8eSopenharmony_ci     * @since 11
92061847f8eSopenharmony_ci     */
92161847f8eSopenharmony_ci    update(
92261847f8eSopenharmony_ci      table: string,
92361847f8eSopenharmony_ci      values: Array<Record<string, CloudType>>,
92461847f8eSopenharmony_ci      extensions: Array<Record<string, CloudType>>
92561847f8eSopenharmony_ci    ): Promise<Array<Result<Record<string, CloudType>>>>;
92661847f8eSopenharmony_ci
92761847f8eSopenharmony_ci    /**
92861847f8eSopenharmony_ci     * Deletes data.
92961847f8eSopenharmony_ci     *
93061847f8eSopenharmony_ci     * @param { string } table - Indicates the table name.
93161847f8eSopenharmony_ci     * @param { Array<Record<string, CloudType>> } extensions - Indicates the extension
93261847f8eSopenharmony_ci     * values {@link ExtensionValue}.
93361847f8eSopenharmony_ci     * @returns { Promise<Array<Result<Record<string, CloudType>>>> } Returns the delete result.
93461847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
93561847f8eSopenharmony_ci     * @systemapi
93661847f8eSopenharmony_ci     * @since 11
93761847f8eSopenharmony_ci     */
93861847f8eSopenharmony_ci    delete(
93961847f8eSopenharmony_ci      table: string,
94061847f8eSopenharmony_ci      extensions: Array<Record<string, CloudType>>
94161847f8eSopenharmony_ci    ): Promise<Array<Result<Record<string, CloudType>>>>;
94261847f8eSopenharmony_ci
94361847f8eSopenharmony_ci    /**
94461847f8eSopenharmony_ci     * Queries data.
94561847f8eSopenharmony_ci     *
94661847f8eSopenharmony_ci     * @param { string } table - Indicates the table name.
94761847f8eSopenharmony_ci     * @param { Array<string> } fields - Indicates the columns to query.
94861847f8eSopenharmony_ci     * @param { number } queryCount - Indicates the number of data records
94961847f8eSopenharmony_ci     * to query.
95061847f8eSopenharmony_ci     * @param { string } queryCursor - Indicates the cursor.
95161847f8eSopenharmony_ci     * @returns { Promise<Result<CloudData>> } Returns the query result.
95261847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
95361847f8eSopenharmony_ci     * @systemapi
95461847f8eSopenharmony_ci     * @since 11
95561847f8eSopenharmony_ci     */
95661847f8eSopenharmony_ci    query(table: string, fields: Array<string>, queryCount: number, queryCursor: string): Promise<Result<CloudData>>;
95761847f8eSopenharmony_ci
95861847f8eSopenharmony_ci    /**
95961847f8eSopenharmony_ci     * Locks the cloud database.
96061847f8eSopenharmony_ci     * The cloud database will be unlocked when the lock interval has expired.
96161847f8eSopenharmony_ci     * When the cloud database is locked, other devices cannot synchronize data
96261847f8eSopenharmony_ci     * with the cloud.
96361847f8eSopenharmony_ci     *
96461847f8eSopenharmony_ci     * @returns { Promise<Result<LockInfo>> } Returns the locked information.
96561847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
96661847f8eSopenharmony_ci     * @systemapi
96761847f8eSopenharmony_ci     * @since 11
96861847f8eSopenharmony_ci     */
96961847f8eSopenharmony_ci    lock(): Promise<Result<LockInfo>>;
97061847f8eSopenharmony_ci
97161847f8eSopenharmony_ci    /**
97261847f8eSopenharmony_ci     * Uses the heartbeat to extend the lock interval if it is not enough.
97361847f8eSopenharmony_ci     *
97461847f8eSopenharmony_ci     * @param { number } lockId - Indicates the lock ID of the heartbeat.
97561847f8eSopenharmony_ci     * @returns { Promise<Result<LockInfo>> } Returns the time.
97661847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
97761847f8eSopenharmony_ci     * @systemapi
97861847f8eSopenharmony_ci     * @since 11
97961847f8eSopenharmony_ci     */
98061847f8eSopenharmony_ci    heartbeat(lockId: number): Promise<Result<LockInfo>>;
98161847f8eSopenharmony_ci
98261847f8eSopenharmony_ci    /**
98361847f8eSopenharmony_ci     * Unlocks the cloud database.
98461847f8eSopenharmony_ci     *
98561847f8eSopenharmony_ci     * @param { number } lockId - Indicates the lock ID.
98661847f8eSopenharmony_ci     * @returns { Promise<Result<boolean>> } Returns the unlock result.
98761847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
98861847f8eSopenharmony_ci     * @systemapi
98961847f8eSopenharmony_ci     * @since 11
99061847f8eSopenharmony_ci     */
99161847f8eSopenharmony_ci    unlock(lockId: number): Promise<Result<boolean>>;
99261847f8eSopenharmony_ci  }
99361847f8eSopenharmony_ci
99461847f8eSopenharmony_ci  /**
99561847f8eSopenharmony_ci   * Provides interfaces for implementing the asset loader.
99661847f8eSopenharmony_ci   *
99761847f8eSopenharmony_ci   * @interface AssetLoader
99861847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
99961847f8eSopenharmony_ci   * @systemapi
100061847f8eSopenharmony_ci   * @since 11
100161847f8eSopenharmony_ci   */
100261847f8eSopenharmony_ci  export interface AssetLoader {
100361847f8eSopenharmony_ci    /**
100461847f8eSopenharmony_ci     * Downloads assets.
100561847f8eSopenharmony_ci     *
100661847f8eSopenharmony_ci     * @param { string } table - Indicates the name of the table.
100761847f8eSopenharmony_ci     * @param { string } gid - Indicates the GID.
100861847f8eSopenharmony_ci     * @param { string } prefix - Indicates the prefix information.
100961847f8eSopenharmony_ci     * @param { Array<CloudAsset> } assets - Indicates the assets to download.
101061847f8eSopenharmony_ci     * @returns { Promise<Array<Result<CloudAsset>>> } Returns the asset download result.
101161847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
101261847f8eSopenharmony_ci     * @systemapi
101361847f8eSopenharmony_ci     * @since 11
101461847f8eSopenharmony_ci     */
101561847f8eSopenharmony_ci    download(table: string, gid: string, prefix: string, assets: Array<CloudAsset>): Promise<Array<Result<CloudAsset>>>;
101661847f8eSopenharmony_ci
101761847f8eSopenharmony_ci    /**
101861847f8eSopenharmony_ci     * Uploads assets.
101961847f8eSopenharmony_ci     *
102061847f8eSopenharmony_ci     * @param { string } table - Indicates the name of the table.
102161847f8eSopenharmony_ci     * @param { string } gid - Indicates the GID.
102261847f8eSopenharmony_ci     * @param { Array<CloudAsset> } assets - Indicates the assets to upload.
102361847f8eSopenharmony_ci     * @returns { Promise<Array<Result<CloudAsset>>> } Returns the asset upload result.
102461847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
102561847f8eSopenharmony_ci     * @systemapi
102661847f8eSopenharmony_ci     * @since 11
102761847f8eSopenharmony_ci     */
102861847f8eSopenharmony_ci    upload(table: string, gid: string, assets: Array<CloudAsset>): Promise<Array<Result<CloudAsset>>>;
102961847f8eSopenharmony_ci  }
103061847f8eSopenharmony_ci
103161847f8eSopenharmony_ci  /**
103261847f8eSopenharmony_ci   * Provides interfaces for implementing ShareCenter.
103361847f8eSopenharmony_ci   *
103461847f8eSopenharmony_ci   * @interface ShareCenter
103561847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
103661847f8eSopenharmony_ci   * @systemapi
103761847f8eSopenharmony_ci   * @since 11
103861847f8eSopenharmony_ci   */
103961847f8eSopenharmony_ci  export interface ShareCenter {
104061847f8eSopenharmony_ci    /**
104161847f8eSopenharmony_ci     * Shares data with specific participants.
104261847f8eSopenharmony_ci     *
104361847f8eSopenharmony_ci     * @param { number } userId - Indicates the user ID.
104461847f8eSopenharmony_ci     * @param { string } bundleName - Indicates the bundle name.
104561847f8eSopenharmony_ci     * @param { string } sharingResource - Indicates the sharing resource.
104661847f8eSopenharmony_ci     * @param { Array<cloudData.sharing.Participant> } participants - Indicates the participant.
104761847f8eSopenharmony_ci     * @returns { Promise<Result<Array<Result<cloudData.sharing.Participant>>>> } Returns the sharing result.
104861847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
104961847f8eSopenharmony_ci     * @systemapi
105061847f8eSopenharmony_ci     * @since 11
105161847f8eSopenharmony_ci     */
105261847f8eSopenharmony_ci    share(
105361847f8eSopenharmony_ci      userId: number,
105461847f8eSopenharmony_ci      bundleName: string,
105561847f8eSopenharmony_ci      sharingResource: string,
105661847f8eSopenharmony_ci      participants: Array<cloudData.sharing.Participant>
105761847f8eSopenharmony_ci    ): Promise<Result<Array<Result<cloudData.sharing.Participant>>>>;
105861847f8eSopenharmony_ci
105961847f8eSopenharmony_ci    /**
106061847f8eSopenharmony_ci     * UnShares data with specific participants.
106161847f8eSopenharmony_ci     *
106261847f8eSopenharmony_ci     * @param { number } userId - Indicates the user ID.
106361847f8eSopenharmony_ci     * @param { string } bundleName - Indicates the bundle name.
106461847f8eSopenharmony_ci     * @param { string } sharingResource - Indicates the sharing resource.
106561847f8eSopenharmony_ci     * @param { Array<cloudData.sharing.Participant> } participants - Indicates the participant.
106661847f8eSopenharmony_ci     * @returns { Promise<Result<Array<Result<cloudData.sharing.Participant>>>> } Returns the sharing result.
106761847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
106861847f8eSopenharmony_ci     * @systemapi
106961847f8eSopenharmony_ci     * @since 11
107061847f8eSopenharmony_ci     */
107161847f8eSopenharmony_ci    unshare(
107261847f8eSopenharmony_ci      userId: number,
107361847f8eSopenharmony_ci      bundleName: string,
107461847f8eSopenharmony_ci      sharingResource: string,
107561847f8eSopenharmony_ci      participants: Array<cloudData.sharing.Participant>
107661847f8eSopenharmony_ci    ): Promise<Result<Array<Result<cloudData.sharing.Participant>>>>;
107761847f8eSopenharmony_ci
107861847f8eSopenharmony_ci    /**
107961847f8eSopenharmony_ci     * Exits the sharing.
108061847f8eSopenharmony_ci     *
108161847f8eSopenharmony_ci     * @param { number } userId - Indicates the user ID.
108261847f8eSopenharmony_ci     * @param { string } bundleName - Indicates the bundle name.
108361847f8eSopenharmony_ci     * @param { string } sharingResource - Indicates the sharing resource.
108461847f8eSopenharmony_ci     * @returns { Promise<Result<void>> } Returns the exit result.
108561847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
108661847f8eSopenharmony_ci     * @systemapi
108761847f8eSopenharmony_ci     * @since 11
108861847f8eSopenharmony_ci     */
108961847f8eSopenharmony_ci    exit(userId: number, bundleName: string, sharingResource: string): Promise<Result<void>>;
109061847f8eSopenharmony_ci
109161847f8eSopenharmony_ci    /**
109261847f8eSopenharmony_ci     * Changes privilege of the specific participants.
109361847f8eSopenharmony_ci     *
109461847f8eSopenharmony_ci     * @param { number } userId - Indicates the user ID.
109561847f8eSopenharmony_ci     * @param { string } bundleName - Indicates the bundle name.
109661847f8eSopenharmony_ci     * @param { string } sharingResource - Indicates the sharing resource.
109761847f8eSopenharmony_ci     * @param { Array<cloudData.sharing.Participant> } participants - Indicates the participant.
109861847f8eSopenharmony_ci     * @returns { Promise<Result<Array<Result<cloudData.sharing.Participant>>>> } Returns the changing result.
109961847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
110061847f8eSopenharmony_ci     * @systemapi
110161847f8eSopenharmony_ci     * @since 11
110261847f8eSopenharmony_ci     */
110361847f8eSopenharmony_ci    changePrivilege(
110461847f8eSopenharmony_ci      userId: number,
110561847f8eSopenharmony_ci      bundleName: string,
110661847f8eSopenharmony_ci      sharingResource: string,
110761847f8eSopenharmony_ci      participants: Array<cloudData.sharing.Participant>
110861847f8eSopenharmony_ci    ): Promise<Result<Array<Result<cloudData.sharing.Participant>>>>;
110961847f8eSopenharmony_ci
111061847f8eSopenharmony_ci    /**
111161847f8eSopenharmony_ci     * Queries participants of the specific sharing resource.
111261847f8eSopenharmony_ci     *
111361847f8eSopenharmony_ci     * @param { number } userId - Indicates the user ID.
111461847f8eSopenharmony_ci     * @param { string } bundleName - Indicates the bundle name.
111561847f8eSopenharmony_ci     * @param { string } sharingResource - Indicates the sharing resource.
111661847f8eSopenharmony_ci     * @returns { Promise<Result<Array<cloudData.sharing.Participant>>> } Returns the query result.
111761847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
111861847f8eSopenharmony_ci     * @systemapi
111961847f8eSopenharmony_ci     * @since 11
112061847f8eSopenharmony_ci     */
112161847f8eSopenharmony_ci    queryParticipants(
112261847f8eSopenharmony_ci      userId: number,
112361847f8eSopenharmony_ci      bundleName: string,
112461847f8eSopenharmony_ci      sharingResource: string
112561847f8eSopenharmony_ci    ): Promise<Result<Array<cloudData.sharing.Participant>>>;
112661847f8eSopenharmony_ci
112761847f8eSopenharmony_ci    /**
112861847f8eSopenharmony_ci     * Queries participants based on the specified invitation code.
112961847f8eSopenharmony_ci     *
113061847f8eSopenharmony_ci     * @param { number } userId - Indicates the user ID.
113161847f8eSopenharmony_ci     * @param { string } bundleName - Indicates the bundle name.
113261847f8eSopenharmony_ci     * @param { string } invitationCode - Indicates the invitation code.
113361847f8eSopenharmony_ci     * @returns { Promise<Result<Array<cloudData.sharing.Participant>>> } Returns the query result.
113461847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
113561847f8eSopenharmony_ci     * @systemapi
113661847f8eSopenharmony_ci     * @since 11
113761847f8eSopenharmony_ci     */
113861847f8eSopenharmony_ci    queryParticipantsByInvitation(
113961847f8eSopenharmony_ci      userId: number,
114061847f8eSopenharmony_ci      bundleName: string,
114161847f8eSopenharmony_ci      invitationCode: string
114261847f8eSopenharmony_ci    ): Promise<Result<Array<cloudData.sharing.Participant>>>;
114361847f8eSopenharmony_ci
114461847f8eSopenharmony_ci    /**
114561847f8eSopenharmony_ci     * Confirms invitation.
114661847f8eSopenharmony_ci     *
114761847f8eSopenharmony_ci     * @param { number } userId - Indicates the user ID.
114861847f8eSopenharmony_ci     * @param { string } bundleName - Indicates the bundle name.
114961847f8eSopenharmony_ci     * @param { string } invitationCode - Indicates the invitation code.
115061847f8eSopenharmony_ci     * @param { cloudData.sharing.State } state - Indicates the state.
115161847f8eSopenharmony_ci     * @returns { Promise<Result<string>> } Returns the sharing resource.
115261847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
115361847f8eSopenharmony_ci     * @systemapi
115461847f8eSopenharmony_ci     * @since 11
115561847f8eSopenharmony_ci     */
115661847f8eSopenharmony_ci    confirmInvitation(
115761847f8eSopenharmony_ci      userId: number,
115861847f8eSopenharmony_ci      bundleName: string,
115961847f8eSopenharmony_ci      invitationCode: string,
116061847f8eSopenharmony_ci      state: cloudData.sharing.State
116161847f8eSopenharmony_ci    ): Promise<Result<string>>;
116261847f8eSopenharmony_ci
116361847f8eSopenharmony_ci    /**
116461847f8eSopenharmony_ci     * Changes confirmation.
116561847f8eSopenharmony_ci     *
116661847f8eSopenharmony_ci     * @param { number } userId - Indicates the user ID.
116761847f8eSopenharmony_ci     * @param { string } bundleName - Indicates the bundle name.
116861847f8eSopenharmony_ci     * @param { string } sharingResource - Indicates the sharing resource.
116961847f8eSopenharmony_ci     * @param { cloudData.sharing.State } state - Indicates the state.
117061847f8eSopenharmony_ci     * @returns { Promise<Result<void>> } Returns the change result.
117161847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
117261847f8eSopenharmony_ci     * @systemapi
117361847f8eSopenharmony_ci     * @since 11
117461847f8eSopenharmony_ci     */
117561847f8eSopenharmony_ci    changeConfirmation(
117661847f8eSopenharmony_ci      userId: number,
117761847f8eSopenharmony_ci      bundleName: string,
117861847f8eSopenharmony_ci      sharingResource: string,
117961847f8eSopenharmony_ci      state: cloudData.sharing.State
118061847f8eSopenharmony_ci    ): Promise<Result<void>>;
118161847f8eSopenharmony_ci  }
118261847f8eSopenharmony_ci
118361847f8eSopenharmony_ci  /**
118461847f8eSopenharmony_ci   * Provides interfaces for implementing CloudService.
118561847f8eSopenharmony_ci   *
118661847f8eSopenharmony_ci   * @interface CloudService
118761847f8eSopenharmony_ci   * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
118861847f8eSopenharmony_ci   * @systemapi
118961847f8eSopenharmony_ci   * @since 11
119061847f8eSopenharmony_ci   */
119161847f8eSopenharmony_ci  export interface CloudService {
119261847f8eSopenharmony_ci    /**
119361847f8eSopenharmony_ci     * Obtains the service information.
119461847f8eSopenharmony_ci     *
119561847f8eSopenharmony_ci     * @returns { Promise<ServiceInfo> } Returns the service information obtained.
119661847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
119761847f8eSopenharmony_ci     * @systemapi
119861847f8eSopenharmony_ci     * @since 11
119961847f8eSopenharmony_ci     */
120061847f8eSopenharmony_ci    getServiceInfo(): Promise<ServiceInfo>;
120161847f8eSopenharmony_ci
120261847f8eSopenharmony_ci    /**
120361847f8eSopenharmony_ci     * Obtains the brief application information.
120461847f8eSopenharmony_ci     *
120561847f8eSopenharmony_ci     * @returns { Promise<Record<string, AppBriefInfo>> }
120661847f8eSopenharmony_ci     * Returns the key-value pairs corresponding to <b>bundle</b> and
120761847f8eSopenharmony_ci     * <b>AppBriefInfo</b>.
120861847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
120961847f8eSopenharmony_ci     * @systemapi
121061847f8eSopenharmony_ci     * @since 11
121161847f8eSopenharmony_ci     */
121261847f8eSopenharmony_ci    getAppBriefInfo(): Promise<Record<string, AppBriefInfo>>;
121361847f8eSopenharmony_ci
121461847f8eSopenharmony_ci    /**
121561847f8eSopenharmony_ci     * Obtains the application schema information.
121661847f8eSopenharmony_ci     *
121761847f8eSopenharmony_ci     * @param { string } bundleName - Indicates the bundle name of the application.
121861847f8eSopenharmony_ci     * @returns { Promise<Result<AppSchema>> } Returns <b>AppSchema</b>.
121961847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
122061847f8eSopenharmony_ci     * @systemapi
122161847f8eSopenharmony_ci     * @since 11
122261847f8eSopenharmony_ci     */
122361847f8eSopenharmony_ci    getAppSchema(bundleName: string): Promise<Result<AppSchema>>;
122461847f8eSopenharmony_ci
122561847f8eSopenharmony_ci    /**
122661847f8eSopenharmony_ci     * Subscribes to data changes in the cloud.
122761847f8eSopenharmony_ci     * When the cloud server data is changed, the server notifies the device of
122861847f8eSopenharmony_ci     * the data change.
122961847f8eSopenharmony_ci     *
123061847f8eSopenharmony_ci     * @param { Record<string, Array<Database>> } subInfo - Indicates
123161847f8eSopenharmony_ci     * the data to be subscribed to, that is, the key-value pairs corresponding
123261847f8eSopenharmony_ci     * to an array of bundle names and databases.
123361847f8eSopenharmony_ci     * @param { number } expirationTime - Indicates the subscription expiration
123461847f8eSopenharmony_ci     * time.
123561847f8eSopenharmony_ci     * @returns { Promise<Result<SubscribeInfo>> } Returns <b>SubscribeInfo</b>.
123661847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
123761847f8eSopenharmony_ci     * @systemapi
123861847f8eSopenharmony_ci     * @since 11
123961847f8eSopenharmony_ci     */
124061847f8eSopenharmony_ci    subscribe(
124161847f8eSopenharmony_ci      subInfo: Record<string, Array<Database>>,
124261847f8eSopenharmony_ci      expirationTime: number
124361847f8eSopenharmony_ci    ): Promise<Result<SubscribeInfo>>;
124461847f8eSopenharmony_ci
124561847f8eSopenharmony_ci    /**
124661847f8eSopenharmony_ci     * Unsubscribes from the data changes in the cloud.
124761847f8eSopenharmony_ci     *
124861847f8eSopenharmony_ci     * @param { Record<string, Array<string>> } unsubscribeInfo - Indicates
124961847f8eSopenharmony_ci     * the data to be unsubscribe from, that is, the key-value pairs
125061847f8eSopenharmony_ci     *  corresponding to an array of bundle names and databases.
125161847f8eSopenharmony_ci     * @returns { Promise<number> } Returns unsubscribeInfo result.
125261847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
125361847f8eSopenharmony_ci     * @systemapi
125461847f8eSopenharmony_ci     * @since 11
125561847f8eSopenharmony_ci     */
125661847f8eSopenharmony_ci    unsubscribe(unsubscribeInfo: Record<string, Array<string>>): Promise<number>;
125761847f8eSopenharmony_ci
125861847f8eSopenharmony_ci    /**
125961847f8eSopenharmony_ci     * Connects to a database.
126061847f8eSopenharmony_ci     *
126161847f8eSopenharmony_ci     * @param { string } bundleName - Indicates the bundle name of the application.
126261847f8eSopenharmony_ci     * @param { Database } database - Indicates the database to connect.
126361847f8eSopenharmony_ci     * @returns { Promise<rpc.RemoteObject> } Returns connectDB RemoteObject.
126461847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
126561847f8eSopenharmony_ci     * @systemapi
126661847f8eSopenharmony_ci     * @since 11
126761847f8eSopenharmony_ci     */
126861847f8eSopenharmony_ci    connectDB(bundleName: string, database: Database): Promise<rpc.RemoteObject>;
126961847f8eSopenharmony_ci
127061847f8eSopenharmony_ci    /**
127161847f8eSopenharmony_ci     * Connects to an assetLoader.
127261847f8eSopenharmony_ci     *
127361847f8eSopenharmony_ci     * @param { string } bundleName - Indicates the bundle name of the application.
127461847f8eSopenharmony_ci     * @param { Database } database - Indicates the database of bundle.
127561847f8eSopenharmony_ci     * @returns { Promise<rpc.RemoteObject> } Returns connectAssetLoader RemoteObject.
127661847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
127761847f8eSopenharmony_ci     * @systemapi
127861847f8eSopenharmony_ci     * @since 11
127961847f8eSopenharmony_ci     */
128061847f8eSopenharmony_ci    connectAssetLoader(bundleName: string, database: Database): Promise<rpc.RemoteObject>;
128161847f8eSopenharmony_ci
128261847f8eSopenharmony_ci    /**
128361847f8eSopenharmony_ci     * Connects to a share center.
128461847f8eSopenharmony_ci     *
128561847f8eSopenharmony_ci     * @param { number } userId - Indicates the user ID.
128661847f8eSopenharmony_ci     * @param { string } bundleName - Indicates the bundle name.
128761847f8eSopenharmony_ci     * @returns { Promise<rpc.RemoteObject> } Returns shareCenter RemoteObject.
128861847f8eSopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.CloudSync.Server
128961847f8eSopenharmony_ci     * @systemapi
129061847f8eSopenharmony_ci     * @since 11
129161847f8eSopenharmony_ci     */
129261847f8eSopenharmony_ci    connectShareCenter(userId: number, bundleName: string): Promise<rpc.RemoteObject>;
129361847f8eSopenharmony_ci  }
129461847f8eSopenharmony_ci}
129561847f8eSopenharmony_ci
129661847f8eSopenharmony_ciexport default cloudExtension;