161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (C) 2022-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 CoreFileKit
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ciimport type { AsyncCallback, Callback } from './@ohos.base';
2261847f8eSopenharmony_ciimport type Context from './application/Context';
2361847f8eSopenharmony_ciimport image from './@ohos.multimedia.image';
2461847f8eSopenharmony_ciimport dataSharePredicates from './@ohos.data.dataSharePredicates';
2561847f8eSopenharmony_ci
2661847f8eSopenharmony_ci/**
2761847f8eSopenharmony_ci * @namespace userFileManager
2861847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.UserFileManager.Core
2961847f8eSopenharmony_ci * @systemapi
3061847f8eSopenharmony_ci * @since 9
3161847f8eSopenharmony_ci */
3261847f8eSopenharmony_cideclare namespace userFileManager {
3361847f8eSopenharmony_ci  /**
3461847f8eSopenharmony_ci   * Returns an instance of UserFileManager
3561847f8eSopenharmony_ci   *
3661847f8eSopenharmony_ci   * @param { Context } context - Hap context information
3761847f8eSopenharmony_ci   * @returns { UserFileManager } Instance of UserFileManager
3861847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
3961847f8eSopenharmony_ci   * @systemapi
4061847f8eSopenharmony_ci   * @StageModelOnly
4161847f8eSopenharmony_ci   * @since 9
4261847f8eSopenharmony_ci   */
4361847f8eSopenharmony_ci  function getUserFileMgr(context: Context): UserFileManager;
4461847f8eSopenharmony_ci
4561847f8eSopenharmony_ci  /**
4661847f8eSopenharmony_ci   * Enumeration types for different kinds of Files
4761847f8eSopenharmony_ci   *
4861847f8eSopenharmony_ci   * @enum { number } FileType
4961847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
5061847f8eSopenharmony_ci   * @systemapi
5161847f8eSopenharmony_ci   * @since 9
5261847f8eSopenharmony_ci   */
5361847f8eSopenharmony_ci  enum FileType {
5461847f8eSopenharmony_ci    /**
5561847f8eSopenharmony_ci     * Image file type
5661847f8eSopenharmony_ci     *
5761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
5861847f8eSopenharmony_ci     * @systemapi
5961847f8eSopenharmony_ci     * @since 9
6061847f8eSopenharmony_ci     */
6161847f8eSopenharmony_ci    IMAGE = 1,
6261847f8eSopenharmony_ci    /**
6361847f8eSopenharmony_ci     * Video file type
6461847f8eSopenharmony_ci     *
6561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
6661847f8eSopenharmony_ci     * @systemapi
6761847f8eSopenharmony_ci     * @since 9
6861847f8eSopenharmony_ci     */
6961847f8eSopenharmony_ci    VIDEO,
7061847f8eSopenharmony_ci    /**
7161847f8eSopenharmony_ci     * Audio file type
7261847f8eSopenharmony_ci     *
7361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
7461847f8eSopenharmony_ci     * @systemapi
7561847f8eSopenharmony_ci     * @since 9
7661847f8eSopenharmony_ci     */
7761847f8eSopenharmony_ci    AUDIO
7861847f8eSopenharmony_ci  }
7961847f8eSopenharmony_ci
8061847f8eSopenharmony_ci  /**
8161847f8eSopenharmony_ci   * Enumeration types for different types of FileAsset
8261847f8eSopenharmony_ci   *
8361847f8eSopenharmony_ci   * @enum { number } PhotoSubType
8461847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
8561847f8eSopenharmony_ci   * @systemapi
8661847f8eSopenharmony_ci   * @since 10
8761847f8eSopenharmony_ci   */
8861847f8eSopenharmony_ci  enum PhotoSubType {
8961847f8eSopenharmony_ci    /**
9061847f8eSopenharmony_ci     * Default Photo Type
9161847f8eSopenharmony_ci     *
9261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
9361847f8eSopenharmony_ci     * @systemapi
9461847f8eSopenharmony_ci     * @since 10
9561847f8eSopenharmony_ci     */
9661847f8eSopenharmony_ci    DEFAULT,
9761847f8eSopenharmony_ci    /**
9861847f8eSopenharmony_ci     * Screenshot Photo Type
9961847f8eSopenharmony_ci     *
10061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
10161847f8eSopenharmony_ci     * @systemapi
10261847f8eSopenharmony_ci     * @since 10
10361847f8eSopenharmony_ci     */
10461847f8eSopenharmony_ci    SCREENSHOT,
10561847f8eSopenharmony_ci    /**
10661847f8eSopenharmony_ci     * Camera Photo Type
10761847f8eSopenharmony_ci     *
10861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
10961847f8eSopenharmony_ci     * @systemapi
11061847f8eSopenharmony_ci     * @since 10
11161847f8eSopenharmony_ci     */
11261847f8eSopenharmony_ci    CAMERA
11361847f8eSopenharmony_ci  }
11461847f8eSopenharmony_ci
11561847f8eSopenharmony_ci  /**
11661847f8eSopenharmony_ci   * File position
11761847f8eSopenharmony_ci   *
11861847f8eSopenharmony_ci   * @enum { number } File position, which indicates the file is on local device or cloud
11961847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
12061847f8eSopenharmony_ci   * @systemapi
12161847f8eSopenharmony_ci   * @since 10
12261847f8eSopenharmony_ci   */
12361847f8eSopenharmony_ci  enum PositionType {
12461847f8eSopenharmony_ci    /**
12561847f8eSopenharmony_ci     * File exists only on local device
12661847f8eSopenharmony_ci     *
12761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
12861847f8eSopenharmony_ci     * @systemapi
12961847f8eSopenharmony_ci     * @since 10
13061847f8eSopenharmony_ci     */
13161847f8eSopenharmony_ci    LOCAL = 1,
13261847f8eSopenharmony_ci    /**
13361847f8eSopenharmony_ci     * File exists only on cloud
13461847f8eSopenharmony_ci     *
13561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
13661847f8eSopenharmony_ci     * @systemapi
13761847f8eSopenharmony_ci     * @since 10
13861847f8eSopenharmony_ci     */
13961847f8eSopenharmony_ci    CLOUD,
14061847f8eSopenharmony_ci    /**
14161847f8eSopenharmony_ci     * File exists on both local and cloud
14261847f8eSopenharmony_ci     *
14361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
14461847f8eSopenharmony_ci     * @systemapi
14561847f8eSopenharmony_ci     * @since 10
14661847f8eSopenharmony_ci     */
14761847f8eSopenharmony_ci    BOTH
14861847f8eSopenharmony_ci  }
14961847f8eSopenharmony_ci
15061847f8eSopenharmony_ci  /**
15161847f8eSopenharmony_ci   * Indicates the type of file asset member.
15261847f8eSopenharmony_ci   *
15361847f8eSopenharmony_ci   * @typedef { number | string | boolean } MemberType
15461847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
15561847f8eSopenharmony_ci   * @systemapi
15661847f8eSopenharmony_ci   * @since 9
15761847f8eSopenharmony_ci   */
15861847f8eSopenharmony_ci  type MemberType = number | string | boolean;
15961847f8eSopenharmony_ci
16061847f8eSopenharmony_ci  /**
16161847f8eSopenharmony_ci   * Indicates the type of notify event.
16261847f8eSopenharmony_ci   *
16361847f8eSopenharmony_ci   * @typedef { 'deviceChange' | 'albumChange' | 'imageChange' | 'audioChange' | 'videoChange' | 'remoteFileChange' } ChangeEvent
16461847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
16561847f8eSopenharmony_ci   * @systemapi
16661847f8eSopenharmony_ci   * @since 9
16761847f8eSopenharmony_ci   */
16861847f8eSopenharmony_ci  type ChangeEvent =
16961847f8eSopenharmony_ci    'deviceChange'
17061847f8eSopenharmony_ci    | 'albumChange'
17161847f8eSopenharmony_ci    | 'imageChange'
17261847f8eSopenharmony_ci    | 'audioChange'
17361847f8eSopenharmony_ci    | 'videoChange'
17461847f8eSopenharmony_ci    | 'remoteFileChange';
17561847f8eSopenharmony_ci
17661847f8eSopenharmony_ci  /**
17761847f8eSopenharmony_ci   * Provides methods to encapsulate file attributes.
17861847f8eSopenharmony_ci   *
17961847f8eSopenharmony_ci   * @interface FileAsset
18061847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
18161847f8eSopenharmony_ci   * @systemapi
18261847f8eSopenharmony_ci   * @since 9
18361847f8eSopenharmony_ci   */
18461847f8eSopenharmony_ci  interface FileAsset {
18561847f8eSopenharmony_ci    /**
18661847f8eSopenharmony_ci     * URI of the file.
18761847f8eSopenharmony_ci     *
18861847f8eSopenharmony_ci     * @type { string }
18961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
19061847f8eSopenharmony_ci     * @systemapi
19161847f8eSopenharmony_ci     * @since 9
19261847f8eSopenharmony_ci     */
19361847f8eSopenharmony_ci    readonly uri: string;
19461847f8eSopenharmony_ci    /**
19561847f8eSopenharmony_ci     * File type, for example, IMAGE, VIDEO, AUDIO
19661847f8eSopenharmony_ci     *
19761847f8eSopenharmony_ci     * @type { FileType }
19861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
19961847f8eSopenharmony_ci     * @systemapi
20061847f8eSopenharmony_ci     * @since 9
20161847f8eSopenharmony_ci     */
20261847f8eSopenharmony_ci    readonly fileType: FileType;
20361847f8eSopenharmony_ci    /**
20461847f8eSopenharmony_ci     * Display name (with a file name extension) of the file.
20561847f8eSopenharmony_ci     *
20661847f8eSopenharmony_ci     * @type { string }
20761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
20861847f8eSopenharmony_ci     * @systemapi
20961847f8eSopenharmony_ci     * @since 9
21061847f8eSopenharmony_ci     */
21161847f8eSopenharmony_ci    displayName: string;
21261847f8eSopenharmony_ci    /**
21361847f8eSopenharmony_ci     * Return the fileAsset member parameter.
21461847f8eSopenharmony_ci     *
21561847f8eSopenharmony_ci     * @param { string } member - The name of the parameter. for example : get(ImageVideoKey.URI)
21661847f8eSopenharmony_ci     * @returns { MemberType }
21761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
21861847f8eSopenharmony_ci     * @systemapi
21961847f8eSopenharmony_ci     * @since 9
22061847f8eSopenharmony_ci     */
22161847f8eSopenharmony_ci    get(member: string): MemberType;
22261847f8eSopenharmony_ci    /**
22361847f8eSopenharmony_ci     * Set the fileAsset member parameter.
22461847f8eSopenharmony_ci     *
22561847f8eSopenharmony_ci     * @param { string } member - The name of the parameter
22661847f8eSopenharmony_ci     * @param { string } value - The value of the parameter.
22761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
22861847f8eSopenharmony_ci     * @systemapi
22961847f8eSopenharmony_ci     * @since 9
23061847f8eSopenharmony_ci     * @example : Set(ImageVideoKey.TITLE, "newTitle"), call commitModify after set value
23161847f8eSopenharmony_ci     */
23261847f8eSopenharmony_ci    set(member: string, value: string): void;
23361847f8eSopenharmony_ci    /**
23461847f8eSopenharmony_ci     * Modify meta data where the file is located.
23561847f8eSopenharmony_ci     *
23661847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO or ohos.permission.WRITE_AUDIO
23761847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - No value will be returned.
23861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
23961847f8eSopenharmony_ci     * @systemapi
24061847f8eSopenharmony_ci     * @since 9
24161847f8eSopenharmony_ci     */
24261847f8eSopenharmony_ci    commitModify(callback: AsyncCallback<void>): void;
24361847f8eSopenharmony_ci    /**
24461847f8eSopenharmony_ci     * Modify meta data where the file is located.
24561847f8eSopenharmony_ci     *
24661847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO or ohos.permission.WRITE_AUDIO
24761847f8eSopenharmony_ci     * @returns { Promise<void> } Return promise
24861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
24961847f8eSopenharmony_ci     * @systemapi
25061847f8eSopenharmony_ci     * @since 9
25161847f8eSopenharmony_ci     */
25261847f8eSopenharmony_ci    commitModify(): Promise<void>;
25361847f8eSopenharmony_ci    /**
25461847f8eSopenharmony_ci     * Open local file.
25561847f8eSopenharmony_ci     *
25661847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO or ohos.permission.READ_AUDIO or ohos.permission.WRITE_IMAGEVIDEO or ohos.permission.WRITE_AUDIO
25761847f8eSopenharmony_ci     * @param { string } mode - Mode for open, for example: rw, r, w.
25861847f8eSopenharmony_ci     * @param { AsyncCallback<number> } callback - Callback return the fd of the file.
25961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
26061847f8eSopenharmony_ci     * @systemapi
26161847f8eSopenharmony_ci     * @since 9
26261847f8eSopenharmony_ci     */
26361847f8eSopenharmony_ci    open(mode: string, callback: AsyncCallback<number>): void;
26461847f8eSopenharmony_ci    /**
26561847f8eSopenharmony_ci     * Open local file.
26661847f8eSopenharmony_ci     *
26761847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO or ohos.permission.READ_AUDIO or ohos.permission.WRITE_IMAGEVIDEO or ohos.permission.WRITE_AUDIO
26861847f8eSopenharmony_ci     * @param { string } mode - Mode for open, for example: rw, r, w.
26961847f8eSopenharmony_ci     * @returns { Promise<number> } Return promise
27061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
27161847f8eSopenharmony_ci     * @systemapi
27261847f8eSopenharmony_ci     * @since 9
27361847f8eSopenharmony_ci     */
27461847f8eSopenharmony_ci    open(mode: string): Promise<number>;
27561847f8eSopenharmony_ci    /**
27661847f8eSopenharmony_ci     * Close the file is located.
27761847f8eSopenharmony_ci     *
27861847f8eSopenharmony_ci     * @param { number } fd - Fd of the file which had been opened
27961847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - No value will be returned.
28061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
28161847f8eSopenharmony_ci     * @systemapi
28261847f8eSopenharmony_ci     * @since 9
28361847f8eSopenharmony_ci     */
28461847f8eSopenharmony_ci    close(fd: number, callback: AsyncCallback<void>): void;
28561847f8eSopenharmony_ci    /**
28661847f8eSopenharmony_ci     * Close the file is located.
28761847f8eSopenharmony_ci     *
28861847f8eSopenharmony_ci     * @param { number } fd - Fd of the file which had been opened
28961847f8eSopenharmony_ci     * @returns { Promise<void> } Return promise
29061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
29161847f8eSopenharmony_ci     * @systemapi
29261847f8eSopenharmony_ci     * @since 9
29361847f8eSopenharmony_ci     */
29461847f8eSopenharmony_ci    close(fd: number): Promise<void>;
29561847f8eSopenharmony_ci    /**
29661847f8eSopenharmony_ci     * Get thumbnail of the file when the file is located.
29761847f8eSopenharmony_ci     *
29861847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO or ohos.permission.READ_AUDIO
29961847f8eSopenharmony_ci     * @param { AsyncCallback<image.PixelMap> } callback - Callback used to return the thumbnail's pixelMap.
30061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
30161847f8eSopenharmony_ci     * @systemapi
30261847f8eSopenharmony_ci     * @since 9
30361847f8eSopenharmony_ci     */
30461847f8eSopenharmony_ci    getThumbnail(callback: AsyncCallback<image.PixelMap>): void;
30561847f8eSopenharmony_ci    /**
30661847f8eSopenharmony_ci     * Get thumbnail of the file when the file is located.
30761847f8eSopenharmony_ci     *
30861847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO or ohos.permission.READ_AUDIO
30961847f8eSopenharmony_ci     * @param { image.Size } size - Thumbnail's size
31061847f8eSopenharmony_ci     * @param { AsyncCallback<image.PixelMap> } callback - Callback used to return the thumbnail's pixelMap.
31161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
31261847f8eSopenharmony_ci     * @systemapi
31361847f8eSopenharmony_ci     * @since 9
31461847f8eSopenharmony_ci     */
31561847f8eSopenharmony_ci    getThumbnail(size: image.Size, callback: AsyncCallback<image.PixelMap>): void;
31661847f8eSopenharmony_ci    /**
31761847f8eSopenharmony_ci     * Get thumbnail of the file when the file is located.
31861847f8eSopenharmony_ci     *
31961847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO or ohos.permission.READ_AUDIO
32061847f8eSopenharmony_ci     * @param { image.Size } size - Thumbnail's size
32161847f8eSopenharmony_ci     * @returns { Promise<image.PixelMap> } Return promise
32261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
32361847f8eSopenharmony_ci     * @systemapi
32461847f8eSopenharmony_ci     * @since 9
32561847f8eSopenharmony_ci     */
32661847f8eSopenharmony_ci    getThumbnail(size?: image.Size): Promise<image.PixelMap>;
32761847f8eSopenharmony_ci    /**
32861847f8eSopenharmony_ci     * Set favorite for the file when the file is located.
32961847f8eSopenharmony_ci     *
33061847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO or ohos.permission.WRITE_AUDIO
33161847f8eSopenharmony_ci     * @param { boolean } isFavorite - True is favorite file, false is not favorite file
33261847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return, No value is returned.
33361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
33461847f8eSopenharmony_ci     * @systemapi
33561847f8eSopenharmony_ci     * @since 9
33661847f8eSopenharmony_ci     */
33761847f8eSopenharmony_ci    favorite(isFavorite: boolean, callback: AsyncCallback<void>): void;
33861847f8eSopenharmony_ci    /**
33961847f8eSopenharmony_ci     * Set favorite for the file when the file is located.
34061847f8eSopenharmony_ci     *
34161847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO or ohos.permission.WRITE_AUDIO
34261847f8eSopenharmony_ci     * @param { boolean } isFavorite - isFavorite True is favorite file, false is not favorite file
34361847f8eSopenharmony_ci     * @returns { Promise<void> } Return promise
34461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
34561847f8eSopenharmony_ci     * @systemapi
34661847f8eSopenharmony_ci     * @since 9
34761847f8eSopenharmony_ci     */
34861847f8eSopenharmony_ci    favorite(isFavorite: boolean): Promise<void>;
34961847f8eSopenharmony_ci    /**
35061847f8eSopenharmony_ci     * Set file hidden state.
35161847f8eSopenharmony_ci     *
35261847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
35361847f8eSopenharmony_ci     * @param { boolean } hiddenState - true: Put the asset into hidden album; false: Recover the asset from hidden album.
35461847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Return void.
35561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Called by non-system application.
35661847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if parameter is invalid
35761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
35861847f8eSopenharmony_ci     * @systemapi
35961847f8eSopenharmony_ci     * @since 10
36061847f8eSopenharmony_ci     */
36161847f8eSopenharmony_ci    setHidden(hiddenState: boolean, callback: AsyncCallback<void>): void;
36261847f8eSopenharmony_ci    /**
36361847f8eSopenharmony_ci     * Set file hidden state.
36461847f8eSopenharmony_ci     *
36561847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
36661847f8eSopenharmony_ci     * @param { boolean } hiddenState - true: Put the asset into hidden album; false: Recover the asset from hidden album.
36761847f8eSopenharmony_ci     * @returns { Promise<void> } Returns the promise
36861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Called by non-system application.
36961847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if parameter is invalid
37061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
37161847f8eSopenharmony_ci     * @systemapi
37261847f8eSopenharmony_ci     * @since 10
37361847f8eSopenharmony_ci     */
37461847f8eSopenharmony_ci    setHidden(hiddenState: boolean): Promise<void>;
37561847f8eSopenharmony_ci    /**
37661847f8eSopenharmony_ci     * Set user comment info to the asset.
37761847f8eSopenharmony_ci     *
37861847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
37961847f8eSopenharmony_ci     * @param { string } userComment - user comment info
38061847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Returns void.
38161847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Called by non-system application.
38261847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
38361847f8eSopenharmony_ci     * <br>2. Incorrect parameter types; 3. Parameter verification failed.
38461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
38561847f8eSopenharmony_ci     * @systemapi
38661847f8eSopenharmony_ci     * @since 10
38761847f8eSopenharmony_ci     */
38861847f8eSopenharmony_ci    setUserComment(userComment: string, callback: AsyncCallback<void>): void;
38961847f8eSopenharmony_ci    /**
39061847f8eSopenharmony_ci     * Set user comment info to the asset.
39161847f8eSopenharmony_ci     *
39261847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
39361847f8eSopenharmony_ci     * @param { string } userComment - user comment info
39461847f8eSopenharmony_ci     * @returns { Promise<void> } Returns void
39561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Called by non-system application.
39661847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
39761847f8eSopenharmony_ci     * <br>2. Incorrect parameter types; 3. Parameter verification failed.
39861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
39961847f8eSopenharmony_ci     * @systemapi
40061847f8eSopenharmony_ci     * @since 10
40161847f8eSopenharmony_ci     */
40261847f8eSopenharmony_ci    setUserComment(userComment: string): Promise<void>;
40361847f8eSopenharmony_ci    /**
40461847f8eSopenharmony_ci     * Get exif info of the asset.
40561847f8eSopenharmony_ci     *
40661847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
40761847f8eSopenharmony_ci     * @param { AsyncCallback<string> } callback - Returns exif info into a json string
40861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Called by non-system application.
40961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
41061847f8eSopenharmony_ci     * @systemapi
41161847f8eSopenharmony_ci     * @since 10
41261847f8eSopenharmony_ci     */
41361847f8eSopenharmony_ci    getExif(callback: AsyncCallback<string>): void;
41461847f8eSopenharmony_ci    /**
41561847f8eSopenharmony_ci     * Get exif info of the asset.
41661847f8eSopenharmony_ci     *
41761847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
41861847f8eSopenharmony_ci     * @returns { Promise<string> } Returns exif info into a json string
41961847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Called by non-system application.
42061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
42161847f8eSopenharmony_ci     * @systemapi
42261847f8eSopenharmony_ci     * @since 10
42361847f8eSopenharmony_ci     */
42461847f8eSopenharmony_ci    getExif(): Promise<string>;
42561847f8eSopenharmony_ci  }
42661847f8eSopenharmony_ci
42761847f8eSopenharmony_ci  /**
42861847f8eSopenharmony_ci   * Describes AUDIO TYPE FetchOptions's predicate
42961847f8eSopenharmony_ci   *
43061847f8eSopenharmony_ci   * @enum { string } AudioKey
43161847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
43261847f8eSopenharmony_ci   * @systemapi
43361847f8eSopenharmony_ci   * @since 9
43461847f8eSopenharmony_ci   */
43561847f8eSopenharmony_ci  enum AudioKey {
43661847f8eSopenharmony_ci    /**
43761847f8eSopenharmony_ci     * File uri, read only
43861847f8eSopenharmony_ci     *
43961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
44061847f8eSopenharmony_ci     * @systemapi
44161847f8eSopenharmony_ci     * @since 9
44261847f8eSopenharmony_ci     */
44361847f8eSopenharmony_ci    URI,
44461847f8eSopenharmony_ci    /**
44561847f8eSopenharmony_ci     * File name
44661847f8eSopenharmony_ci     *
44761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
44861847f8eSopenharmony_ci     * @systemapi
44961847f8eSopenharmony_ci     * @since 9
45061847f8eSopenharmony_ci     */
45161847f8eSopenharmony_ci    DISPLAY_NAME,
45261847f8eSopenharmony_ci    /**
45361847f8eSopenharmony_ci     * Date of the file creation, read only
45461847f8eSopenharmony_ci     *
45561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
45661847f8eSopenharmony_ci     * @systemapi
45761847f8eSopenharmony_ci     * @since 9
45861847f8eSopenharmony_ci     */
45961847f8eSopenharmony_ci    DATE_ADDED,
46061847f8eSopenharmony_ci    /**
46161847f8eSopenharmony_ci     * Modify date of the file, read only
46261847f8eSopenharmony_ci     *
46361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
46461847f8eSopenharmony_ci     * @systemapi
46561847f8eSopenharmony_ci     * @since 9
46661847f8eSopenharmony_ci     */
46761847f8eSopenharmony_ci    DATE_MODIFIED,
46861847f8eSopenharmony_ci    /**
46961847f8eSopenharmony_ci     * Title of the file, read only
47061847f8eSopenharmony_ci     *
47161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
47261847f8eSopenharmony_ci     * @systemapi
47361847f8eSopenharmony_ci     * @since 9
47461847f8eSopenharmony_ci     */
47561847f8eSopenharmony_ci    TITLE,
47661847f8eSopenharmony_ci    /**
47761847f8eSopenharmony_ci     * Artist of the audio file, read only
47861847f8eSopenharmony_ci     *
47961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
48061847f8eSopenharmony_ci     * @systemapi
48161847f8eSopenharmony_ci     * @since 9
48261847f8eSopenharmony_ci     */
48361847f8eSopenharmony_ci    ARTIST,
48461847f8eSopenharmony_ci    /**
48561847f8eSopenharmony_ci     * Audio album of the audio file, read only
48661847f8eSopenharmony_ci     *
48761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
48861847f8eSopenharmony_ci     * @systemapi
48961847f8eSopenharmony_ci     * @since 9
49061847f8eSopenharmony_ci     */
49161847f8eSopenharmony_ci    AUDIOALBUM,
49261847f8eSopenharmony_ci    /**
49361847f8eSopenharmony_ci     * Duration of the audio file, read only
49461847f8eSopenharmony_ci     *
49561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
49661847f8eSopenharmony_ci     * @systemapi
49761847f8eSopenharmony_ci     * @since 9
49861847f8eSopenharmony_ci     */
49961847f8eSopenharmony_ci    DURATION,
50061847f8eSopenharmony_ci    /**
50161847f8eSopenharmony_ci     * Favorite state of the file, read only
50261847f8eSopenharmony_ci     *
50361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
50461847f8eSopenharmony_ci     * @systemapi
50561847f8eSopenharmony_ci     * @since 9
50661847f8eSopenharmony_ci     */
50761847f8eSopenharmony_ci    FAVORITE
50861847f8eSopenharmony_ci  }
50961847f8eSopenharmony_ci
51061847f8eSopenharmony_ci  /**
51161847f8eSopenharmony_ci   * Describes Image, Video TYPE FetchOptions's predicate
51261847f8eSopenharmony_ci   *
51361847f8eSopenharmony_ci   * @enum { string } ImageVideoKey
51461847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
51561847f8eSopenharmony_ci   * @systemapi
51661847f8eSopenharmony_ci   * @since 9
51761847f8eSopenharmony_ci   */
51861847f8eSopenharmony_ci  enum ImageVideoKey {
51961847f8eSopenharmony_ci    /**
52061847f8eSopenharmony_ci     * File uri, read only
52161847f8eSopenharmony_ci     *
52261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
52361847f8eSopenharmony_ci     * @systemapi
52461847f8eSopenharmony_ci     * @since 9
52561847f8eSopenharmony_ci     */
52661847f8eSopenharmony_ci    URI,
52761847f8eSopenharmony_ci    /**
52861847f8eSopenharmony_ci     * File type of the Asset, read only
52961847f8eSopenharmony_ci     *
53061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
53161847f8eSopenharmony_ci     * @systemapi
53261847f8eSopenharmony_ci     * @since 9
53361847f8eSopenharmony_ci     */
53461847f8eSopenharmony_ci    FILE_TYPE,
53561847f8eSopenharmony_ci    /**
53661847f8eSopenharmony_ci     * File name
53761847f8eSopenharmony_ci     *
53861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
53961847f8eSopenharmony_ci     * @systemapi
54061847f8eSopenharmony_ci     * @since 9
54161847f8eSopenharmony_ci     */
54261847f8eSopenharmony_ci    DISPLAY_NAME,
54361847f8eSopenharmony_ci    /**
54461847f8eSopenharmony_ci     * Date of the file creation, read only
54561847f8eSopenharmony_ci     *
54661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
54761847f8eSopenharmony_ci     * @systemapi
54861847f8eSopenharmony_ci     * @since 9
54961847f8eSopenharmony_ci     */
55061847f8eSopenharmony_ci    DATE_ADDED,
55161847f8eSopenharmony_ci    /**
55261847f8eSopenharmony_ci     * Modify date of the file, read only
55361847f8eSopenharmony_ci     *
55461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
55561847f8eSopenharmony_ci     * @systemapi
55661847f8eSopenharmony_ci     * @since 9
55761847f8eSopenharmony_ci     */
55861847f8eSopenharmony_ci    DATE_MODIFIED,
55961847f8eSopenharmony_ci    /**
56061847f8eSopenharmony_ci     * Title of the file, read only
56161847f8eSopenharmony_ci     *
56261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
56361847f8eSopenharmony_ci     * @systemapi
56461847f8eSopenharmony_ci     * @since 9
56561847f8eSopenharmony_ci     */
56661847f8eSopenharmony_ci    TITLE,
56761847f8eSopenharmony_ci    /**
56861847f8eSopenharmony_ci     * Duration of the audio and video file, read only
56961847f8eSopenharmony_ci     *
57061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
57161847f8eSopenharmony_ci     * @systemapi
57261847f8eSopenharmony_ci     * @since 9
57361847f8eSopenharmony_ci     */
57461847f8eSopenharmony_ci    DURATION,
57561847f8eSopenharmony_ci    /**
57661847f8eSopenharmony_ci     * Width of the image file, read only
57761847f8eSopenharmony_ci     *
57861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
57961847f8eSopenharmony_ci     * @systemapi
58061847f8eSopenharmony_ci     * @since 9
58161847f8eSopenharmony_ci     */
58261847f8eSopenharmony_ci    WIDTH,
58361847f8eSopenharmony_ci    /**
58461847f8eSopenharmony_ci     * Height of the image file, read only
58561847f8eSopenharmony_ci     *
58661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
58761847f8eSopenharmony_ci     * @systemapi
58861847f8eSopenharmony_ci     * @since 9
58961847f8eSopenharmony_ci     */
59061847f8eSopenharmony_ci    HEIGHT,
59161847f8eSopenharmony_ci    /**
59261847f8eSopenharmony_ci     * Date taken of the file, read only
59361847f8eSopenharmony_ci     *
59461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
59561847f8eSopenharmony_ci     * @systemapi
59661847f8eSopenharmony_ci     * @since 9
59761847f8eSopenharmony_ci     */
59861847f8eSopenharmony_ci    DATE_TAKEN,
59961847f8eSopenharmony_ci    /**
60061847f8eSopenharmony_ci     * Orientation of the image file, read only
60161847f8eSopenharmony_ci     *
60261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
60361847f8eSopenharmony_ci     * @systemapi
60461847f8eSopenharmony_ci     * @since 9
60561847f8eSopenharmony_ci     */
60661847f8eSopenharmony_ci    ORIENTATION,
60761847f8eSopenharmony_ci    /**
60861847f8eSopenharmony_ci     * Favorite state of the file, read only
60961847f8eSopenharmony_ci     *
61061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
61161847f8eSopenharmony_ci     * @systemapi
61261847f8eSopenharmony_ci     * @since 9
61361847f8eSopenharmony_ci     */
61461847f8eSopenharmony_ci    FAVORITE,
61561847f8eSopenharmony_ci    /**
61661847f8eSopenharmony_ci     * File position, read only
61761847f8eSopenharmony_ci     *
61861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
61961847f8eSopenharmony_ci     * @systemapi
62061847f8eSopenharmony_ci     * @since 10
62161847f8eSopenharmony_ci     */
62261847f8eSopenharmony_ci    POSITION,
62361847f8eSopenharmony_ci    /**
62461847f8eSopenharmony_ci     * Trashed date of the file, read only
62561847f8eSopenharmony_ci     *
62661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
62761847f8eSopenharmony_ci     * @systemapi
62861847f8eSopenharmony_ci     * @since 10
62961847f8eSopenharmony_ci     */
63061847f8eSopenharmony_ci    DATE_TRASHED,
63161847f8eSopenharmony_ci    /**
63261847f8eSopenharmony_ci     * Hidden state of the file, read only
63361847f8eSopenharmony_ci     *
63461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
63561847f8eSopenharmony_ci     * @systemapi
63661847f8eSopenharmony_ci     * @since 10
63761847f8eSopenharmony_ci     */
63861847f8eSopenharmony_ci    HIDDEN,
63961847f8eSopenharmony_ci    /**
64061847f8eSopenharmony_ci     * User comment info
64161847f8eSopenharmony_ci     *
64261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
64361847f8eSopenharmony_ci     * @systemapi
64461847f8eSopenharmony_ci     * @since 10
64561847f8eSopenharmony_ci     */
64661847f8eSopenharmony_ci    USER_COMMENT,
64761847f8eSopenharmony_ci    /**
64861847f8eSopenharmony_ci     * Camera shot key
64961847f8eSopenharmony_ci     *
65061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
65161847f8eSopenharmony_ci     * @systemapi
65261847f8eSopenharmony_ci     * @since 10
65361847f8eSopenharmony_ci     */
65461847f8eSopenharmony_ci    CAMERA_SHOT_KEY
65561847f8eSopenharmony_ci  }
65661847f8eSopenharmony_ci
65761847f8eSopenharmony_ci  /**
65861847f8eSopenharmony_ci   * Describes Album TYPE predicate
65961847f8eSopenharmony_ci   *
66061847f8eSopenharmony_ci   * @enum { string } AlbumKey
66161847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
66261847f8eSopenharmony_ci   * @systemapi
66361847f8eSopenharmony_ci   * @since 9
66461847f8eSopenharmony_ci   */
66561847f8eSopenharmony_ci  enum AlbumKey {
66661847f8eSopenharmony_ci    /**
66761847f8eSopenharmony_ci     * Album uri
66861847f8eSopenharmony_ci     *
66961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
67061847f8eSopenharmony_ci     * @systemapi
67161847f8eSopenharmony_ci     * @since 9
67261847f8eSopenharmony_ci     */
67361847f8eSopenharmony_ci    URI,
67461847f8eSopenharmony_ci    /**
67561847f8eSopenharmony_ci     * File type of the Album
67661847f8eSopenharmony_ci     *
67761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
67861847f8eSopenharmony_ci     * @systemapi
67961847f8eSopenharmony_ci     * @since 9
68061847f8eSopenharmony_ci     */
68161847f8eSopenharmony_ci    FILE_TYPE,
68261847f8eSopenharmony_ci    /**
68361847f8eSopenharmony_ci     * Album name
68461847f8eSopenharmony_ci     *
68561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
68661847f8eSopenharmony_ci     * @systemapi
68761847f8eSopenharmony_ci     * @since 9
68861847f8eSopenharmony_ci     */
68961847f8eSopenharmony_ci    ALBUM_NAME,
69061847f8eSopenharmony_ci    /**
69161847f8eSopenharmony_ci     * Date of the Album creation
69261847f8eSopenharmony_ci     *
69361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
69461847f8eSopenharmony_ci     * @systemapi
69561847f8eSopenharmony_ci     * @since 9
69661847f8eSopenharmony_ci     */
69761847f8eSopenharmony_ci    DATE_ADDED,
69861847f8eSopenharmony_ci    /**
69961847f8eSopenharmony_ci     * Modify date of the Album
70061847f8eSopenharmony_ci     *
70161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
70261847f8eSopenharmony_ci     * @systemapi
70361847f8eSopenharmony_ci     * @since 9
70461847f8eSopenharmony_ci     */
70561847f8eSopenharmony_ci    DATE_MODIFIED
70661847f8eSopenharmony_ci  }
70761847f8eSopenharmony_ci
70861847f8eSopenharmony_ci  /**
70961847f8eSopenharmony_ci   * Fetch parameters
71061847f8eSopenharmony_ci   *
71161847f8eSopenharmony_ci   * @interface FetchOptions
71261847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
71361847f8eSopenharmony_ci   * @systemapi
71461847f8eSopenharmony_ci   * @since 9
71561847f8eSopenharmony_ci   */
71661847f8eSopenharmony_ci  interface FetchOptions {
71761847f8eSopenharmony_ci    /**
71861847f8eSopenharmony_ci     * Indicates the columns to query.
71961847f8eSopenharmony_ci     *
72061847f8eSopenharmony_ci     * @type { Array<string> }
72161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
72261847f8eSopenharmony_ci     * @systemapi
72361847f8eSopenharmony_ci     * @since 9
72461847f8eSopenharmony_ci     */
72561847f8eSopenharmony_ci    fetchColumns: Array<string>;
72661847f8eSopenharmony_ci    /**
72761847f8eSopenharmony_ci     * Predicate to query
72861847f8eSopenharmony_ci     *
72961847f8eSopenharmony_ci     * @type { dataSharePredicates.DataSharePredicates }
73061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
73161847f8eSopenharmony_ci     * @systemapi
73261847f8eSopenharmony_ci     * @since 9
73361847f8eSopenharmony_ci     */
73461847f8eSopenharmony_ci    predicates: dataSharePredicates.DataSharePredicates;
73561847f8eSopenharmony_ci  }
73661847f8eSopenharmony_ci
73761847f8eSopenharmony_ci  /**
73861847f8eSopenharmony_ci   * Fetch parameters
73961847f8eSopenharmony_ci   *
74061847f8eSopenharmony_ci   * @interface AlbumFetchOptions
74161847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
74261847f8eSopenharmony_ci   * @systemapi
74361847f8eSopenharmony_ci   * @since 9
74461847f8eSopenharmony_ci   */
74561847f8eSopenharmony_ci  interface AlbumFetchOptions {
74661847f8eSopenharmony_ci    /**
74761847f8eSopenharmony_ci     * Predicate to query
74861847f8eSopenharmony_ci     *
74961847f8eSopenharmony_ci     * @type { dataSharePredicates.DataSharePredicates }
75061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
75161847f8eSopenharmony_ci     * @systemapi
75261847f8eSopenharmony_ci     * @since 9
75361847f8eSopenharmony_ci     */
75461847f8eSopenharmony_ci    predicates: dataSharePredicates.DataSharePredicates;
75561847f8eSopenharmony_ci  }
75661847f8eSopenharmony_ci
75761847f8eSopenharmony_ci  /**
75861847f8eSopenharmony_ci   * Describe additional operations for creating photo
75961847f8eSopenharmony_ci   *
76061847f8eSopenharmony_ci   * @interface PhotoCreateOptions
76161847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
76261847f8eSopenharmony_ci   * @systemapi
76361847f8eSopenharmony_ci   * @since 10
76461847f8eSopenharmony_ci   */
76561847f8eSopenharmony_ci  interface PhotoCreateOptions {
76661847f8eSopenharmony_ci    /**
76761847f8eSopenharmony_ci     * SubType of the photo
76861847f8eSopenharmony_ci     *
76961847f8eSopenharmony_ci     * @type { ?PhotoSubType }
77061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
77161847f8eSopenharmony_ci     * @systemapi
77261847f8eSopenharmony_ci     * @since 10
77361847f8eSopenharmony_ci     */
77461847f8eSopenharmony_ci    subType?: PhotoSubType;
77561847f8eSopenharmony_ci    /**
77661847f8eSopenharmony_ci     * Camera shot key
77761847f8eSopenharmony_ci     *
77861847f8eSopenharmony_ci     * @type { ?string }
77961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
78061847f8eSopenharmony_ci     * @systemapi
78161847f8eSopenharmony_ci     * @since 10
78261847f8eSopenharmony_ci     */
78361847f8eSopenharmony_ci    cameraShotKey?: string;
78461847f8eSopenharmony_ci  }
78561847f8eSopenharmony_ci
78661847f8eSopenharmony_ci  /**
78761847f8eSopenharmony_ci   * Implements file retrieval.
78861847f8eSopenharmony_ci   *
78961847f8eSopenharmony_ci   * @interface FetchResult
79061847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
79161847f8eSopenharmony_ci   * @systemapi
79261847f8eSopenharmony_ci   * @since 9
79361847f8eSopenharmony_ci   */
79461847f8eSopenharmony_ci  interface FetchResult<T> {
79561847f8eSopenharmony_ci    /**
79661847f8eSopenharmony_ci     * Obtains the total number of files in the file retrieval result.
79761847f8eSopenharmony_ci     *
79861847f8eSopenharmony_ci     * @returns { number } Total number of files.
79961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
80061847f8eSopenharmony_ci     * @systemapi
80161847f8eSopenharmony_ci     * @since 9
80261847f8eSopenharmony_ci     */
80361847f8eSopenharmony_ci    getCount(): number;
80461847f8eSopenharmony_ci    /**
80561847f8eSopenharmony_ci     * Checks whether the result set points to the last row.
80661847f8eSopenharmony_ci     *
80761847f8eSopenharmony_ci     * @returns { boolean } Whether the file is the last one.
80861847f8eSopenharmony_ci     * You need to check whether the file is the last one before calling getNextObject,
80961847f8eSopenharmony_ci     * which returns the next file only when False is returned for this method.
81061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
81161847f8eSopenharmony_ci     * @systemapi
81261847f8eSopenharmony_ci     * @since 9
81361847f8eSopenharmony_ci     */
81461847f8eSopenharmony_ci    isAfterLast(): boolean;
81561847f8eSopenharmony_ci    /**
81661847f8eSopenharmony_ci     * Releases the FetchResult instance and invalidates it. Other methods cannot be called.
81761847f8eSopenharmony_ci     *
81861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
81961847f8eSopenharmony_ci     * @systemapi
82061847f8eSopenharmony_ci     * @since 9
82161847f8eSopenharmony_ci     */
82261847f8eSopenharmony_ci    close(): void;
82361847f8eSopenharmony_ci    /**
82461847f8eSopenharmony_ci     * Obtains the first FileAsset in the file retrieval result. This method uses a callback to return the file.
82561847f8eSopenharmony_ci     *
82661847f8eSopenharmony_ci     * @param { AsyncCallback<T> } callback - Callback used to return the file in the format of a FileAsset instance.
82761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
82861847f8eSopenharmony_ci     * @systemapi
82961847f8eSopenharmony_ci     * @since 9
83061847f8eSopenharmony_ci     */
83161847f8eSopenharmony_ci    getFirstObject(callback: AsyncCallback<T>): void;
83261847f8eSopenharmony_ci    /**
83361847f8eSopenharmony_ci     * Obtains the first T in the file retrieval result. This method uses a promise to return the file.
83461847f8eSopenharmony_ci     *
83561847f8eSopenharmony_ci     * @returns { Promise<T> } A Promise instance used to return the file in the format of a T instance.
83661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
83761847f8eSopenharmony_ci     * @systemapi
83861847f8eSopenharmony_ci     * @since 9
83961847f8eSopenharmony_ci     */
84061847f8eSopenharmony_ci    getFirstObject(): Promise<T>;
84161847f8eSopenharmony_ci    /**
84261847f8eSopenharmony_ci     * Obtains the next T in the file retrieval result.
84361847f8eSopenharmony_ci     * This method uses a callback to return the file.
84461847f8eSopenharmony_ci     * Before calling this method, you must use isAfterLast() to check whether the result set points to the last row.
84561847f8eSopenharmony_ci     * This method returns the next file only when False is returned for isAfterLast().
84661847f8eSopenharmony_ci     *
84761847f8eSopenharmony_ci     * @param { AsyncCallback<T> } callback - Callback used to return the file in the format of a T instance.
84861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
84961847f8eSopenharmony_ci     * @systemapi
85061847f8eSopenharmony_ci     * @since 9
85161847f8eSopenharmony_ci     */
85261847f8eSopenharmony_ci    getNextObject(callback: AsyncCallback<T>): void;
85361847f8eSopenharmony_ci    /**
85461847f8eSopenharmony_ci     * Obtains the next T in the file retrieval result.
85561847f8eSopenharmony_ci     * This method uses a promise to return the file.
85661847f8eSopenharmony_ci     * Before calling this method, you must use isAfterLast() to check whether the result set points to the last row.
85761847f8eSopenharmony_ci     * This method returns the next file only when False is returned for isAfterLast().
85861847f8eSopenharmony_ci     *
85961847f8eSopenharmony_ci     * @returns { Promise<T> } A Promise instance used to return the file in the format of a T instance.
86061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
86161847f8eSopenharmony_ci     * @systemapi
86261847f8eSopenharmony_ci     * @since 9
86361847f8eSopenharmony_ci     */
86461847f8eSopenharmony_ci    getNextObject(): Promise<T>;
86561847f8eSopenharmony_ci    /**
86661847f8eSopenharmony_ci     * Obtains the last T in the file retrieval result. This method uses a callback to return the file.
86761847f8eSopenharmony_ci     *
86861847f8eSopenharmony_ci     * @param { AsyncCallback<T> } callback - Callback used to return the file in the format of a T instance.
86961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
87061847f8eSopenharmony_ci     * @systemapi
87161847f8eSopenharmony_ci     * @since 9
87261847f8eSopenharmony_ci     */
87361847f8eSopenharmony_ci    getLastObject(callback: AsyncCallback<T>): void;
87461847f8eSopenharmony_ci    /**
87561847f8eSopenharmony_ci     * Obtains the last T in the file retrieval result. This method uses a promise to return the file.
87661847f8eSopenharmony_ci     *
87761847f8eSopenharmony_ci     * @returns { Promise<T> } A Promise instance used to return the file in the format of a T instance.
87861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
87961847f8eSopenharmony_ci     * @systemapi
88061847f8eSopenharmony_ci     * @since 9
88161847f8eSopenharmony_ci     */
88261847f8eSopenharmony_ci    getLastObject(): Promise<T>;
88361847f8eSopenharmony_ci    /**
88461847f8eSopenharmony_ci     * Obtains the T with the specified index in the file retrieval result.
88561847f8eSopenharmony_ci     * This method uses a callback to return the file.
88661847f8eSopenharmony_ci     *
88761847f8eSopenharmony_ci     * @param { number } index - Index of the file to obtain.
88861847f8eSopenharmony_ci     * @param { AsyncCallback<T> } callback - Callback used to return the file in the format of a T instance.
88961847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type index is not number
89061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
89161847f8eSopenharmony_ci     * @systemapi
89261847f8eSopenharmony_ci     * @since 9
89361847f8eSopenharmony_ci     */
89461847f8eSopenharmony_ci    getPositionObject(index: number, callback: AsyncCallback<T>): void;
89561847f8eSopenharmony_ci    /**
89661847f8eSopenharmony_ci     * Obtains the T with the specified index in the file retrieval result.
89761847f8eSopenharmony_ci     * This method uses a promise to return the file.
89861847f8eSopenharmony_ci     *
89961847f8eSopenharmony_ci     * @param { number } index - Index of the file to obtain.
90061847f8eSopenharmony_ci     * @returns { Promise<T> } A Promise instance used to return the file in the format of a T instance.
90161847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type index is not number
90261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
90361847f8eSopenharmony_ci     * @systemapi
90461847f8eSopenharmony_ci     * @since 9
90561847f8eSopenharmony_ci     */
90661847f8eSopenharmony_ci    getPositionObject(index: number): Promise<T>;
90761847f8eSopenharmony_ci    /**
90861847f8eSopenharmony_ci     * Obtains all T in the file retrieval result.
90961847f8eSopenharmony_ci     * This method uses a callback to return the result. After this method is called,
91061847f8eSopenharmony_ci     *
91161847f8eSopenharmony_ci     * @param { AsyncCallback<Array<T>> } callback - Callback used to return a T array.
91261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
91361847f8eSopenharmony_ci     * @systemapi
91461847f8eSopenharmony_ci     * @since 10
91561847f8eSopenharmony_ci     */
91661847f8eSopenharmony_ci    getAllObject(callback: AsyncCallback<Array<T>>): void;
91761847f8eSopenharmony_ci    /**
91861847f8eSopenharmony_ci     * Obtains all T in the file retrieval result.
91961847f8eSopenharmony_ci     * This method uses a promise to return the result. that store the selected media resources.
92061847f8eSopenharmony_ci     *
92161847f8eSopenharmony_ci     * @returns { Promise<Array<T>> } A Promise instance used to return a T array.
92261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
92361847f8eSopenharmony_ci     * @systemapi
92461847f8eSopenharmony_ci     * @since 10
92561847f8eSopenharmony_ci     */
92661847f8eSopenharmony_ci    getAllObject(): Promise<Array<T>>;
92761847f8eSopenharmony_ci  }
92861847f8eSopenharmony_ci
92961847f8eSopenharmony_ci  /**
93061847f8eSopenharmony_ci   * Album type.
93161847f8eSopenharmony_ci   *
93261847f8eSopenharmony_ci   * @enum { number } AlbumType
93361847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
93461847f8eSopenharmony_ci   * @systemapi
93561847f8eSopenharmony_ci   * @since 10
93661847f8eSopenharmony_ci   */
93761847f8eSopenharmony_ci  enum AlbumType {
93861847f8eSopenharmony_ci    /**
93961847f8eSopenharmony_ci     * Album created by user.
94061847f8eSopenharmony_ci     *
94161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
94261847f8eSopenharmony_ci     * @systemapi
94361847f8eSopenharmony_ci     * @since 10
94461847f8eSopenharmony_ci     */
94561847f8eSopenharmony_ci    USER = 0,
94661847f8eSopenharmony_ci    /**
94761847f8eSopenharmony_ci     * Album created by system, which metadata cannot be modified by user.
94861847f8eSopenharmony_ci     *
94961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
95061847f8eSopenharmony_ci     * @systemapi
95161847f8eSopenharmony_ci     * @since 10
95261847f8eSopenharmony_ci     */
95361847f8eSopenharmony_ci    SYSTEM = 1024
95461847f8eSopenharmony_ci  }
95561847f8eSopenharmony_ci
95661847f8eSopenharmony_ci  /**
95761847f8eSopenharmony_ci   * Album subtype
95861847f8eSopenharmony_ci   *
95961847f8eSopenharmony_ci   * @enum { number } AlbumSubType
96061847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
96161847f8eSopenharmony_ci   * @systemapi
96261847f8eSopenharmony_ci   * @since 10
96361847f8eSopenharmony_ci   */
96461847f8eSopenharmony_ci  enum AlbumSubType {
96561847f8eSopenharmony_ci    /**
96661847f8eSopenharmony_ci     * Generic user-created albums.
96761847f8eSopenharmony_ci     *
96861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
96961847f8eSopenharmony_ci     * @systemapi
97061847f8eSopenharmony_ci     * @since 10
97161847f8eSopenharmony_ci     */
97261847f8eSopenharmony_ci    USER_GENERIC = 1,
97361847f8eSopenharmony_ci    /**
97461847f8eSopenharmony_ci     * Favorite album, which assets are marked as favorite.
97561847f8eSopenharmony_ci     *
97661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
97761847f8eSopenharmony_ci     * @systemapi
97861847f8eSopenharmony_ci     * @since 10
97961847f8eSopenharmony_ci     */
98061847f8eSopenharmony_ci    FAVORITE = 1025,
98161847f8eSopenharmony_ci    /**
98261847f8eSopenharmony_ci     * Video album, which contains all video assets.
98361847f8eSopenharmony_ci     *
98461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
98561847f8eSopenharmony_ci     * @systemapi
98661847f8eSopenharmony_ci     * @since 10
98761847f8eSopenharmony_ci     */
98861847f8eSopenharmony_ci    VIDEO,
98961847f8eSopenharmony_ci    /**
99061847f8eSopenharmony_ci     * Hidden album, which assets are marked as hidden.
99161847f8eSopenharmony_ci     *
99261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
99361847f8eSopenharmony_ci     * @systemapi
99461847f8eSopenharmony_ci     * @since 10
99561847f8eSopenharmony_ci     */
99661847f8eSopenharmony_ci    HIDDEN,
99761847f8eSopenharmony_ci    /**
99861847f8eSopenharmony_ci     * Trash album, which assets are deleted.
99961847f8eSopenharmony_ci     *
100061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
100161847f8eSopenharmony_ci     * @systemapi
100261847f8eSopenharmony_ci     * @since 10
100361847f8eSopenharmony_ci     */
100461847f8eSopenharmony_ci    TRASH,
100561847f8eSopenharmony_ci    /**
100661847f8eSopenharmony_ci     * Screenshot album
100761847f8eSopenharmony_ci     *
100861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
100961847f8eSopenharmony_ci     * @systemapi
101061847f8eSopenharmony_ci     * @since 10
101161847f8eSopenharmony_ci     */
101261847f8eSopenharmony_ci    SCREENSHOT,
101361847f8eSopenharmony_ci    /**
101461847f8eSopenharmony_ci     * Camera album
101561847f8eSopenharmony_ci     *
101661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
101761847f8eSopenharmony_ci     * @systemapi
101861847f8eSopenharmony_ci     * @since 10
101961847f8eSopenharmony_ci     */
102061847f8eSopenharmony_ci    CAMERA,
102161847f8eSopenharmony_ci    /**
102261847f8eSopenharmony_ci     * Any album
102361847f8eSopenharmony_ci     *
102461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
102561847f8eSopenharmony_ci     * @systemapi
102661847f8eSopenharmony_ci     * @since 10
102761847f8eSopenharmony_ci     */
102861847f8eSopenharmony_ci    ANY = 2147483647
102961847f8eSopenharmony_ci  }
103061847f8eSopenharmony_ci
103161847f8eSopenharmony_ci  /**
103261847f8eSopenharmony_ci   * Defines the AbsAlbum.
103361847f8eSopenharmony_ci   *
103461847f8eSopenharmony_ci   * @interface AbsAlbum
103561847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
103661847f8eSopenharmony_ci   * @systemapi
103761847f8eSopenharmony_ci   * @since 9
103861847f8eSopenharmony_ci   */
103961847f8eSopenharmony_ci  interface AbsAlbum {
104061847f8eSopenharmony_ci    /**
104161847f8eSopenharmony_ci     * Album type
104261847f8eSopenharmony_ci     *
104361847f8eSopenharmony_ci     * @type { AlbumType }
104461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
104561847f8eSopenharmony_ci     * @systemapi
104661847f8eSopenharmony_ci     * @since 10
104761847f8eSopenharmony_ci     */
104861847f8eSopenharmony_ci    readonly albumType: AlbumType;
104961847f8eSopenharmony_ci    /**
105061847f8eSopenharmony_ci     * Album subtype
105161847f8eSopenharmony_ci     *
105261847f8eSopenharmony_ci     * @type { AlbumSubType }
105361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
105461847f8eSopenharmony_ci     * @systemapi
105561847f8eSopenharmony_ci     * @since 10
105661847f8eSopenharmony_ci     */
105761847f8eSopenharmony_ci    readonly albumSubType: AlbumSubType;
105861847f8eSopenharmony_ci    /**
105961847f8eSopenharmony_ci     * Album name.
106061847f8eSopenharmony_ci     *
106161847f8eSopenharmony_ci     * @type { string }
106261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
106361847f8eSopenharmony_ci     * @systemapi
106461847f8eSopenharmony_ci     * @since 9
106561847f8eSopenharmony_ci     */
106661847f8eSopenharmony_ci    albumName: string;
106761847f8eSopenharmony_ci    /**
106861847f8eSopenharmony_ci     * Album uri.
106961847f8eSopenharmony_ci     *
107061847f8eSopenharmony_ci     * @type { string }
107161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
107261847f8eSopenharmony_ci     * @systemapi
107361847f8eSopenharmony_ci     * @since 9
107461847f8eSopenharmony_ci     */
107561847f8eSopenharmony_ci    readonly albumUri: string;
107661847f8eSopenharmony_ci    /**
107761847f8eSopenharmony_ci     * Date (timestamp) when the album was last modified.
107861847f8eSopenharmony_ci     *
107961847f8eSopenharmony_ci     * @type { number }
108061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
108161847f8eSopenharmony_ci     * @systemapi
108261847f8eSopenharmony_ci     * @since 9
108361847f8eSopenharmony_ci     */
108461847f8eSopenharmony_ci    readonly dateModified: number;
108561847f8eSopenharmony_ci    /**
108661847f8eSopenharmony_ci     * File count for the album
108761847f8eSopenharmony_ci     *
108861847f8eSopenharmony_ci     * @type { number }
108961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
109061847f8eSopenharmony_ci     * @systemapi
109161847f8eSopenharmony_ci     * @since 9
109261847f8eSopenharmony_ci     */
109361847f8eSopenharmony_ci    readonly count: number;
109461847f8eSopenharmony_ci    /**
109561847f8eSopenharmony_ci     * CoverUri for the album
109661847f8eSopenharmony_ci     *
109761847f8eSopenharmony_ci     * @type { string }
109861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
109961847f8eSopenharmony_ci     * @systemapi
110061847f8eSopenharmony_ci     * @since 9
110161847f8eSopenharmony_ci     */
110261847f8eSopenharmony_ci    coverUri: string;
110361847f8eSopenharmony_ci    /**
110461847f8eSopenharmony_ci     * Obtains files in an album. This method uses an asynchronous callback to return the files.
110561847f8eSopenharmony_ci     *
110661847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
110761847f8eSopenharmony_ci     * @param { FetchOptions } options - Retrieval options.
110861847f8eSopenharmony_ci     * @param { AsyncCallback<FetchResult<FileAsset>> } callback - Callback used to return the files in the format of a FetchResult instance.
110961847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type options is not FetchOptions
111061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
111161847f8eSopenharmony_ci     * @systemapi
111261847f8eSopenharmony_ci     * @since 9
111361847f8eSopenharmony_ci     */
111461847f8eSopenharmony_ci    getPhotoAssets(options: FetchOptions, callback: AsyncCallback<FetchResult<FileAsset>>): void;
111561847f8eSopenharmony_ci    /**
111661847f8eSopenharmony_ci     * Obtains files in an album. This method uses a promise to return the files.
111761847f8eSopenharmony_ci     *
111861847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
111961847f8eSopenharmony_ci     * @param { FetchOptions } options - Retrieval options.
112061847f8eSopenharmony_ci     * @returns { Promise<FetchResult<FileAsset>> } A Promise instance used to return the files in the format of a FetchResult instance.
112161847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type options is not FetchOptions
112261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
112361847f8eSopenharmony_ci     * @systemapi
112461847f8eSopenharmony_ci     * @since 9
112561847f8eSopenharmony_ci     */
112661847f8eSopenharmony_ci    getPhotoAssets(options: FetchOptions): Promise<FetchResult<FileAsset>>;
112761847f8eSopenharmony_ci  }
112861847f8eSopenharmony_ci
112961847f8eSopenharmony_ci  /**
113061847f8eSopenharmony_ci   * Defines the album.
113161847f8eSopenharmony_ci   *
113261847f8eSopenharmony_ci   * @interface Album
113361847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
113461847f8eSopenharmony_ci   * @systemapi
113561847f8eSopenharmony_ci   * @since 9
113661847f8eSopenharmony_ci   */
113761847f8eSopenharmony_ci  interface Album extends AbsAlbum {
113861847f8eSopenharmony_ci    /**
113961847f8eSopenharmony_ci     * Modify the meta data for the album
114061847f8eSopenharmony_ci     *
114161847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
114261847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - No value will be returned.
114361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
114461847f8eSopenharmony_ci     * @systemapi
114561847f8eSopenharmony_ci     * @since 9
114661847f8eSopenharmony_ci     */
114761847f8eSopenharmony_ci    commitModify(callback: AsyncCallback<void>): void;
114861847f8eSopenharmony_ci    /**
114961847f8eSopenharmony_ci     * Modify the meta data for the album
115061847f8eSopenharmony_ci     *
115161847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
115261847f8eSopenharmony_ci     * @returns { Promise<void> } Return promise
115361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
115461847f8eSopenharmony_ci     * @systemapi
115561847f8eSopenharmony_ci     * @since 9
115661847f8eSopenharmony_ci     */
115761847f8eSopenharmony_ci    commitModify(): Promise<void>;
115861847f8eSopenharmony_ci    /**
115961847f8eSopenharmony_ci     * Add PhotoAssets to the album.
116061847f8eSopenharmony_ci     *
116161847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
116261847f8eSopenharmony_ci     * @param { Array<FileAsset> } assets - Assets to add
116361847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Returns void
116461847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if PhotoAssets is invalid
116561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
116661847f8eSopenharmony_ci     * @systemapi
116761847f8eSopenharmony_ci     * @since 10
116861847f8eSopenharmony_ci     */
116961847f8eSopenharmony_ci    addPhotoAssets(assets: Array<FileAsset>, callback: AsyncCallback<void>): void;
117061847f8eSopenharmony_ci    /**
117161847f8eSopenharmony_ci     * Add PhotoAssets to the album.
117261847f8eSopenharmony_ci     *
117361847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
117461847f8eSopenharmony_ci     * @param { Array<FileAsset> } assets - Assets to add
117561847f8eSopenharmony_ci     * @returns { Promise<void> } Returns the promise
117661847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if PhotoAssets is invalid
117761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
117861847f8eSopenharmony_ci     * @systemapi
117961847f8eSopenharmony_ci     * @since 10
118061847f8eSopenharmony_ci     */
118161847f8eSopenharmony_ci    addPhotoAssets(assets: Array<FileAsset>): Promise<void>;
118261847f8eSopenharmony_ci    /**
118361847f8eSopenharmony_ci     * Remove PhotoAssets from the album.
118461847f8eSopenharmony_ci     *
118561847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
118661847f8eSopenharmony_ci     * @param { Array<FileAsset> } assets - Assets to remove
118761847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Returns void
118861847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if PhotoAssets is invalid
118961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
119061847f8eSopenharmony_ci     * @systemapi
119161847f8eSopenharmony_ci     * @since 10
119261847f8eSopenharmony_ci     */
119361847f8eSopenharmony_ci    removePhotoAssets(assets: Array<FileAsset>, callback: AsyncCallback<void>): void;
119461847f8eSopenharmony_ci    /**
119561847f8eSopenharmony_ci     * Remove PhotoAssets from the album.
119661847f8eSopenharmony_ci     *
119761847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
119861847f8eSopenharmony_ci     * @param { Array<FileAsset> } assets - Assets to remove
119961847f8eSopenharmony_ci     * @returns { Promise<void> } Returns the promise
120061847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if PhotoAssets is invalid
120161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
120261847f8eSopenharmony_ci     * @systemapi
120361847f8eSopenharmony_ci     * @since 10
120461847f8eSopenharmony_ci     */
120561847f8eSopenharmony_ci    removePhotoAssets(assets: Array<FileAsset>): Promise<void>;
120661847f8eSopenharmony_ci    /**
120761847f8eSopenharmony_ci     * Recover PhotoAssets from the trash album.
120861847f8eSopenharmony_ci     *
120961847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
121061847f8eSopenharmony_ci     * @param { Array<FileAsset> } assets - Assets to recover
121161847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Returns void
121261847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if PhotoAssets is invalid
121361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
121461847f8eSopenharmony_ci     * @systemapi
121561847f8eSopenharmony_ci     * @since 10
121661847f8eSopenharmony_ci     */
121761847f8eSopenharmony_ci    recoverPhotoAssets(assets: Array<FileAsset>, callback: AsyncCallback<void>): void;
121861847f8eSopenharmony_ci    /**
121961847f8eSopenharmony_ci     * Recover PhotoAssets from the trash album.
122061847f8eSopenharmony_ci     *
122161847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
122261847f8eSopenharmony_ci     * @param { Array<FileAsset> } assets - Assets to recover
122361847f8eSopenharmony_ci     * @returns { Promise<void> } Returns the promise
122461847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if PhotoAssets is invalid
122561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
122661847f8eSopenharmony_ci     * @systemapi
122761847f8eSopenharmony_ci     * @since 10
122861847f8eSopenharmony_ci     */
122961847f8eSopenharmony_ci    recoverPhotoAssets(assets: Array<FileAsset>): Promise<void>;
123061847f8eSopenharmony_ci    /**
123161847f8eSopenharmony_ci     * Delete PhotoAssets permanently from the trash album.
123261847f8eSopenharmony_ci     *
123361847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
123461847f8eSopenharmony_ci     * @param { Array<FileAsset> } assets - Assets to delete
123561847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Returns void
123661847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if PhotoAssets is invalid
123761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
123861847f8eSopenharmony_ci     * @systemapi
123961847f8eSopenharmony_ci     * @since 10
124061847f8eSopenharmony_ci     */
124161847f8eSopenharmony_ci    deletePhotoAssets(assets: Array<FileAsset>, callback: AsyncCallback<void>): void;
124261847f8eSopenharmony_ci    /**
124361847f8eSopenharmony_ci     * Delete PhotoAssets permanently from the trash album.
124461847f8eSopenharmony_ci     *
124561847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
124661847f8eSopenharmony_ci     * @param { Array<FileAsset> } assets - Assets to delete
124761847f8eSopenharmony_ci     * @returns { Promise<void> } Returns the promise
124861847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if PhotoAssets is invalid
124961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
125061847f8eSopenharmony_ci     * @systemapi
125161847f8eSopenharmony_ci     * @since 10
125261847f8eSopenharmony_ci     */
125361847f8eSopenharmony_ci    deletePhotoAssets(assets: Array<FileAsset>): Promise<void>;
125461847f8eSopenharmony_ci  }
125561847f8eSopenharmony_ci
125661847f8eSopenharmony_ci  /**
125761847f8eSopenharmony_ci   * Defines the UserFileManager class and provides functions to access the data in user file storage.
125861847f8eSopenharmony_ci   *
125961847f8eSopenharmony_ci   * @interface UserFileManager
126061847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
126161847f8eSopenharmony_ci   * @systemapi
126261847f8eSopenharmony_ci   * @since 9
126361847f8eSopenharmony_ci   */
126461847f8eSopenharmony_ci  interface UserFileManager {
126561847f8eSopenharmony_ci    /**
126661847f8eSopenharmony_ci     * Query photo, video assets
126761847f8eSopenharmony_ci     *
126861847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
126961847f8eSopenharmony_ci     * @param { FetchOptions } options - retrieval options.
127061847f8eSopenharmony_ci     * @param { AsyncCallback<FetchResult<FileAsset>> } callback - Callback return the FetchResult.
127161847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type options is not FetchOptions
127261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
127361847f8eSopenharmony_ci     * @systemapi
127461847f8eSopenharmony_ci     * @since 9
127561847f8eSopenharmony_ci     */
127661847f8eSopenharmony_ci    getPhotoAssets(options: FetchOptions, callback: AsyncCallback<FetchResult<FileAsset>>): void;
127761847f8eSopenharmony_ci    /**
127861847f8eSopenharmony_ci     * Query photo, video assets
127961847f8eSopenharmony_ci     *
128061847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
128161847f8eSopenharmony_ci     * @param { FetchOptions } options - Retrieval options.
128261847f8eSopenharmony_ci     * @returns { Promise<FetchResult<FileAsset>> } A promise instance used to return the files in the format of a FetchResult instance
128361847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type options is not FetchOptions
128461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
128561847f8eSopenharmony_ci     * @systemapi
128661847f8eSopenharmony_ci     * @since 9
128761847f8eSopenharmony_ci     */
128861847f8eSopenharmony_ci    getPhotoAssets(options: FetchOptions): Promise<FetchResult<FileAsset>>;
128961847f8eSopenharmony_ci    /**
129061847f8eSopenharmony_ci     * Create Photo Asset
129161847f8eSopenharmony_ci     *
129261847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
129361847f8eSopenharmony_ci     * @param { string } displayName - File name
129461847f8eSopenharmony_ci     * @param { string } albumUri - Asset will put into the album.
129561847f8eSopenharmony_ci     * @param { AsyncCallback<FileAsset> } callback - Callback used to return the FileAsset
129661847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type displayName or albumUri is not string
129761847f8eSopenharmony_ci     * @throws { BusinessError } 14000001 - if type displayName invalid
129861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
129961847f8eSopenharmony_ci     * @systemapi
130061847f8eSopenharmony_ci     * @since 9
130161847f8eSopenharmony_ci     */
130261847f8eSopenharmony_ci    createPhotoAsset(displayName: string, albumUri: string, callback: AsyncCallback<FileAsset>): void;
130361847f8eSopenharmony_ci    /**
130461847f8eSopenharmony_ci     * Create Photo Asset
130561847f8eSopenharmony_ci     *
130661847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
130761847f8eSopenharmony_ci     * @param { string } displayName - File name
130861847f8eSopenharmony_ci     * @param { AsyncCallback<FileAsset> } callback - Callback used to return the FileAsset
130961847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type displayName is not string
131061847f8eSopenharmony_ci     * @throws { BusinessError } 14000001 - if type displayName invalid
131161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
131261847f8eSopenharmony_ci     * @systemapi
131361847f8eSopenharmony_ci     * @since 9
131461847f8eSopenharmony_ci     */
131561847f8eSopenharmony_ci    createPhotoAsset(displayName: string, callback: AsyncCallback<FileAsset>): void;
131661847f8eSopenharmony_ci    /**
131761847f8eSopenharmony_ci     * Create Photo Asset
131861847f8eSopenharmony_ci     *
131961847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
132061847f8eSopenharmony_ci     * @param { string } displayName - File name
132161847f8eSopenharmony_ci     * @param { string } albumUri - Album uri is optional, PhotoAssets will put into the default album without albumUri
132261847f8eSopenharmony_ci     * @returns { Promise<FileAsset> } A Promise instance used to return the FileAsset
132361847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type displayName or albumUri is not string
132461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
132561847f8eSopenharmony_ci     * @systemapi
132661847f8eSopenharmony_ci     * @since 9
132761847f8eSopenharmony_ci     */
132861847f8eSopenharmony_ci    createPhotoAsset(displayName: string, albumUri?: string): Promise<FileAsset>;
132961847f8eSopenharmony_ci    /**
133061847f8eSopenharmony_ci     * Create Photo Asset
133161847f8eSopenharmony_ci     *
133261847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
133361847f8eSopenharmony_ci     * @param { string } displayName - File name
133461847f8eSopenharmony_ci     * @param { PhotoCreateOptions } createOption - Create operation
133561847f8eSopenharmony_ci     * @returns { Promise<FileAsset> } A Promise instance used to return the FileAsset
133661847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type displayName is not string
133761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
133861847f8eSopenharmony_ci     * @systemapi
133961847f8eSopenharmony_ci     * @since 9
134061847f8eSopenharmony_ci     */
134161847f8eSopenharmony_ci    createPhotoAsset(displayName: string, createOption: PhotoCreateOptions): Promise<FileAsset>;
134261847f8eSopenharmony_ci    /**
134361847f8eSopenharmony_ci     * Create Photo Asset
134461847f8eSopenharmony_ci     *
134561847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
134661847f8eSopenharmony_ci     * @param { string } displayName - File name
134761847f8eSopenharmony_ci     * @param { PhotoCreateOptions } createOption - Photo create operation
134861847f8eSopenharmony_ci     * @param { AsyncCallback<FileAsset> } callback - Callback used to return the FileAsset
134961847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type displayName is not string
135061847f8eSopenharmony_ci     * @throws { BusinessError } 14000001 - if type displayName invalid
135161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
135261847f8eSopenharmony_ci     * @systemapi
135361847f8eSopenharmony_ci     * @since 9
135461847f8eSopenharmony_ci     */
135561847f8eSopenharmony_ci    createPhotoAsset(displayName: string, createOption: PhotoCreateOptions, callback: AsyncCallback<FileAsset>): void;
135661847f8eSopenharmony_ci    /**
135761847f8eSopenharmony_ci     * Create Audio Asset
135861847f8eSopenharmony_ci     *
135961847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_AUDIO
136061847f8eSopenharmony_ci     * @param { string } displayName - File name
136161847f8eSopenharmony_ci     * @param { AsyncCallback<FileAsset> } callback - Callback used to return the FileAsset
136261847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type displayName is not string
136361847f8eSopenharmony_ci     * @throws { BusinessError } 14000001 - if type displayName invalid
136461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
136561847f8eSopenharmony_ci     * @systemapi
136661847f8eSopenharmony_ci     * @since 10
136761847f8eSopenharmony_ci     */
136861847f8eSopenharmony_ci    createAudioAsset(displayName: string, callback: AsyncCallback<FileAsset>): void;
136961847f8eSopenharmony_ci    /**
137061847f8eSopenharmony_ci     * Create Audio Asset
137161847f8eSopenharmony_ci     *
137261847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_AUDIO
137361847f8eSopenharmony_ci     * @param { string } displayName - File name
137461847f8eSopenharmony_ci     * @returns { Promise<FileAsset> } A Promise instance used to return the FileAsset
137561847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type displayName is not string
137661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
137761847f8eSopenharmony_ci     * @systemapi
137861847f8eSopenharmony_ci     * @since 10
137961847f8eSopenharmony_ci     */
138061847f8eSopenharmony_ci    createAudioAsset(displayName: string): Promise<FileAsset>;
138161847f8eSopenharmony_ci    /**
138261847f8eSopenharmony_ci     * Obtains albums based on the retrieval options. This method uses an asynchronous callback to return.
138361847f8eSopenharmony_ci     *
138461847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
138561847f8eSopenharmony_ci     * @param { AlbumFetchOptions } options - Retrieval options.
138661847f8eSopenharmony_ci     * @param { AsyncCallback<FetchResult<Album>> } callback - Callback used to return an album array.
138761847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type options is not AlbumFetchOptions
138861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
138961847f8eSopenharmony_ci     * @systemapi
139061847f8eSopenharmony_ci     * @since 9
139161847f8eSopenharmony_ci     */
139261847f8eSopenharmony_ci    getPhotoAlbums(options: AlbumFetchOptions, callback: AsyncCallback<FetchResult<Album>>): void;
139361847f8eSopenharmony_ci    /**
139461847f8eSopenharmony_ci     * Obtains albums based on the retrieval options. This method uses a promise to return the albums.
139561847f8eSopenharmony_ci     *
139661847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
139761847f8eSopenharmony_ci     * @param { AlbumFetchOptions } options - Retrieval options.
139861847f8eSopenharmony_ci     * @returns { Promise<FetchResult<Album>> } A Promise instance used to return an album array.
139961847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type options is not AlbumFetchOptions
140061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
140161847f8eSopenharmony_ci     * @systemapi
140261847f8eSopenharmony_ci     * @since 9
140361847f8eSopenharmony_ci     */
140461847f8eSopenharmony_ci    getPhotoAlbums(options: AlbumFetchOptions): Promise<FetchResult<Album>>;
140561847f8eSopenharmony_ci    /**
140661847f8eSopenharmony_ci     * Create a generic user album.
140761847f8eSopenharmony_ci     *
140861847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
140961847f8eSopenharmony_ci     * @param { string } name - Album name to be created.
141061847f8eSopenharmony_ci     * @param { AsyncCallback<Album> } callback - Returns the instance of newly created Album
141161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
141261847f8eSopenharmony_ci     * @systemapi
141361847f8eSopenharmony_ci     * @since 10
141461847f8eSopenharmony_ci     */
141561847f8eSopenharmony_ci    createAlbum(name: string, callback: AsyncCallback<Album>): void;
141661847f8eSopenharmony_ci    /**
141761847f8eSopenharmony_ci     * Create a generic user album.
141861847f8eSopenharmony_ci     *
141961847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
142061847f8eSopenharmony_ci     * @param { string } name - Album name to be created.
142161847f8eSopenharmony_ci     * @returns { Promise<Album> } Returns the instance of newly created Album
142261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
142361847f8eSopenharmony_ci     * @systemapi
142461847f8eSopenharmony_ci     * @since 10
142561847f8eSopenharmony_ci     */
142661847f8eSopenharmony_ci    createAlbum(name: string): Promise<Album>;
142761847f8eSopenharmony_ci    /**
142861847f8eSopenharmony_ci     * Delete generic user-created albums.
142961847f8eSopenharmony_ci     *
143061847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
143161847f8eSopenharmony_ci     * @param { Array<Album> } albums - Specify which album to delete
143261847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Returns void
143361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
143461847f8eSopenharmony_ci     * @systemapi
143561847f8eSopenharmony_ci     * @since 10
143661847f8eSopenharmony_ci     */
143761847f8eSopenharmony_ci    deleteAlbums(albums: Array<Album>, callback: AsyncCallback<void>): void;
143861847f8eSopenharmony_ci    /**
143961847f8eSopenharmony_ci     * Delete generic user-created albums.
144061847f8eSopenharmony_ci     *
144161847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
144261847f8eSopenharmony_ci     * @param { Array<Album> } albums - Specify which album to delete
144361847f8eSopenharmony_ci     * @returns { Promise<void> } Returns the promise
144461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
144561847f8eSopenharmony_ci     * @systemapi
144661847f8eSopenharmony_ci     * @since 10
144761847f8eSopenharmony_ci     */
144861847f8eSopenharmony_ci    deleteAlbums(albums: Array<Album>): Promise<void>;
144961847f8eSopenharmony_ci    /**
145061847f8eSopenharmony_ci     * Obtains albums based on the retrieval options and album types.
145161847f8eSopenharmony_ci     *
145261847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
145361847f8eSopenharmony_ci     * @param { AlbumType } type - Album type.
145461847f8eSopenharmony_ci     * @param { AlbumSubType } subType - Album subtype.
145561847f8eSopenharmony_ci     * @param { FetchOptions } options - options to fetch albums
145661847f8eSopenharmony_ci     * @param { AsyncCallback<FetchResult<Album>> } callback - Returns the fetch result of the albums
145761847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type options is not FetchOption
145861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
145961847f8eSopenharmony_ci     * @systemapi
146061847f8eSopenharmony_ci     * @since 10
146161847f8eSopenharmony_ci     */
146261847f8eSopenharmony_ci    getAlbums(
146361847f8eSopenharmony_ci      type: AlbumType,
146461847f8eSopenharmony_ci      subType: AlbumSubType,
146561847f8eSopenharmony_ci      options: FetchOptions,
146661847f8eSopenharmony_ci      callback: AsyncCallback<FetchResult<Album>>
146761847f8eSopenharmony_ci    ): void;
146861847f8eSopenharmony_ci    /**
146961847f8eSopenharmony_ci     * Obtains albums based on the album types.
147061847f8eSopenharmony_ci     *
147161847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
147261847f8eSopenharmony_ci     * @param { AlbumType } type - Album type.
147361847f8eSopenharmony_ci     * @param { AlbumSubType } subType - Album subtype.
147461847f8eSopenharmony_ci     * @param { AsyncCallback<FetchResult<Album>> } callback - Returns the fetch result of the albums
147561847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type options is not FetchOption
147661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
147761847f8eSopenharmony_ci     * @systemapi
147861847f8eSopenharmony_ci     * @since 10
147961847f8eSopenharmony_ci     */
148061847f8eSopenharmony_ci    getAlbums(type: AlbumType, subType: AlbumSubType, callback: AsyncCallback<FetchResult<Album>>): void;
148161847f8eSopenharmony_ci    /**
148261847f8eSopenharmony_ci     * Obtains albums based on the retrieval options and album types.
148361847f8eSopenharmony_ci     *
148461847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
148561847f8eSopenharmony_ci     * @param { AlbumType } type - Album type.
148661847f8eSopenharmony_ci     * @param { AlbumSubType } subType - Album subtype.
148761847f8eSopenharmony_ci     * @param { FetchOptions } [options] -options to fetch albums
148861847f8eSopenharmony_ci     * @returns { Promise<FetchResult<Album>> } - Returns the fetch result of the albums
148961847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type options is not FetchOption
149061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
149161847f8eSopenharmony_ci     * @systemapi
149261847f8eSopenharmony_ci     * @since 10
149361847f8eSopenharmony_ci     */
149461847f8eSopenharmony_ci    getAlbums(type: AlbumType, subType: AlbumSubType, options?: FetchOptions): Promise<FetchResult<Album>>;
149561847f8eSopenharmony_ci    /**
149661847f8eSopenharmony_ci     * Obtains system private albums based on the private album type. This method uses an asynchronous callback to return.
149761847f8eSopenharmony_ci     *
149861847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
149961847f8eSopenharmony_ci     * @param { PrivateAlbumType } type - Private album type
150061847f8eSopenharmony_ci     * @param { AsyncCallback<FetchResult<PrivateAlbum>> } callback - Used to return a private album FetchResult.
150161847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type type is not PrivateAlbumType
150261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
150361847f8eSopenharmony_ci     * @systemapi
150461847f8eSopenharmony_ci     * @since 9
150561847f8eSopenharmony_ci     */
150661847f8eSopenharmony_ci    getPrivateAlbum(type: PrivateAlbumType, callback: AsyncCallback<FetchResult<PrivateAlbum>>): void;
150761847f8eSopenharmony_ci    /**
150861847f8eSopenharmony_ci     * Obtains system private albums based on the private album type. This method uses a promise to return.
150961847f8eSopenharmony_ci     *
151061847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
151161847f8eSopenharmony_ci     * @param { PrivateAlbumType } type - Private album type
151261847f8eSopenharmony_ci     * @returns { Promise<FetchResult<PrivateAlbum>> } A Promise instance used to return a private album FetchResult.
151361847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type type is not PrivateAlbumType
151461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
151561847f8eSopenharmony_ci     * @systemapi
151661847f8eSopenharmony_ci     * @since 9
151761847f8eSopenharmony_ci     */
151861847f8eSopenharmony_ci    getPrivateAlbum(type: PrivateAlbumType): Promise<FetchResult<PrivateAlbum>>;
151961847f8eSopenharmony_ci    /**
152061847f8eSopenharmony_ci     * Query audio assets
152161847f8eSopenharmony_ci     *
152261847f8eSopenharmony_ci     * @permission ohos.permission.READ_AUDIO
152361847f8eSopenharmony_ci     * @param { FetchOptions } options - Retrieval options.
152461847f8eSopenharmony_ci     * @param { AsyncCallback<FetchResult<FileAsset>> } callback - Callback return the FetchResult.
152561847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type options is not FetchOptions
152661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
152761847f8eSopenharmony_ci     * @systemapi
152861847f8eSopenharmony_ci     * @since 9
152961847f8eSopenharmony_ci     */
153061847f8eSopenharmony_ci    getAudioAssets(options: FetchOptions, callback: AsyncCallback<FetchResult<FileAsset>>): void;
153161847f8eSopenharmony_ci    /**
153261847f8eSopenharmony_ci     * Query audio assets
153361847f8eSopenharmony_ci     *
153461847f8eSopenharmony_ci     * @permission ohos.permission.READ_AUDIO
153561847f8eSopenharmony_ci     * @param { FetchOptions } options - Retrieval options.
153661847f8eSopenharmony_ci     * @returns { Promise<FetchResult<FileAsset>> } A promise instance used to return the files in the format of a FetchResult instance
153761847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type options is not FetchOptions
153861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
153961847f8eSopenharmony_ci     * @systemapi
154061847f8eSopenharmony_ci     * @since 9
154161847f8eSopenharmony_ci     */
154261847f8eSopenharmony_ci    getAudioAssets(options: FetchOptions): Promise<FetchResult<FileAsset>>;
154361847f8eSopenharmony_ci    /**
154461847f8eSopenharmony_ci     * Delete Asset
154561847f8eSopenharmony_ci     *
154661847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO and ohos.permission.WRITE_IMAGEVIDEO or ohos.permission.READ_AUDIO and ohos.permission.WRITE_AUDIO
154761847f8eSopenharmony_ci     * @param { string } uri - Uri of FileAsset
154861847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - No value returned
154961847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type uri is not string
155061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
155161847f8eSopenharmony_ci     * @systemapi
155261847f8eSopenharmony_ci     * @since 9
155361847f8eSopenharmony_ci     */
155461847f8eSopenharmony_ci    delete(uri: string, callback: AsyncCallback<void>): void;
155561847f8eSopenharmony_ci    /**
155661847f8eSopenharmony_ci     * Delete Asset
155761847f8eSopenharmony_ci     *
155861847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO and ohos.permission.WRITE_IMAGEVIDEO or ohos.permission.READ_AUDIO and ohos.permission.WRITE_AUDIO
155961847f8eSopenharmony_ci     * @param { string } uri - Uri of FileAsset
156061847f8eSopenharmony_ci     * @returns { Promise<void> } A Promise instance, no value returned
156161847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if type uri is not string
156261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
156361847f8eSopenharmony_ci     * @systemapi
156461847f8eSopenharmony_ci     * @since 9
156561847f8eSopenharmony_ci     */
156661847f8eSopenharmony_ci    delete(uri: string): Promise<void>;
156761847f8eSopenharmony_ci    /**
156861847f8eSopenharmony_ci     * Get the index of the asset in the album
156961847f8eSopenharmony_ci     *
157061847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
157161847f8eSopenharmony_ci     * @param { string } photoUri - The photo asset uri.
157261847f8eSopenharmony_ci     * @param { string } albumUri - The album uri.
157361847f8eSopenharmony_ci     * @param { FetchOptions } options - fetch options
157461847f8eSopenharmony_ci     * @param { AsyncCallback<number> } callback - Returns the index of the asset in the album
157561847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
157661847f8eSopenharmony_ci     * <br>2. Incorrect parameter types; 3. Parameter verification failed.
157761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
157861847f8eSopenharmony_ci     * @systemapi
157961847f8eSopenharmony_ci     * @since 10
158061847f8eSopenharmony_ci     */
158161847f8eSopenharmony_ci    getPhotoIndex(photoUri: string, albumUri: string, options: FetchOptions, callback: AsyncCallback<number>): void;
158261847f8eSopenharmony_ci    /**
158361847f8eSopenharmony_ci     * Get the index of the asset in the album
158461847f8eSopenharmony_ci     *
158561847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
158661847f8eSopenharmony_ci     * @param { string } photoUri - The photo asset uri.
158761847f8eSopenharmony_ci     * @param { string } albumUri - The album uri.
158861847f8eSopenharmony_ci     * @param { FetchOptions } options - fetch options
158961847f8eSopenharmony_ci     * @returns { Promise<number> } - Returns the index of the asset in the album
159061847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
159161847f8eSopenharmony_ci     * <br>2. Incorrect parameter types; 3. Parameter verification failed.
159261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
159361847f8eSopenharmony_ci     * @systemapi
159461847f8eSopenharmony_ci     * @since 10
159561847f8eSopenharmony_ci     */
159661847f8eSopenharmony_ci    getPhotoIndex(photoUri: string, albumUri: string, options: FetchOptions): Promise<number>;
159761847f8eSopenharmony_ci    /**
159861847f8eSopenharmony_ci     * Turn on monitor the data changes
159961847f8eSopenharmony_ci     *
160061847f8eSopenharmony_ci     * @param { ChangeEvent } type - One of 'deviceChange','albumChange','imageChange','audioChange','videoChange','remoteFileChange'
160161847f8eSopenharmony_ci     * @param { Callback<void> } callback - No value returned
160261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
160361847f8eSopenharmony_ci     * @systemapi
160461847f8eSopenharmony_ci     * @since 9
160561847f8eSopenharmony_ci     */
160661847f8eSopenharmony_ci    on(type: ChangeEvent, callback: Callback<void>): void;
160761847f8eSopenharmony_ci    /**
160861847f8eSopenharmony_ci     * Turn off monitor the data changes
160961847f8eSopenharmony_ci     *
161061847f8eSopenharmony_ci     * @param { ChangeEvent } type - One of 'deviceChange','albumChange','imageChange','audioChange','videoChange','remoteFileChange'
161161847f8eSopenharmony_ci     * @param { Callback<void> } callback - No value returned
161261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
161361847f8eSopenharmony_ci     * @systemapi
161461847f8eSopenharmony_ci     * @since 9
161561847f8eSopenharmony_ci     */
161661847f8eSopenharmony_ci    off(type: ChangeEvent, callback?: Callback<void>): void;
161761847f8eSopenharmony_ci    /**
161861847f8eSopenharmony_ci     * Turn on monitor for the specified uri.
161961847f8eSopenharmony_ci     *
162061847f8eSopenharmony_ci     * @param { string } uri - FileAsset's uri, album's uri or DefaultChangeUri
162161847f8eSopenharmony_ci     * @param { boolean } forSubUri - Monitor the sub uri.
162261847f8eSopenharmony_ci     * @param { Callback<ChangeData> } callback - callback function, return the ChangeData to be monitored
162361847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if parameter is invalid
162461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
162561847f8eSopenharmony_ci     * @systemapi
162661847f8eSopenharmony_ci     * @since 10
162761847f8eSopenharmony_ci     */
162861847f8eSopenharmony_ci    on(uri: string, forSubUri: boolean, callback: Callback<ChangeData>): void;
162961847f8eSopenharmony_ci    /**
163061847f8eSopenharmony_ci     * Turn off monitor for the specified uri.
163161847f8eSopenharmony_ci     *
163261847f8eSopenharmony_ci     * @param { string } uri - FileAsset's uri, Album's uri or DefaultChangeUri value
163361847f8eSopenharmony_ci     * @param { Callback<ChangeData> } [callback] - Remove specified callback from monitoring to a specified uri
163461847f8eSopenharmony_ci     * @throws { BusinessError } 13900020 - if parameter is invalid
163561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
163661847f8eSopenharmony_ci     * @systemapi
163761847f8eSopenharmony_ci     * @since 10
163861847f8eSopenharmony_ci     */
163961847f8eSopenharmony_ci    off(uri: string, callback?: Callback<ChangeData>): void;
164061847f8eSopenharmony_ci    /**
164161847f8eSopenharmony_ci     * Get Active Peer device information
164261847f8eSopenharmony_ci     *
164361847f8eSopenharmony_ci     * @param { AsyncCallback<Array<PeerInfo>> } callback - Callback return the list of the active peer devices' information
164461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.DistributedCore
164561847f8eSopenharmony_ci     * @systemapi
164661847f8eSopenharmony_ci     * @since 9
164761847f8eSopenharmony_ci     */
164861847f8eSopenharmony_ci    getActivePeers(callback: AsyncCallback<Array<PeerInfo>>): void;
164961847f8eSopenharmony_ci    /**
165061847f8eSopenharmony_ci     * Get Active Peer device information
165161847f8eSopenharmony_ci     *
165261847f8eSopenharmony_ci     * @returns { Promise<Array<PeerInfo>> } Promise used to return the list of the active peer devices' information
165361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.DistributedCore
165461847f8eSopenharmony_ci     * @systemapi
165561847f8eSopenharmony_ci     * @since 9
165661847f8eSopenharmony_ci     */
165761847f8eSopenharmony_ci    getActivePeers(): Promise<Array<PeerInfo>>;
165861847f8eSopenharmony_ci    /**
165961847f8eSopenharmony_ci     * Get all the peer devices' information
166061847f8eSopenharmony_ci     *
166161847f8eSopenharmony_ci     * @param { AsyncCallback<Array<PeerInfo>> } callback - Callback return the list of the all the peer devices' information
166261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.DistributedCore
166361847f8eSopenharmony_ci     * @systemapi
166461847f8eSopenharmony_ci     * @since 9
166561847f8eSopenharmony_ci     */
166661847f8eSopenharmony_ci    getAllPeers(callback: AsyncCallback<Array<PeerInfo>>): void;
166761847f8eSopenharmony_ci    /**
166861847f8eSopenharmony_ci     * Get all the peer devices' information
166961847f8eSopenharmony_ci     *
167061847f8eSopenharmony_ci     * @returns { Promise<Array<PeerInfo>> } Promise used to return the list of the all the peer devices' information
167161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.DistributedCore
167261847f8eSopenharmony_ci     * @systemapi
167361847f8eSopenharmony_ci     * @since 9
167461847f8eSopenharmony_ci     */
167561847f8eSopenharmony_ci    getAllPeers(): Promise<Array<PeerInfo>>;
167661847f8eSopenharmony_ci    /**
167761847f8eSopenharmony_ci     * Release UserFileManager instance
167861847f8eSopenharmony_ci     *
167961847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - No value returned
168061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
168161847f8eSopenharmony_ci     * @systemapi
168261847f8eSopenharmony_ci     * @since 9
168361847f8eSopenharmony_ci     */
168461847f8eSopenharmony_ci    release(callback: AsyncCallback<void>): void;
168561847f8eSopenharmony_ci    /**
168661847f8eSopenharmony_ci     * Release UserFileManager instance
168761847f8eSopenharmony_ci     *
168861847f8eSopenharmony_ci     * @returns { Promise<void> } Return promise
168961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
169061847f8eSopenharmony_ci     * @systemapi
169161847f8eSopenharmony_ci     * @since 9
169261847f8eSopenharmony_ci     */
169361847f8eSopenharmony_ci    release(): Promise<void>;
169461847f8eSopenharmony_ci  }
169561847f8eSopenharmony_ci
169661847f8eSopenharmony_ci  /**
169761847f8eSopenharmony_ci   * NotifyType subtype
169861847f8eSopenharmony_ci   *
169961847f8eSopenharmony_ci   * @enum { number } NotifyType subtype
170061847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
170161847f8eSopenharmony_ci   * @systemapi
170261847f8eSopenharmony_ci   * @since 10
170361847f8eSopenharmony_ci   */
170461847f8eSopenharmony_ci  enum NotifyType {
170561847f8eSopenharmony_ci    /**
170661847f8eSopenharmony_ci     * Type for add notification of the FileAsset or Album
170761847f8eSopenharmony_ci     *
170861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
170961847f8eSopenharmony_ci     * @systemapi
171061847f8eSopenharmony_ci     * @since 10
171161847f8eSopenharmony_ci     */
171261847f8eSopenharmony_ci    NOTIFY_ADD,
171361847f8eSopenharmony_ci    /**
171461847f8eSopenharmony_ci     * Type for update notification of the FileAsset or Album
171561847f8eSopenharmony_ci     *
171661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
171761847f8eSopenharmony_ci     * @systemapi
171861847f8eSopenharmony_ci     * @since 10
171961847f8eSopenharmony_ci     */
172061847f8eSopenharmony_ci    NOTIFY_UPDATE,
172161847f8eSopenharmony_ci    /**
172261847f8eSopenharmony_ci     * Type for remove notification of the FileAsset or Album
172361847f8eSopenharmony_ci     *
172461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
172561847f8eSopenharmony_ci     * @systemapi
172661847f8eSopenharmony_ci     * @since 10
172761847f8eSopenharmony_ci     */
172861847f8eSopenharmony_ci    NOTIFY_REMOVE,
172961847f8eSopenharmony_ci    /**
173061847f8eSopenharmony_ci     * Type for notification of the FileAsset added at an Album
173161847f8eSopenharmony_ci     *
173261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
173361847f8eSopenharmony_ci     * @systemapi
173461847f8eSopenharmony_ci     * @since 10
173561847f8eSopenharmony_ci     */
173661847f8eSopenharmony_ci    NOTIFY_ALBUM_ADD_ASSET,
173761847f8eSopenharmony_ci    /**
173861847f8eSopenharmony_ci     * Type for notification of the FileAsset removed at an Album
173961847f8eSopenharmony_ci     *
174061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
174161847f8eSopenharmony_ci     * @systemapi
174261847f8eSopenharmony_ci     * @since 10
174361847f8eSopenharmony_ci     */
174461847f8eSopenharmony_ci    NOTIFY_ALBUM_REMOVE_ASSET
174561847f8eSopenharmony_ci  }
174661847f8eSopenharmony_ci
174761847f8eSopenharmony_ci  /**
174861847f8eSopenharmony_ci   * DefaultChangeUri subtype
174961847f8eSopenharmony_ci   *
175061847f8eSopenharmony_ci   * @enum { string } DefaultChangeUri subtype
175161847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
175261847f8eSopenharmony_ci   * @systemapi
175361847f8eSopenharmony_ci   * @since 10
175461847f8eSopenharmony_ci   */
175561847f8eSopenharmony_ci  enum DefaultChangeUri {
175661847f8eSopenharmony_ci    /**
175761847f8eSopenharmony_ci     * Uri for default PhotoAsset, use with forDescendant{true}, will recieve all PhotoAsset's change notifications
175861847f8eSopenharmony_ci     *
175961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
176061847f8eSopenharmony_ci     * @systemapi
176161847f8eSopenharmony_ci     * @since 10
176261847f8eSopenharmony_ci     */
176361847f8eSopenharmony_ci    DEFAULT_PHOTO_URI,
176461847f8eSopenharmony_ci    /**
176561847f8eSopenharmony_ci     * Uri for default Album, use with forDescendant{true}, will recieve all Album's change notifications
176661847f8eSopenharmony_ci     *
176761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
176861847f8eSopenharmony_ci     * @systemapi
176961847f8eSopenharmony_ci     * @since 10
177061847f8eSopenharmony_ci     */
177161847f8eSopenharmony_ci    DEFAULT_ALBUM_URI,
177261847f8eSopenharmony_ci    /**
177361847f8eSopenharmony_ci     * Uri for default AudioAsset, use with forDescendant{true}, will recieve all AudioAsset's change notifications
177461847f8eSopenharmony_ci     *
177561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
177661847f8eSopenharmony_ci     * @systemapi
177761847f8eSopenharmony_ci     * @since 10
177861847f8eSopenharmony_ci     */
177961847f8eSopenharmony_ci    DEFAULT_AUDIO_URI
178061847f8eSopenharmony_ci  }
178161847f8eSopenharmony_ci
178261847f8eSopenharmony_ci  /**
178361847f8eSopenharmony_ci   * the value of the monitor callback function
178461847f8eSopenharmony_ci   *
178561847f8eSopenharmony_ci   * @interface ChangeData
178661847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
178761847f8eSopenharmony_ci   * @systemapi
178861847f8eSopenharmony_ci   * @since 10
178961847f8eSopenharmony_ci   */
179061847f8eSopenharmony_ci  interface ChangeData {
179161847f8eSopenharmony_ci    /**
179261847f8eSopenharmony_ci     * the NotifyType of ChangeData
179361847f8eSopenharmony_ci     * 
179461847f8eSopenharmony_ci     * @type { NotifyType }
179561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
179661847f8eSopenharmony_ci     * @systemapi
179761847f8eSopenharmony_ci     * @since 10
179861847f8eSopenharmony_ci     */
179961847f8eSopenharmony_ci    type: NotifyType;
180061847f8eSopenharmony_ci    /**
180161847f8eSopenharmony_ci     * all uris of the same NotifyType, could be FileAssets' or Albums'
180261847f8eSopenharmony_ci     *
180361847f8eSopenharmony_ci     * @type { Array<string> }
180461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
180561847f8eSopenharmony_ci     * @systemapi
180661847f8eSopenharmony_ci     * @since 10
180761847f8eSopenharmony_ci     */
180861847f8eSopenharmony_ci    uris: Array<string>;
180961847f8eSopenharmony_ci    /**
181061847f8eSopenharmony_ci     * change details of the Album's FileAssets when uris is the Album's uri type
181161847f8eSopenharmony_ci     *
181261847f8eSopenharmony_ci     * @type { Array<string> }
181361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
181461847f8eSopenharmony_ci     * @systemapi
181561847f8eSopenharmony_ci     * @since 10
181661847f8eSopenharmony_ci     */
181761847f8eSopenharmony_ci    subUris: Array<string>;
181861847f8eSopenharmony_ci  }
181961847f8eSopenharmony_ci
182061847f8eSopenharmony_ci  /**
182161847f8eSopenharmony_ci   * Peer devices' information
182261847f8eSopenharmony_ci   *
182361847f8eSopenharmony_ci   * @interface PeerInfo
182461847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.DistributedCore
182561847f8eSopenharmony_ci   * @systemapi
182661847f8eSopenharmony_ci   * @since 9
182761847f8eSopenharmony_ci   */
182861847f8eSopenharmony_ci  interface PeerInfo {
182961847f8eSopenharmony_ci    /**
183061847f8eSopenharmony_ci     * Peer device name
183161847f8eSopenharmony_ci     *
183261847f8eSopenharmony_ci     * @type { string }
183361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.DistributedCore
183461847f8eSopenharmony_ci     * @systemapi
183561847f8eSopenharmony_ci     * @since 9
183661847f8eSopenharmony_ci     */
183761847f8eSopenharmony_ci    readonly deviceName: string;
183861847f8eSopenharmony_ci    /**
183961847f8eSopenharmony_ci     * Peer device network id
184061847f8eSopenharmony_ci     *
184161847f8eSopenharmony_ci     * @type { string }
184261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.DistributedCore
184361847f8eSopenharmony_ci     * @systemapi
184461847f8eSopenharmony_ci     * @since 9
184561847f8eSopenharmony_ci     */
184661847f8eSopenharmony_ci    readonly networkId: string;
184761847f8eSopenharmony_ci    /**
184861847f8eSopenharmony_ci     * Peer device online status
184961847f8eSopenharmony_ci     *
185061847f8eSopenharmony_ci     * @type { boolean }
185161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.DistributedCore
185261847f8eSopenharmony_ci     * @systemapi
185361847f8eSopenharmony_ci     * @since 9
185461847f8eSopenharmony_ci     */
185561847f8eSopenharmony_ci    readonly isOnline: boolean;
185661847f8eSopenharmony_ci  }
185761847f8eSopenharmony_ci
185861847f8eSopenharmony_ci  /**
185961847f8eSopenharmony_ci   * Private album type
186061847f8eSopenharmony_ci   *
186161847f8eSopenharmony_ci   * @enum { string } PrivateAlbumType
186261847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
186361847f8eSopenharmony_ci   * @systemapi
186461847f8eSopenharmony_ci   * @since 9
186561847f8eSopenharmony_ci   */
186661847f8eSopenharmony_ci  enum PrivateAlbumType {
186761847f8eSopenharmony_ci    /**
186861847f8eSopenharmony_ci     * System Private Album: Favorite album
186961847f8eSopenharmony_ci     *
187061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
187161847f8eSopenharmony_ci     * @systemapi
187261847f8eSopenharmony_ci     * @since 9
187361847f8eSopenharmony_ci     */
187461847f8eSopenharmony_ci    TYPE_FAVORITE,
187561847f8eSopenharmony_ci    /**
187661847f8eSopenharmony_ci     * System Private Album: Trash album
187761847f8eSopenharmony_ci     *
187861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
187961847f8eSopenharmony_ci     * @systemapi
188061847f8eSopenharmony_ci     * @since 9
188161847f8eSopenharmony_ci     */
188261847f8eSopenharmony_ci    TYPE_TRASH
188361847f8eSopenharmony_ci  }
188461847f8eSopenharmony_ci
188561847f8eSopenharmony_ci  /**
188661847f8eSopenharmony_ci   * Defines the private album
188761847f8eSopenharmony_ci   *
188861847f8eSopenharmony_ci   * @interface PrivateAlbum
188961847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileManager.Core
189061847f8eSopenharmony_ci   * @systemapi
189161847f8eSopenharmony_ci   * @since 9
189261847f8eSopenharmony_ci   */
189361847f8eSopenharmony_ci  interface PrivateAlbum extends AbsAlbum {
189461847f8eSopenharmony_ci    /**
189561847f8eSopenharmony_ci     * Delete asset permanently from Trash bin, only support the Trash album
189661847f8eSopenharmony_ci     *
189761847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO and ohos.permission.WRITE_IMAGEVIDEO or ohos.permission.READ_AUDIO and ohos.permission.WRITE_AUDIO
189861847f8eSopenharmony_ci     * @param { string } uri - uri of asset
189961847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - No value returned
190061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
190161847f8eSopenharmony_ci     * @systemapi
190261847f8eSopenharmony_ci     * @since 9
190361847f8eSopenharmony_ci     */
190461847f8eSopenharmony_ci    delete(uri: string, callback: AsyncCallback<void>): void;
190561847f8eSopenharmony_ci    /**
190661847f8eSopenharmony_ci     * Delete asset permanently from Trash bin, only support the Trash album
190761847f8eSopenharmony_ci     *
190861847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO and ohos.permission.WRITE_IMAGEVIDEO or ohos.permission.READ_AUDIO and ohos.permission.WRITE_AUDIO
190961847f8eSopenharmony_ci     * @param { string } uri - Uri of asset
191061847f8eSopenharmony_ci     * @returns { Promise<void> } A Promise instance, no value returned
191161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
191261847f8eSopenharmony_ci     * @systemapi
191361847f8eSopenharmony_ci     * @since 9
191461847f8eSopenharmony_ci     */
191561847f8eSopenharmony_ci    delete(uri: string): Promise<void>;
191661847f8eSopenharmony_ci    /**
191761847f8eSopenharmony_ci     * Recover asset from Trash bin, only support the Trash album
191861847f8eSopenharmony_ci     *
191961847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO and ohos.permission.WRITE_IMAGEVIDEO or ohos.permission.READ_AUDIO and ohos.permission.WRITE_AUDIO
192061847f8eSopenharmony_ci     * @param { string } uri - Uri of asset
192161847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - No value returned
192261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
192361847f8eSopenharmony_ci     * @systemapi
192461847f8eSopenharmony_ci     * @since 9
192561847f8eSopenharmony_ci     */
192661847f8eSopenharmony_ci    recover(uri: string, callback: AsyncCallback<void>): void;
192761847f8eSopenharmony_ci    /**
192861847f8eSopenharmony_ci     * Recover asset from Trash bin, only support the Trash album
192961847f8eSopenharmony_ci     *
193061847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO and ohos.permission.WRITE_IMAGEVIDEO or ohos.permission.READ_AUDIO and ohos.permission.WRITE_AUDIO
193161847f8eSopenharmony_ci     * @param { string } uri - Uri of asset
193261847f8eSopenharmony_ci     * @returns { Promise<void> } A Promise instance, no value returned
193361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileManager.Core
193461847f8eSopenharmony_ci     * @systemapi
193561847f8eSopenharmony_ci     * @since 9
193661847f8eSopenharmony_ci     */
193761847f8eSopenharmony_ci    recover(uri: string): Promise<void>;
193861847f8eSopenharmony_ci  }
193961847f8eSopenharmony_ci}
194061847f8eSopenharmony_ci
194161847f8eSopenharmony_ciexport default userFileManager;
1942