161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (C) 2024 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 Helper functions to access image and video assets
1861847f8eSopenharmony_ci * @kit MediaLibraryKit
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ciimport type Context from './application/Context';
2261847f8eSopenharmony_ciimport type image from './@ohos.multimedia.image';
2361847f8eSopenharmony_ciimport lang from '../arkts/@arkts.lang';
2461847f8eSopenharmony_ciimport photoAccessHelper from './@ohos.file.photoAccessHelper';
2561847f8eSopenharmony_ci
2661847f8eSopenharmony_ci/**
2761847f8eSopenharmony_ci * Helper functions to access image and video assets
2861847f8eSopenharmony_ci *
2961847f8eSopenharmony_ci * @namespace sendablePhotoAccessHelper
3061847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
3161847f8eSopenharmony_ci * @atomicservice
3261847f8eSopenharmony_ci * @since 12
3361847f8eSopenharmony_ci */
3461847f8eSopenharmony_cideclare namespace sendablePhotoAccessHelper {
3561847f8eSopenharmony_ci  /**
3661847f8eSopenharmony_ci   * Returns an instance of PhotoAccessHelper
3761847f8eSopenharmony_ci   *
3861847f8eSopenharmony_ci   * @param { Context } context - Hap context information
3961847f8eSopenharmony_ci   * @returns { PhotoAccessHelper } Instance of PhotoAccessHelper
4061847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
4161847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
4261847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
4361847f8eSopenharmony_ci   * @StageModelOnly
4461847f8eSopenharmony_ci   * @atomicservice
4561847f8eSopenharmony_ci   * @since 12
4661847f8eSopenharmony_ci   */
4761847f8eSopenharmony_ci  function getPhotoAccessHelper(context: Context): PhotoAccessHelper;
4861847f8eSopenharmony_ci
4961847f8eSopenharmony_ci  /**
5061847f8eSopenharmony_ci   * Enumeration of different types of photos
5161847f8eSopenharmony_ci   *
5261847f8eSopenharmony_ci   * @enum { number } PhotoType
5361847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
5461847f8eSopenharmony_ci   * @atomicservice
5561847f8eSopenharmony_ci   * @since 12
5661847f8eSopenharmony_ci   */
5761847f8eSopenharmony_ci  const enum PhotoType {
5861847f8eSopenharmony_ci    /**
5961847f8eSopenharmony_ci     * Image asset
6061847f8eSopenharmony_ci     *
6161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
6261847f8eSopenharmony_ci     * @atomicservice
6361847f8eSopenharmony_ci     * @since 12
6461847f8eSopenharmony_ci     */
6561847f8eSopenharmony_ci    IMAGE = 1,
6661847f8eSopenharmony_ci    /**
6761847f8eSopenharmony_ci     * Video asset
6861847f8eSopenharmony_ci     *
6961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
7061847f8eSopenharmony_ci     * @atomicservice
7161847f8eSopenharmony_ci     * @since 12
7261847f8eSopenharmony_ci     */
7361847f8eSopenharmony_ci    VIDEO
7461847f8eSopenharmony_ci  }
7561847f8eSopenharmony_ci
7661847f8eSopenharmony_ci  /**
7761847f8eSopenharmony_ci   * Defines the photo asset
7861847f8eSopenharmony_ci   *
7961847f8eSopenharmony_ci   * @interface PhotoAsset
8061847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
8161847f8eSopenharmony_ci   * @atomicservice
8261847f8eSopenharmony_ci   * @since 12
8361847f8eSopenharmony_ci   */
8461847f8eSopenharmony_ci  interface PhotoAsset extends lang.ISendable {
8561847f8eSopenharmony_ci    /**
8661847f8eSopenharmony_ci     * uri of the asset.
8761847f8eSopenharmony_ci     *
8861847f8eSopenharmony_ci     * @type { string }
8961847f8eSopenharmony_ci     * @readonly
9061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
9161847f8eSopenharmony_ci     * @atomicservice
9261847f8eSopenharmony_ci     * @since 12
9361847f8eSopenharmony_ci     */
9461847f8eSopenharmony_ci    readonly uri: string;
9561847f8eSopenharmony_ci    /**
9661847f8eSopenharmony_ci     * Photo type, image or video
9761847f8eSopenharmony_ci     *
9861847f8eSopenharmony_ci     * @type { PhotoType }
9961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
10061847f8eSopenharmony_ci     * @since 12
10161847f8eSopenharmony_ci     */
10261847f8eSopenharmony_ci    readonly photoType: PhotoType;
10361847f8eSopenharmony_ci    /**
10461847f8eSopenharmony_ci     * Display name (with a file name extension) of the asset.
10561847f8eSopenharmony_ci     *
10661847f8eSopenharmony_ci     * @type { string }
10761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
10861847f8eSopenharmony_ci     * @since 12
10961847f8eSopenharmony_ci     */
11061847f8eSopenharmony_ci    readonly displayName: string;
11161847f8eSopenharmony_ci    /**
11261847f8eSopenharmony_ci     * Returns the value of the specified member.
11361847f8eSopenharmony_ci     *
11461847f8eSopenharmony_ci     * @param { string } member - Photo asset member. for example : get(PhotoKeys.SIZE)
11561847f8eSopenharmony_ci     * @returns { MemberType } Returns the value of the specified photo asset member
11661847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
11761847f8eSopenharmony_ci     * <br>2. Incorrect parameter types; 3. Parameter verification failed.
11861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
11961847f8eSopenharmony_ci     * @since 12
12061847f8eSopenharmony_ci     */
12161847f8eSopenharmony_ci    get(member: string): photoAccessHelper.MemberType;
12261847f8eSopenharmony_ci    /**
12361847f8eSopenharmony_ci     * Set a new value to the specified member
12461847f8eSopenharmony_ci     *
12561847f8eSopenharmony_ci     * @param { string } member - Photo asset member
12661847f8eSopenharmony_ci     * @param { string } value - The new value of the member.
12761847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
12861847f8eSopenharmony_ci     * <br>2. Incorrect parameter types; 3. Parameter verification failed.
12961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
13061847f8eSopenharmony_ci     * @since 12
13161847f8eSopenharmony_ci     * @example : set(PhotoKeys.TITLE, "newTitle"), call commitModify after set
13261847f8eSopenharmony_ci     */
13361847f8eSopenharmony_ci    set(member: string, value: string): void;
13461847f8eSopenharmony_ci    /**
13561847f8eSopenharmony_ci     * Modify metadata of the asset
13661847f8eSopenharmony_ci     *
13761847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
13861847f8eSopenharmony_ci     * @returns { Promise<void> } Returns void
13961847f8eSopenharmony_ci     * @throws { BusinessError } 201 - Permission denied
14061847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
14161847f8eSopenharmony_ci     * <br>2. Incorrect parameter types; 3. Parameter verification failed.
14261847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
14361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
14461847f8eSopenharmony_ci     * @atomicservice
14561847f8eSopenharmony_ci     * @since 12
14661847f8eSopenharmony_ci     */
14761847f8eSopenharmony_ci    commitModify(): Promise<void>;
14861847f8eSopenharmony_ci    /**
14961847f8eSopenharmony_ci     * Get thumbnail of the asset
15061847f8eSopenharmony_ci     *
15161847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
15261847f8eSopenharmony_ci     * @param { image.Size } [size] - Thumbnail's size
15361847f8eSopenharmony_ci     * @returns { Promise<image.PixelMap> } Returns the thumbnail's pixelMap.
15461847f8eSopenharmony_ci     * @throws { BusinessError } 201 - Permission denied
15561847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
15661847f8eSopenharmony_ci     * <br>2. Incorrect parameter types; 3. Parameter verification failed.
15761847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
15861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
15961847f8eSopenharmony_ci     * @since 12
16061847f8eSopenharmony_ci     */
16161847f8eSopenharmony_ci    getThumbnail(size?: image.Size): Promise<image.PixelMap>;
16261847f8eSopenharmony_ci    /**
16361847f8eSopenharmony_ci     * Get analysis data of the asset.
16461847f8eSopenharmony_ci     *
16561847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
16661847f8eSopenharmony_ci     * @param { AnalysisType } analysisType - Analysis type
16761847f8eSopenharmony_ci     * @returns { Promise<string> } Returns analysis info into a json string
16861847f8eSopenharmony_ci     * @throws { BusinessError } 201 - Permission denied
16961847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Called by non-system application
17061847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
17161847f8eSopenharmony_ci     * <br>2. Incorrect parameter types; 3. Parameter verification failed.
17261847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
17361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
17461847f8eSopenharmony_ci     * @systemapi
17561847f8eSopenharmony_ci     * @since 12
17661847f8eSopenharmony_ci     */
17761847f8eSopenharmony_ci    getAnalysisData(analysisType: photoAccessHelper.AnalysisType): Promise<string>;
17861847f8eSopenharmony_ci    /**
17961847f8eSopenharmony_ci     * Requests the read-only FD of the source asset.
18061847f8eSopenharmony_ci     *
18161847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
18261847f8eSopenharmony_ci     * @returns { Promise<number> }  Returns opened source asset fd.
18361847f8eSopenharmony_ci     * @throws { BusinessError } 201 - Permission denied.
18461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Called by non-system application.
18561847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
18661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
18761847f8eSopenharmony_ci     * @systemapi
18861847f8eSopenharmony_ci     * @since 12
18961847f8eSopenharmony_ci     */
19061847f8eSopenharmony_ci    requestSource(): Promise<number>;
19161847f8eSopenharmony_ci    /**
19261847f8eSopenharmony_ci     * Creates a photoAccessHelper photoasset from sendable photoAccessHelper photoasset.
19361847f8eSopenharmony_ci     *
19461847f8eSopenharmony_ci     * @returns { photoAccessHelper.PhotoAsset } Returns the instance if the operation is successful.
19561847f8eSopenharmony_ci     * @throws { BusinessError } 201 - Permission denied.
19661847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
19761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
19861847f8eSopenharmony_ci     * @since 12
19961847f8eSopenharmony_ci     */
20061847f8eSopenharmony_ci    convertToPhotoAsset(): photoAccessHelper.PhotoAsset;
20161847f8eSopenharmony_ci  }
20261847f8eSopenharmony_ci
20361847f8eSopenharmony_ci  /**
20461847f8eSopenharmony_ci   * The fetch result of assets or albums
20561847f8eSopenharmony_ci   *
20661847f8eSopenharmony_ci   * @interface FetchResult
20761847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
20861847f8eSopenharmony_ci   * @since 12
20961847f8eSopenharmony_ci   */
21061847f8eSopenharmony_ci  interface FetchResult<T> extends lang.ISendable {
21161847f8eSopenharmony_ci    /**
21261847f8eSopenharmony_ci     * Obtains the total number of objects in the fetch result.
21361847f8eSopenharmony_ci     *
21461847f8eSopenharmony_ci     * @returns { number } Total number of objects.
21561847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
21661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
21761847f8eSopenharmony_ci     * @since 12
21861847f8eSopenharmony_ci     */
21961847f8eSopenharmony_ci    getCount(): number;
22061847f8eSopenharmony_ci    /**
22161847f8eSopenharmony_ci     * Checks whether the result set points to the last row.
22261847f8eSopenharmony_ci     * You need to check whether the object is the last one before calling getNextObject.
22361847f8eSopenharmony_ci     *
22461847f8eSopenharmony_ci     * @returns { boolean } Whether the object is the last one in the fetch result.
22561847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
22661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
22761847f8eSopenharmony_ci     * @since 12
22861847f8eSopenharmony_ci     */
22961847f8eSopenharmony_ci    isAfterLast(): boolean;
23061847f8eSopenharmony_ci    /**
23161847f8eSopenharmony_ci     * Obtains the first object in the fetch result.
23261847f8eSopenharmony_ci     *
23361847f8eSopenharmony_ci     * @returns { Promise<T> } Returns the first object in the fetch result.
23461847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
23561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
23661847f8eSopenharmony_ci     * @since 12
23761847f8eSopenharmony_ci     */
23861847f8eSopenharmony_ci    getFirstObject(): Promise<T>;
23961847f8eSopenharmony_ci    /**
24061847f8eSopenharmony_ci     * Obtains the next object in the fetch result.
24161847f8eSopenharmony_ci     * Before calling this method, you must use isAfterLast() to check whether the current position is the last row
24261847f8eSopenharmony_ci     * in the fetch result. This method only works when the current position is not the last row.
24361847f8eSopenharmony_ci     *
24461847f8eSopenharmony_ci     * @returns { Promise<T> } Returns the next object
24561847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
24661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
24761847f8eSopenharmony_ci     * @since 12
24861847f8eSopenharmony_ci     */
24961847f8eSopenharmony_ci    getNextObject(): Promise<T>;
25061847f8eSopenharmony_ci    /**
25161847f8eSopenharmony_ci     * Obtains the last object in the fetch result
25261847f8eSopenharmony_ci     *
25361847f8eSopenharmony_ci     * @returns { Promise<T> } Returns the last object
25461847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
25561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
25661847f8eSopenharmony_ci     * @since 12
25761847f8eSopenharmony_ci     */
25861847f8eSopenharmony_ci    getLastObject(): Promise<T>;
25961847f8eSopenharmony_ci    /**
26061847f8eSopenharmony_ci     * Obtains the object with the specified index in the fetch result.
26161847f8eSopenharmony_ci     *
26261847f8eSopenharmony_ci     * @param { number } index - Index of the asset to obtain.
26361847f8eSopenharmony_ci     * @returns { Promise<T> } Returns the object
26461847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
26561847f8eSopenharmony_ci     * <br>2. Incorrect parameter types; 3. Parameter verification failed.
26661847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
26761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
26861847f8eSopenharmony_ci     * @since 12
26961847f8eSopenharmony_ci     */
27061847f8eSopenharmony_ci    getObjectByPosition(index: number): Promise<T>;
27161847f8eSopenharmony_ci    /**
27261847f8eSopenharmony_ci     * Obtains all objects in the fetch result.
27361847f8eSopenharmony_ci     *
27461847f8eSopenharmony_ci     * @returns { Promise<Array<T>> } Returns all the objects
27561847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
27661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
27761847f8eSopenharmony_ci     * @since 12
27861847f8eSopenharmony_ci     */
27961847f8eSopenharmony_ci    getAllObjects(): Promise<Array<T>>;
28061847f8eSopenharmony_ci    /**
28161847f8eSopenharmony_ci     * Releases the fetch result.
28261847f8eSopenharmony_ci     *
28361847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
28461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
28561847f8eSopenharmony_ci     * @since 12
28661847f8eSopenharmony_ci     */
28761847f8eSopenharmony_ci    close(): void;
28861847f8eSopenharmony_ci  }
28961847f8eSopenharmony_ci
29061847f8eSopenharmony_ci  /**
29161847f8eSopenharmony_ci   * Album type.
29261847f8eSopenharmony_ci   *
29361847f8eSopenharmony_ci   * @enum { number } AlbumType
29461847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
29561847f8eSopenharmony_ci   * @since 12
29661847f8eSopenharmony_ci   */
29761847f8eSopenharmony_ci  const enum AlbumType {
29861847f8eSopenharmony_ci    /**
29961847f8eSopenharmony_ci     * Album created by user.
30061847f8eSopenharmony_ci     *
30161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
30261847f8eSopenharmony_ci     * @since 12
30361847f8eSopenharmony_ci     */
30461847f8eSopenharmony_ci    USER = 0,
30561847f8eSopenharmony_ci    /**
30661847f8eSopenharmony_ci     * Album created by system, which metadata cannot be modified.
30761847f8eSopenharmony_ci     *
30861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
30961847f8eSopenharmony_ci     * @since 12
31061847f8eSopenharmony_ci     */
31161847f8eSopenharmony_ci    SYSTEM = 1024,
31261847f8eSopenharmony_ci    /**
31361847f8eSopenharmony_ci     * Album created by smart abilities.
31461847f8eSopenharmony_ci     *
31561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
31661847f8eSopenharmony_ci     * @systemapi
31761847f8eSopenharmony_ci     * @since 12
31861847f8eSopenharmony_ci     */
31961847f8eSopenharmony_ci    SMART = 4096
32061847f8eSopenharmony_ci  }
32161847f8eSopenharmony_ci
32261847f8eSopenharmony_ci  /**
32361847f8eSopenharmony_ci   * Album subtype
32461847f8eSopenharmony_ci   *
32561847f8eSopenharmony_ci   * @enum { number } AlbumSubtype
32661847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
32761847f8eSopenharmony_ci   * @since 12
32861847f8eSopenharmony_ci   */
32961847f8eSopenharmony_ci  const enum AlbumSubtype {
33061847f8eSopenharmony_ci    /**
33161847f8eSopenharmony_ci     * Generic user-created albums.
33261847f8eSopenharmony_ci     *
33361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
33461847f8eSopenharmony_ci     * @since 12
33561847f8eSopenharmony_ci     */
33661847f8eSopenharmony_ci    USER_GENERIC = 1,
33761847f8eSopenharmony_ci    /**
33861847f8eSopenharmony_ci     * Favorite album, which assets are marked as favorite.
33961847f8eSopenharmony_ci     *
34061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
34161847f8eSopenharmony_ci     * @since 12
34261847f8eSopenharmony_ci     */
34361847f8eSopenharmony_ci    FAVORITE = 1025,
34461847f8eSopenharmony_ci    /**
34561847f8eSopenharmony_ci     * Video album, which contains all video assets.
34661847f8eSopenharmony_ci     *
34761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
34861847f8eSopenharmony_ci     * @since 12
34961847f8eSopenharmony_ci     */
35061847f8eSopenharmony_ci    VIDEO,
35161847f8eSopenharmony_ci    /**
35261847f8eSopenharmony_ci     * Hidden album, which assets are marked as hidden.
35361847f8eSopenharmony_ci     *
35461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
35561847f8eSopenharmony_ci     * @systemapi
35661847f8eSopenharmony_ci     * @since 12
35761847f8eSopenharmony_ci     */
35861847f8eSopenharmony_ci    HIDDEN,
35961847f8eSopenharmony_ci    /**
36061847f8eSopenharmony_ci     * Trash album, which assets are deleted.
36161847f8eSopenharmony_ci     *
36261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
36361847f8eSopenharmony_ci     * @systemapi
36461847f8eSopenharmony_ci     * @since 12
36561847f8eSopenharmony_ci     */
36661847f8eSopenharmony_ci    TRASH,
36761847f8eSopenharmony_ci    /**
36861847f8eSopenharmony_ci     * Screenshot album
36961847f8eSopenharmony_ci     *
37061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
37161847f8eSopenharmony_ci     * @systemapi
37261847f8eSopenharmony_ci     * @since 12
37361847f8eSopenharmony_ci     */
37461847f8eSopenharmony_ci    SCREENSHOT,
37561847f8eSopenharmony_ci    /**
37661847f8eSopenharmony_ci     * Camera album
37761847f8eSopenharmony_ci     *
37861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
37961847f8eSopenharmony_ci     * @systemapi
38061847f8eSopenharmony_ci     * @since 12
38161847f8eSopenharmony_ci     */
38261847f8eSopenharmony_ci    CAMERA,
38361847f8eSopenharmony_ci    /**
38461847f8eSopenharmony_ci     * Image album
38561847f8eSopenharmony_ci     *
38661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
38761847f8eSopenharmony_ci     * @since 12
38861847f8eSopenharmony_ci     */
38961847f8eSopenharmony_ci    IMAGE = 1031,
39061847f8eSopenharmony_ci    /**
39161847f8eSopenharmony_ci     * Source album
39261847f8eSopenharmony_ci     *
39361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
39461847f8eSopenharmony_ci     * @systemapi
39561847f8eSopenharmony_ci     * @since 12
39661847f8eSopenharmony_ci     */
39761847f8eSopenharmony_ci    SOURCE_GENERIC = 2049,
39861847f8eSopenharmony_ci    /**
39961847f8eSopenharmony_ci     * Classify album
40061847f8eSopenharmony_ci     *
40161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
40261847f8eSopenharmony_ci     * @systemapi
40361847f8eSopenharmony_ci     * @since 12
40461847f8eSopenharmony_ci     */
40561847f8eSopenharmony_ci    CLASSIFY = 4097,
40661847f8eSopenharmony_ci    /**
40761847f8eSopenharmony_ci     * Location album
40861847f8eSopenharmony_ci     *
40961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
41061847f8eSopenharmony_ci     * @systemapi
41161847f8eSopenharmony_ci     * @since 12
41261847f8eSopenharmony_ci     */
41361847f8eSopenharmony_ci    GEOGRAPHY_LOCATION = 4099,
41461847f8eSopenharmony_ci    /**
41561847f8eSopenharmony_ci     * City album
41661847f8eSopenharmony_ci     *
41761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
41861847f8eSopenharmony_ci     * @systemapi
41961847f8eSopenharmony_ci     * @since 12
42061847f8eSopenharmony_ci     */
42161847f8eSopenharmony_ci    GEOGRAPHY_CITY,
42261847f8eSopenharmony_ci    /**
42361847f8eSopenharmony_ci     * ShootingMode album
42461847f8eSopenharmony_ci     *
42561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
42661847f8eSopenharmony_ci     * @systemapi
42761847f8eSopenharmony_ci     * @since 12
42861847f8eSopenharmony_ci     */
42961847f8eSopenharmony_ci    SHOOTING_MODE,
43061847f8eSopenharmony_ci    /**
43161847f8eSopenharmony_ci     * Portrait album
43261847f8eSopenharmony_ci     *
43361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
43461847f8eSopenharmony_ci     * @systemapi
43561847f8eSopenharmony_ci     * @since 12
43661847f8eSopenharmony_ci     */
43761847f8eSopenharmony_ci    PORTRAIT,
43861847f8eSopenharmony_ci    /**
43961847f8eSopenharmony_ci     * Group photo album
44061847f8eSopenharmony_ci     *
44161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
44261847f8eSopenharmony_ci     * @systemapi
44361847f8eSopenharmony_ci     * @since 12
44461847f8eSopenharmony_ci     */
44561847f8eSopenharmony_ci    GROUP_PHOTO,
44661847f8eSopenharmony_ci    /**
44761847f8eSopenharmony_ci     * Highlight album
44861847f8eSopenharmony_ci     *
44961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
45061847f8eSopenharmony_ci     * @systemapi
45161847f8eSopenharmony_ci     * @since 12
45261847f8eSopenharmony_ci     */
45361847f8eSopenharmony_ci    HIGHLIGHT = 4104,
45461847f8eSopenharmony_ci    /**
45561847f8eSopenharmony_ci     * Highlight suggestions album
45661847f8eSopenharmony_ci     *
45761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
45861847f8eSopenharmony_ci     * @systemapi
45961847f8eSopenharmony_ci     * @since 12
46061847f8eSopenharmony_ci     */
46161847f8eSopenharmony_ci    HIGHLIGHT_SUGGESTIONS,
46261847f8eSopenharmony_ci    /**
46361847f8eSopenharmony_ci     * Any album
46461847f8eSopenharmony_ci     *
46561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
46661847f8eSopenharmony_ci     * @since 12
46761847f8eSopenharmony_ci     */
46861847f8eSopenharmony_ci    ANY = 2147483647
46961847f8eSopenharmony_ci  }
47061847f8eSopenharmony_ci
47161847f8eSopenharmony_ci  /**
47261847f8eSopenharmony_ci   * Defines the abstract interface of albums.
47361847f8eSopenharmony_ci   *
47461847f8eSopenharmony_ci   * @interface AbsAlbum
47561847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
47661847f8eSopenharmony_ci   * @since 12
47761847f8eSopenharmony_ci   */
47861847f8eSopenharmony_ci  interface AbsAlbum extends lang.ISendable {
47961847f8eSopenharmony_ci    /**
48061847f8eSopenharmony_ci     * Album type
48161847f8eSopenharmony_ci     *
48261847f8eSopenharmony_ci     * @type { AlbumType }
48361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
48461847f8eSopenharmony_ci     * @since 12
48561847f8eSopenharmony_ci     */
48661847f8eSopenharmony_ci    readonly albumType: AlbumType;
48761847f8eSopenharmony_ci    /**
48861847f8eSopenharmony_ci     * Album subtype
48961847f8eSopenharmony_ci     *
49061847f8eSopenharmony_ci     * @type { AlbumSubtype }
49161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
49261847f8eSopenharmony_ci     * @since 12
49361847f8eSopenharmony_ci     */
49461847f8eSopenharmony_ci    readonly albumSubtype: AlbumSubtype;
49561847f8eSopenharmony_ci    /**
49661847f8eSopenharmony_ci     * Album name.
49761847f8eSopenharmony_ci     *
49861847f8eSopenharmony_ci     * @type { string }
49961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
50061847f8eSopenharmony_ci     * @since 12
50161847f8eSopenharmony_ci     */
50261847f8eSopenharmony_ci    albumName: string;
50361847f8eSopenharmony_ci    /**
50461847f8eSopenharmony_ci     * Album uri.
50561847f8eSopenharmony_ci     *
50661847f8eSopenharmony_ci     * @type { string }
50761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
50861847f8eSopenharmony_ci     * @since 12
50961847f8eSopenharmony_ci     */
51061847f8eSopenharmony_ci    readonly albumUri: string;
51161847f8eSopenharmony_ci    /**
51261847f8eSopenharmony_ci     * Number of assets in the album
51361847f8eSopenharmony_ci     *
51461847f8eSopenharmony_ci     * @type { number }
51561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
51661847f8eSopenharmony_ci     * @since 12
51761847f8eSopenharmony_ci     */
51861847f8eSopenharmony_ci    readonly count: number;
51961847f8eSopenharmony_ci    /**
52061847f8eSopenharmony_ci     * Cover uri for the album
52161847f8eSopenharmony_ci     *
52261847f8eSopenharmony_ci     * @type { string }
52361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
52461847f8eSopenharmony_ci     * @since 12
52561847f8eSopenharmony_ci     */
52661847f8eSopenharmony_ci    readonly coverUri: string;
52761847f8eSopenharmony_ci    /**
52861847f8eSopenharmony_ci     * Fetch assets in an album.
52961847f8eSopenharmony_ci     *
53061847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
53161847f8eSopenharmony_ci     * @param { FetchOptions } options - Fetch options.
53261847f8eSopenharmony_ci     * @returns { Promise<FetchResult<PhotoAsset>> } Returns the fetch result
53361847f8eSopenharmony_ci     * @throws { BusinessError } 201 - Permission denied.
53461847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
53561847f8eSopenharmony_ci     * <br>2. Incorrect parameter types; 3. Parameter verification failed.
53661847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
53761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
53861847f8eSopenharmony_ci     * @since 12
53961847f8eSopenharmony_ci     */
54061847f8eSopenharmony_ci    getAssets(options: photoAccessHelper.FetchOptions): Promise<FetchResult<PhotoAsset>>;
54161847f8eSopenharmony_ci  }
54261847f8eSopenharmony_ci
54361847f8eSopenharmony_ci  /**
54461847f8eSopenharmony_ci   * Defines the album.
54561847f8eSopenharmony_ci   *
54661847f8eSopenharmony_ci   * @interface Album
54761847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
54861847f8eSopenharmony_ci   * @since 12
54961847f8eSopenharmony_ci   */
55061847f8eSopenharmony_ci  interface Album extends AbsAlbum {
55161847f8eSopenharmony_ci    /**
55261847f8eSopenharmony_ci     * Number of image assets in the album
55361847f8eSopenharmony_ci     *
55461847f8eSopenharmony_ci     * @type { ?number }
55561847f8eSopenharmony_ci     * @readonly
55661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
55761847f8eSopenharmony_ci     * @since 12
55861847f8eSopenharmony_ci     */
55961847f8eSopenharmony_ci    readonly imageCount?: number;
56061847f8eSopenharmony_ci    /**
56161847f8eSopenharmony_ci     * Number of video assets in the album
56261847f8eSopenharmony_ci     *
56361847f8eSopenharmony_ci     * @type { ?number }
56461847f8eSopenharmony_ci     * @readonly
56561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
56661847f8eSopenharmony_ci     * @since 12
56761847f8eSopenharmony_ci     */
56861847f8eSopenharmony_ci    readonly videoCount?: number;
56961847f8eSopenharmony_ci    /**
57061847f8eSopenharmony_ci     * Modify metadata for the album
57161847f8eSopenharmony_ci     *
57261847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
57361847f8eSopenharmony_ci     * @returns { Promise<void> } Returns void
57461847f8eSopenharmony_ci     * @throws { BusinessError } 201 - Permission denied.
57561847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
57661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
57761847f8eSopenharmony_ci     * @since 12
57861847f8eSopenharmony_ci     */
57961847f8eSopenharmony_ci    commitModify(): Promise<void>;
58061847f8eSopenharmony_ci    /**
58161847f8eSopenharmony_ci     * Creates a photoAccessHelper album from sendable photoAccessHelper album.
58261847f8eSopenharmony_ci     *
58361847f8eSopenharmony_ci     * @returns { photoAccessHelper.Album } Returns the instance if the operation is successful.
58461847f8eSopenharmony_ci     * @throws { BusinessError } 201 - Permission denied.
58561847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
58661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
58761847f8eSopenharmony_ci     * @since 12
58861847f8eSopenharmony_ci     */
58961847f8eSopenharmony_ci    convertToPhotoAlbum(): photoAccessHelper.Album;
59061847f8eSopenharmony_ci    /**
59161847f8eSopenharmony_ci     * Get the faceId of the portrait album or group photo album.
59261847f8eSopenharmony_ci     *
59361847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
59461847f8eSopenharmony_ci     * @returns { Promise<string> } Returns tag_id if portrait album, Returns group_tag if group photo album,
59561847f8eSopenharmony_ci     * <br>Returns empty if not found.
59661847f8eSopenharmony_ci     * @throws { BusinessError } 201 - Permission denied
59761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Called by non-system application
59861847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
59961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
60061847f8eSopenharmony_ci     * @systemapi
60161847f8eSopenharmony_ci     * @since 13
60261847f8eSopenharmony_ci     */
60361847f8eSopenharmony_ci    getFaceId(): Promise<string>;
60461847f8eSopenharmony_ci  }
60561847f8eSopenharmony_ci
60661847f8eSopenharmony_ci  /**
60761847f8eSopenharmony_ci   * Helper functions to access photos and albums.
60861847f8eSopenharmony_ci   *
60961847f8eSopenharmony_ci   * @interface PhotoAccessHelper
61061847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
61161847f8eSopenharmony_ci   * @atomicservice
61261847f8eSopenharmony_ci   * @since 12
61361847f8eSopenharmony_ci   */
61461847f8eSopenharmony_ci  interface PhotoAccessHelper extends lang.ISendable {
61561847f8eSopenharmony_ci    /**
61661847f8eSopenharmony_ci     * Fetch photo assets
61761847f8eSopenharmony_ci     *
61861847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
61961847f8eSopenharmony_ci     * @param { FetchOptions } options - Retrieval options.
62061847f8eSopenharmony_ci     * @returns { Promise<FetchResult<PhotoAsset>> } Returns the fetch result.
62161847f8eSopenharmony_ci     * @throws { BusinessError } 201 - Permission denied.
62261847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
62361847f8eSopenharmony_ci     * <br>2. Incorrect parameter types; 3. Parameter verification failed.
62461847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
62561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
62661847f8eSopenharmony_ci     * @since 12
62761847f8eSopenharmony_ci     */
62861847f8eSopenharmony_ci    getAssets(options: photoAccessHelper.FetchOptions): Promise<FetchResult<PhotoAsset>>;
62961847f8eSopenharmony_ci    /**
63061847f8eSopenharmony_ci     * Fetch a group of burst assets
63161847f8eSopenharmony_ci     *
63261847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
63361847f8eSopenharmony_ci     * @param { string } burstKey - Burst asset options.
63461847f8eSopenharmony_ci     * @returns { Promise<FetchResult<PhotoAsset>> } Returns the fetch result.
63561847f8eSopenharmony_ci     * @throws { BusinessError } 201 - Permission denied
63661847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
63761847f8eSopenharmony_ci     * <br>2. Incorrect parameter types; 3. Parameter verification failed.
63861847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
63961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
64061847f8eSopenharmony_ci     * @since 12
64161847f8eSopenharmony_ci     */
64261847f8eSopenharmony_ci    getBurstAssets(burstKey: string, options: photoAccessHelper.FetchOptions): Promise<FetchResult<PhotoAsset>>;
64361847f8eSopenharmony_ci    /**
64461847f8eSopenharmony_ci     * Create a photo asset
64561847f8eSopenharmony_ci     *
64661847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
64761847f8eSopenharmony_ci     * @param { string } displayName - Asset name
64861847f8eSopenharmony_ci     * @returns { Promise<PhotoAsset> } Returns the newly created asset
64961847f8eSopenharmony_ci     * @throws { BusinessError } 201 - Permission denied
65061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Called by non-system application.
65161847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
65261847f8eSopenharmony_ci     * <br>2. Incorrect parameter types; 3. Parameter verification failed.
65361847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
65461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
65561847f8eSopenharmony_ci     * @systemapi
65661847f8eSopenharmony_ci     * @since 12
65761847f8eSopenharmony_ci     */
65861847f8eSopenharmony_ci    createAsset(displayName: string): Promise<PhotoAsset>;
65961847f8eSopenharmony_ci    /**
66061847f8eSopenharmony_ci     * Create a photo asset
66161847f8eSopenharmony_ci     *
66261847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
66361847f8eSopenharmony_ci     * @param { string } displayName - Asset name
66461847f8eSopenharmony_ci     * @param { PhotoCreateOptions } options - Create operation
66561847f8eSopenharmony_ci     * @throws { BusinessError } 201 - Permission denied
66661847f8eSopenharmony_ci     * @returns { Promise<PhotoAsset> } Returns the newly created asset
66761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Called by non-system application.
66861847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
66961847f8eSopenharmony_ci     * <br>2. Incorrect parameter types; 3. Parameter verification failed.
67061847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
67161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
67261847f8eSopenharmony_ci     * @systemapi
67361847f8eSopenharmony_ci     * @since 12
67461847f8eSopenharmony_ci     */
67561847f8eSopenharmony_ci    createAsset(displayName: string, options: photoAccessHelper.PhotoCreateOptions): Promise<PhotoAsset>;
67661847f8eSopenharmony_ci    /**
67761847f8eSopenharmony_ci     * Create a photo asset:
67861847f8eSopenharmony_ci     *   1. (Suggested)Integrate security component without WRITE_IMAGEVIDEO permission;
67961847f8eSopenharmony_ci     *   2. Get WRITE_IMAGEVIDEO permission by ACL;
68061847f8eSopenharmony_ci     *
68161847f8eSopenharmony_ci     * @permission ohos.permission.WRITE_IMAGEVIDEO
68261847f8eSopenharmony_ci     * @param { PhotoType } photoType - Photo asset type
68361847f8eSopenharmony_ci     * @param { string } extension - Asset extension
68461847f8eSopenharmony_ci     * @param { CreateOptions } [options] - Optional asset create option
68561847f8eSopenharmony_ci     * @returns { Promise<string> } Returns the uri of the newly created asset
68661847f8eSopenharmony_ci     * @throws { BusinessError } 201 - Permission denied
68761847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
68861847f8eSopenharmony_ci     * <br>2. Incorrect parameter types; 3. Parameter verification failed.
68961847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
69061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
69161847f8eSopenharmony_ci     * @atomicservice
69261847f8eSopenharmony_ci     * @since 12
69361847f8eSopenharmony_ci     */
69461847f8eSopenharmony_ci    createAsset(photoType: PhotoType, extension: string, options?: photoAccessHelper.CreateOptions): Promise<string>;
69561847f8eSopenharmony_ci    /**
69661847f8eSopenharmony_ci     * Fetch albums.
69761847f8eSopenharmony_ci     *
69861847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
69961847f8eSopenharmony_ci     * @param { FetchOptions } [options] - options to fetch albums
70061847f8eSopenharmony_ci     * @returns { Promise<FetchResult<Album>> } - Returns the fetch result
70161847f8eSopenharmony_ci     * @throws { BusinessError } 201 - Permission denied
70261847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
70361847f8eSopenharmony_ci     * <br>2. Incorrect parameter types; 3. Parameter verification failed.
70461847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
70561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
70661847f8eSopenharmony_ci     * @since 12
70761847f8eSopenharmony_ci     */
70861847f8eSopenharmony_ci    getAlbums(options: photoAccessHelper.FetchOptions): Promise<FetchResult<Album>>;
70961847f8eSopenharmony_ci    /**
71061847f8eSopenharmony_ci     * Fetch albums.
71161847f8eSopenharmony_ci     *
71261847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO
71361847f8eSopenharmony_ci     * @param { AlbumType } type - Album type.
71461847f8eSopenharmony_ci     * @param { AlbumSubtype } subtype - Album subtype.
71561847f8eSopenharmony_ci     * @param { FetchOptions } [options] - options to fetch albums
71661847f8eSopenharmony_ci     * @returns { Promise<FetchResult<Album>> } - Returns the fetch result
71761847f8eSopenharmony_ci     * @throws { BusinessError } 201 - Permission denied
71861847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
71961847f8eSopenharmony_ci     * <br>2. Incorrect parameter types; 3. Parameter verification failed.
72061847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
72161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
72261847f8eSopenharmony_ci     * @since 12
72361847f8eSopenharmony_ci     */
72461847f8eSopenharmony_ci    getAlbums(
72561847f8eSopenharmony_ci      type: AlbumType,
72661847f8eSopenharmony_ci      subtype: AlbumSubtype,
72761847f8eSopenharmony_ci      options?: photoAccessHelper.FetchOptions
72861847f8eSopenharmony_ci    ): Promise<FetchResult<Album>>;
72961847f8eSopenharmony_ci    /**
73061847f8eSopenharmony_ci     * Fetch albums containing hidden assets.
73161847f8eSopenharmony_ci     *
73261847f8eSopenharmony_ci     * @permission ohos.permission.READ_IMAGEVIDEO and ohos.permission.MANAGE_PRIVATE_PHOTOS
73361847f8eSopenharmony_ci     * @param { HiddenPhotosDisplayMode } mode - Display mode of albums containing hidden assets.
73461847f8eSopenharmony_ci     * @param { FetchOptions } [options] - Options to fetch albums.
73561847f8eSopenharmony_ci     * @returns { Promise<FetchResult<Album>> } Returns fetchResult of albums containing hidden assets.
73661847f8eSopenharmony_ci     * @throws { BusinessError } 201 - Permission verification failed, usually the result returned by VerifyAccessToken.
73761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Called by non-system application
73861847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
73961847f8eSopenharmony_ci     * <br>2. Incorrect parameter types; 3. Parameter verification failed.
74061847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
74161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
74261847f8eSopenharmony_ci     * @systemapi
74361847f8eSopenharmony_ci     * @since 12
74461847f8eSopenharmony_ci     */
74561847f8eSopenharmony_ci    getHiddenAlbums(
74661847f8eSopenharmony_ci      mode: photoAccessHelper.HiddenPhotosDisplayMode,
74761847f8eSopenharmony_ci      options?: photoAccessHelper.FetchOptions
74861847f8eSopenharmony_ci    ): Promise<FetchResult<Album>>;
74961847f8eSopenharmony_ci    /**
75061847f8eSopenharmony_ci     * Release PhotoAccessHelper instance
75161847f8eSopenharmony_ci     *
75261847f8eSopenharmony_ci     * @returns { Promise<void> } Returns void
75361847f8eSopenharmony_ci     * @throws { BusinessError } 14000011 - Internal system error
75461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core
75561847f8eSopenharmony_ci     * @since 12
75661847f8eSopenharmony_ci     */
75761847f8eSopenharmony_ci    release(): Promise<void>;
75861847f8eSopenharmony_ci  }
75961847f8eSopenharmony_ci}
76061847f8eSopenharmony_ci
76161847f8eSopenharmony_ciexport default sendablePhotoAccessHelper;