161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
361847f8eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"),
461847f8eSopenharmony_ci * you may not use this file except in compliance with the License.
561847f8eSopenharmony_ci * You may obtain a copy of the License at
661847f8eSopenharmony_ci *
761847f8eSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
861847f8eSopenharmony_ci *
961847f8eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1061847f8eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1161847f8eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1261847f8eSopenharmony_ci * See the License for the specific language governing permissions and
1361847f8eSopenharmony_ci * limitations under the License.
1461847f8eSopenharmony_ci */
1561847f8eSopenharmony_ci
1661847f8eSopenharmony_ci/**
1761847f8eSopenharmony_ci * @file
1861847f8eSopenharmony_ci * @kit CoreFileKit
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ciimport { AsyncCallback, Callback } from './@ohos.base';
2261847f8eSopenharmony_ciimport Context from './application/Context';
2361847f8eSopenharmony_ciimport { window } from '@kit.ArkUI';
2461847f8eSopenharmony_ci/**
2561847f8eSopenharmony_ci * Provide the capabilities to use different pickers.
2661847f8eSopenharmony_ci *
2761847f8eSopenharmony_ci * @namespace picker
2861847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.UserFileService
2961847f8eSopenharmony_ci * @since 9
3061847f8eSopenharmony_ci */
3161847f8eSopenharmony_ci/**
3261847f8eSopenharmony_ci * Provide the capabilities to use different pickers.
3361847f8eSopenharmony_ci *
3461847f8eSopenharmony_ci * @namespace picker
3561847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.UserFileService
3661847f8eSopenharmony_ci * @atomicservice
3761847f8eSopenharmony_ci * @since 11
3861847f8eSopenharmony_ci */
3961847f8eSopenharmony_ci/**
4061847f8eSopenharmony_ci * Provide the capabilities to use different pickers.
4161847f8eSopenharmony_ci *
4261847f8eSopenharmony_ci * @namespace picker
4361847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.UserFileService
4461847f8eSopenharmony_ci * @crossplatform
4561847f8eSopenharmony_ci * @atomicservice
4661847f8eSopenharmony_ci * @since 12
4761847f8eSopenharmony_ci */
4861847f8eSopenharmony_cideclare namespace picker {
4961847f8eSopenharmony_ci  /**
5061847f8eSopenharmony_ci   * PhotoViewMIMETypes represents the type of media resource that photo picker selects.
5161847f8eSopenharmony_ci   *
5261847f8eSopenharmony_ci   * @enum { string } PhotoViewMIMETypes
5361847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService
5461847f8eSopenharmony_ci   * @since 9
5561847f8eSopenharmony_ci   */
5661847f8eSopenharmony_ci  /**
5761847f8eSopenharmony_ci   * PhotoViewMIMETypes represents the type of media resource that photo picker selects.
5861847f8eSopenharmony_ci   *
5961847f8eSopenharmony_ci   * @enum { string } PhotoViewMIMETypes
6061847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService
6161847f8eSopenharmony_ci   * @atomicservice
6261847f8eSopenharmony_ci   * @since 11
6361847f8eSopenharmony_ci   * @deprecated since 12
6461847f8eSopenharmony_ci   * @useinstead ohos.file.photoAccessHelper/photoAccessHelper#PhotoViewMIMETypes
6561847f8eSopenharmony_ci   */
6661847f8eSopenharmony_ci  export enum PhotoViewMIMETypes {
6761847f8eSopenharmony_ci    /**
6861847f8eSopenharmony_ci     * Image type.
6961847f8eSopenharmony_ci     *
7061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
7161847f8eSopenharmony_ci     * @since 9
7261847f8eSopenharmony_ci     */
7361847f8eSopenharmony_ci    /**
7461847f8eSopenharmony_ci     * Image type.
7561847f8eSopenharmony_ci     *
7661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
7761847f8eSopenharmony_ci     * @atomicservice
7861847f8eSopenharmony_ci     * @since 11
7961847f8eSopenharmony_ci     */
8061847f8eSopenharmony_ci    IMAGE_TYPE = 'image/*',
8161847f8eSopenharmony_ci
8261847f8eSopenharmony_ci    /**
8361847f8eSopenharmony_ci     * Video type.
8461847f8eSopenharmony_ci     *
8561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
8661847f8eSopenharmony_ci     * @since 9
8761847f8eSopenharmony_ci     */
8861847f8eSopenharmony_ci    /**
8961847f8eSopenharmony_ci     * Video type.
9061847f8eSopenharmony_ci     *
9161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
9261847f8eSopenharmony_ci     * @atomicservice
9361847f8eSopenharmony_ci     * @since 11
9461847f8eSopenharmony_ci     */
9561847f8eSopenharmony_ci    VIDEO_TYPE = 'video/*',
9661847f8eSopenharmony_ci
9761847f8eSopenharmony_ci    /**
9861847f8eSopenharmony_ci     * Image and video type.
9961847f8eSopenharmony_ci     *
10061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
10161847f8eSopenharmony_ci     * @since 9
10261847f8eSopenharmony_ci     */
10361847f8eSopenharmony_ci    /**
10461847f8eSopenharmony_ci     * Image and video type.
10561847f8eSopenharmony_ci     *
10661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
10761847f8eSopenharmony_ci     * @atomicservice
10861847f8eSopenharmony_ci     * @since 11
10961847f8eSopenharmony_ci     */
11061847f8eSopenharmony_ci    IMAGE_VIDEO_TYPE = '*/*'
11161847f8eSopenharmony_ci  }
11261847f8eSopenharmony_ci
11361847f8eSopenharmony_ci  /**
11461847f8eSopenharmony_ci   * PhotoSelectOptions Object
11561847f8eSopenharmony_ci   *
11661847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService
11761847f8eSopenharmony_ci   * @since 9
11861847f8eSopenharmony_ci   */
11961847f8eSopenharmony_ci  /**
12061847f8eSopenharmony_ci   * PhotoSelectOptions Object
12161847f8eSopenharmony_ci   *
12261847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService
12361847f8eSopenharmony_ci   * @atomicservice
12461847f8eSopenharmony_ci   * @since 11
12561847f8eSopenharmony_ci   * @deprecated since 12
12661847f8eSopenharmony_ci   * @useinstead ohos.file.photoAccessHelper/photoAccessHelper#PhotoSelectOptions
12761847f8eSopenharmony_ci   */
12861847f8eSopenharmony_ci  class PhotoSelectOptions {
12961847f8eSopenharmony_ci    /**
13061847f8eSopenharmony_ci     * The Type of the file in the picker window.
13161847f8eSopenharmony_ci     *
13261847f8eSopenharmony_ci     * @type { ?PhotoViewMIMETypes }
13361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
13461847f8eSopenharmony_ci     * @since 9
13561847f8eSopenharmony_ci     */
13661847f8eSopenharmony_ci    /**
13761847f8eSopenharmony_ci     * The Type of the file in the picker window.
13861847f8eSopenharmony_ci     *
13961847f8eSopenharmony_ci     * @type { ?PhotoViewMIMETypes }
14061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
14161847f8eSopenharmony_ci     * @atomicservice
14261847f8eSopenharmony_ci     * @since 11
14361847f8eSopenharmony_ci     */
14461847f8eSopenharmony_ci    MIMEType?: PhotoViewMIMETypes;
14561847f8eSopenharmony_ci
14661847f8eSopenharmony_ci    /**
14761847f8eSopenharmony_ci     * Maximum number of images for a single selection.
14861847f8eSopenharmony_ci     *
14961847f8eSopenharmony_ci     * @type { ?number }
15061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
15161847f8eSopenharmony_ci     * @since 9
15261847f8eSopenharmony_ci     */
15361847f8eSopenharmony_ci    /**
15461847f8eSopenharmony_ci     * Maximum number of images for a single selection.
15561847f8eSopenharmony_ci     *
15661847f8eSopenharmony_ci     * @type { ?number }
15761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
15861847f8eSopenharmony_ci     * @atomicservice
15961847f8eSopenharmony_ci     * @since 11
16061847f8eSopenharmony_ci     */
16161847f8eSopenharmony_ci    maxSelectNumber?: number;
16261847f8eSopenharmony_ci  }
16361847f8eSopenharmony_ci
16461847f8eSopenharmony_ci  /**
16561847f8eSopenharmony_ci   * PhotoSelectResult Object
16661847f8eSopenharmony_ci   *
16761847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService
16861847f8eSopenharmony_ci   * @since 9
16961847f8eSopenharmony_ci   */
17061847f8eSopenharmony_ci  /**
17161847f8eSopenharmony_ci   * PhotoSelectResult Object
17261847f8eSopenharmony_ci   *
17361847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService
17461847f8eSopenharmony_ci   * @atomicservice
17561847f8eSopenharmony_ci   * @since 11
17661847f8eSopenharmony_ci   * @deprecated since 12
17761847f8eSopenharmony_ci   * @useinstead ohos.file.photoAccessHelper/photoAccessHelper#PhotoSelectResult
17861847f8eSopenharmony_ci   */
17961847f8eSopenharmony_ci  class PhotoSelectResult {
18061847f8eSopenharmony_ci    /**
18161847f8eSopenharmony_ci     * The uris for the selected files.
18261847f8eSopenharmony_ci     *
18361847f8eSopenharmony_ci     * @type { Array<string> }
18461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
18561847f8eSopenharmony_ci     * @since 9
18661847f8eSopenharmony_ci     */
18761847f8eSopenharmony_ci    /**
18861847f8eSopenharmony_ci     * The uris for the selected files.
18961847f8eSopenharmony_ci     *
19061847f8eSopenharmony_ci     * @type { Array<string> }
19161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
19261847f8eSopenharmony_ci     * @atomicservice
19361847f8eSopenharmony_ci     * @since 11
19461847f8eSopenharmony_ci     */
19561847f8eSopenharmony_ci    photoUris: Array<string>;
19661847f8eSopenharmony_ci
19761847f8eSopenharmony_ci    /**
19861847f8eSopenharmony_ci     * Original option.
19961847f8eSopenharmony_ci     *
20061847f8eSopenharmony_ci     * @type { boolean }
20161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
20261847f8eSopenharmony_ci     * @since 9
20361847f8eSopenharmony_ci     */
20461847f8eSopenharmony_ci    /**
20561847f8eSopenharmony_ci     * Original option.
20661847f8eSopenharmony_ci     *
20761847f8eSopenharmony_ci     * @type { boolean }
20861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
20961847f8eSopenharmony_ci     * @atomicservice
21061847f8eSopenharmony_ci     * @since 11
21161847f8eSopenharmony_ci     */
21261847f8eSopenharmony_ci    isOriginalPhoto: boolean;
21361847f8eSopenharmony_ci  }
21461847f8eSopenharmony_ci
21561847f8eSopenharmony_ci  /**
21661847f8eSopenharmony_ci   * PhotoSaveOptions Object
21761847f8eSopenharmony_ci   *
21861847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService
21961847f8eSopenharmony_ci   * @since 9
22061847f8eSopenharmony_ci   * @deprecated since 12
22161847f8eSopenharmony_ci   */
22261847f8eSopenharmony_ci  class PhotoSaveOptions {
22361847f8eSopenharmony_ci    /**
22461847f8eSopenharmony_ci     * The names of the files to be saved.
22561847f8eSopenharmony_ci     *
22661847f8eSopenharmony_ci     * @type { ?Array<string> }
22761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
22861847f8eSopenharmony_ci     * @since 9
22961847f8eSopenharmony_ci     */
23061847f8eSopenharmony_ci    newFileNames?: Array<string>;
23161847f8eSopenharmony_ci  }
23261847f8eSopenharmony_ci
23361847f8eSopenharmony_ci  /**
23461847f8eSopenharmony_ci   * PhotoViewPicker Object
23561847f8eSopenharmony_ci   *
23661847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService
23761847f8eSopenharmony_ci   * @since 9
23861847f8eSopenharmony_ci   */
23961847f8eSopenharmony_ci  /**
24061847f8eSopenharmony_ci   * PhotoViewPicker Object
24161847f8eSopenharmony_ci   *
24261847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService
24361847f8eSopenharmony_ci   * @atomicservice
24461847f8eSopenharmony_ci   * @since 11
24561847f8eSopenharmony_ci   * @deprecated since 12
24661847f8eSopenharmony_ci   * @useinstead ohos.file.photoAccessHelper/photoAccessHelper#PhotoViewPicker
24761847f8eSopenharmony_ci   */
24861847f8eSopenharmony_ci  class PhotoViewPicker {
24961847f8eSopenharmony_ci    /**
25061847f8eSopenharmony_ci     * The constructor used to create a PhotoViewPicker object.
25161847f8eSopenharmony_ci     *
25261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
25361847f8eSopenharmony_ci     * @atomicservice
25461847f8eSopenharmony_ci     * @since 12
25561847f8eSopenharmony_ci     */
25661847f8eSopenharmony_ci    constructor();
25761847f8eSopenharmony_ci
25861847f8eSopenharmony_ci    /**
25961847f8eSopenharmony_ci     * The constructor used to create a PhotoViewPicker object.
26061847f8eSopenharmony_ci     *
26161847f8eSopenharmony_ci     * @param { Context } context - represents the context.
26261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
26361847f8eSopenharmony_ci     * @since 12
26461847f8eSopenharmony_ci     */
26561847f8eSopenharmony_ci    constructor(context: Context);
26661847f8eSopenharmony_ci
26761847f8eSopenharmony_ci    /**
26861847f8eSopenharmony_ci     * Pull up the photo picker based on the selection mode.
26961847f8eSopenharmony_ci     *
27061847f8eSopenharmony_ci     * @param { PhotoSelectOptions } option - represents the options provided in select mode.
27161847f8eSopenharmony_ci     * @returns { Promise<PhotoSelectResult> } Returns the uris for the selected files.
27261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
27361847f8eSopenharmony_ci     * @since 9
27461847f8eSopenharmony_ci     */
27561847f8eSopenharmony_ci    /**
27661847f8eSopenharmony_ci     * Pull up the photo picker based on the selection mode.
27761847f8eSopenharmony_ci     *
27861847f8eSopenharmony_ci     * @param { PhotoSelectOptions } option - represents the options provided in select mode.
27961847f8eSopenharmony_ci     * @returns { Promise<PhotoSelectResult> } Returns the uris for the selected files.
28061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
28161847f8eSopenharmony_ci     * @atomicservice
28261847f8eSopenharmony_ci     * @since 11
28361847f8eSopenharmony_ci     * @deprecated since 12
28461847f8eSopenharmony_ci     * @useinstead ohos.file.photoAccessHelper/photoAccessHelper.PhotoViewPicker#select
28561847f8eSopenharmony_ci     */
28661847f8eSopenharmony_ci    select(option?: PhotoSelectOptions): Promise<PhotoSelectResult>;
28761847f8eSopenharmony_ci
28861847f8eSopenharmony_ci    /**
28961847f8eSopenharmony_ci     * Pull up the photo picker based on the selection mode.
29061847f8eSopenharmony_ci     *
29161847f8eSopenharmony_ci     * @param { PhotoSelectOptions } option - represents the options provided in select mode.
29261847f8eSopenharmony_ci     * @param { AsyncCallback<PhotoSelectResult> } callback - callback
29361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
29461847f8eSopenharmony_ci     * @since 9
29561847f8eSopenharmony_ci     */
29661847f8eSopenharmony_ci    /**
29761847f8eSopenharmony_ci     * Pull up the photo picker based on the selection mode.
29861847f8eSopenharmony_ci     *
29961847f8eSopenharmony_ci     * @param { PhotoSelectOptions } option - represents the options provided in select mode.
30061847f8eSopenharmony_ci     * @param { AsyncCallback<PhotoSelectResult> } callback - callback
30161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
30261847f8eSopenharmony_ci     * @atomicservice
30361847f8eSopenharmony_ci     * @since 11
30461847f8eSopenharmony_ci     * @deprecated since 12
30561847f8eSopenharmony_ci     * @useinstead ohos.file.photoAccessHelper/photoAccessHelper.PhotoViewPicker#select
30661847f8eSopenharmony_ci     */
30761847f8eSopenharmony_ci    select(option: PhotoSelectOptions, callback: AsyncCallback<PhotoSelectResult>): void;
30861847f8eSopenharmony_ci
30961847f8eSopenharmony_ci    /**
31061847f8eSopenharmony_ci     * Pull up the photo picker based on the selection mode.
31161847f8eSopenharmony_ci     *
31261847f8eSopenharmony_ci     * @param { AsyncCallback<PhotoSelectResult> } callback - callback
31361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
31461847f8eSopenharmony_ci     * @since 9
31561847f8eSopenharmony_ci     */
31661847f8eSopenharmony_ci    /**
31761847f8eSopenharmony_ci     * Pull up the photo picker based on the selection mode.
31861847f8eSopenharmony_ci     *
31961847f8eSopenharmony_ci     * @param { AsyncCallback<PhotoSelectResult> } callback - callback
32061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
32161847f8eSopenharmony_ci     * @atomicservice
32261847f8eSopenharmony_ci     * @since 11
32361847f8eSopenharmony_ci     * @deprecated since 12
32461847f8eSopenharmony_ci     * @useinstead ohos.file.photoAccessHelper/photoAccessHelper.PhotoViewPicker#select
32561847f8eSopenharmony_ci     */
32661847f8eSopenharmony_ci    select(callback: AsyncCallback<PhotoSelectResult>): void;
32761847f8eSopenharmony_ci
32861847f8eSopenharmony_ci    /**
32961847f8eSopenharmony_ci     * Pull up the photo picker based on the save mode.
33061847f8eSopenharmony_ci     *
33161847f8eSopenharmony_ci     * @param { PhotoSaveOptions } option - represents the options provided in save mode.
33261847f8eSopenharmony_ci     * @returns { Promise<Array<string>> } Returns the uris for the saved files.
33361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
33461847f8eSopenharmony_ci     * @since 9
33561847f8eSopenharmony_ci     * @deprecated since 12
33661847f8eSopenharmony_ci     * @useinstead save_button/SaveButton
33761847f8eSopenharmony_ci     */
33861847f8eSopenharmony_ci    save(option?: PhotoSaveOptions): Promise<Array<string>>;
33961847f8eSopenharmony_ci
34061847f8eSopenharmony_ci    /**
34161847f8eSopenharmony_ci     * Pull up the photo picker based on the save mode.
34261847f8eSopenharmony_ci     *
34361847f8eSopenharmony_ci     * @param { PhotoSaveOptions } option - represents the options provided in save mode.
34461847f8eSopenharmony_ci     * @param { AsyncCallback<Array<string>> } callback - callback
34561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
34661847f8eSopenharmony_ci     * @since 9
34761847f8eSopenharmony_ci     * @deprecated since 12
34861847f8eSopenharmony_ci     * @useinstead save_button/SaveButton
34961847f8eSopenharmony_ci     */
35061847f8eSopenharmony_ci    save(option: PhotoSaveOptions, callback: AsyncCallback<Array<string>>): void;
35161847f8eSopenharmony_ci
35261847f8eSopenharmony_ci    /**
35361847f8eSopenharmony_ci     * Pull up the photo picker based on the save mode.
35461847f8eSopenharmony_ci     *
35561847f8eSopenharmony_ci     * @param { AsyncCallback<Array<string>> } callback - callback
35661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
35761847f8eSopenharmony_ci     * @since 9
35861847f8eSopenharmony_ci     * @deprecated since 12
35961847f8eSopenharmony_ci     * @useinstead save_button/SaveButton
36061847f8eSopenharmony_ci     */
36161847f8eSopenharmony_ci    save(callback: AsyncCallback<Array<string>>): void;
36261847f8eSopenharmony_ci  }
36361847f8eSopenharmony_ci
36461847f8eSopenharmony_ci  /**
36561847f8eSopenharmony_ci   * Enumerates the picker's select mode types.
36661847f8eSopenharmony_ci   *
36761847f8eSopenharmony_ci   * @enum { number } DocumentSelectMode
36861847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService.FolderSelection
36961847f8eSopenharmony_ci   * @since 11
37061847f8eSopenharmony_ci   */
37161847f8eSopenharmony_ci  /**
37261847f8eSopenharmony_ci   * Enumerates the picker's select mode types.
37361847f8eSopenharmony_ci   *
37461847f8eSopenharmony_ci   * @enum { number } DocumentSelectMode
37561847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService.FolderSelection
37661847f8eSopenharmony_ci   * @crossplatform
37761847f8eSopenharmony_ci   * @atomicservice
37861847f8eSopenharmony_ci   * @since 12
37961847f8eSopenharmony_ci   */
38061847f8eSopenharmony_ci  export enum DocumentSelectMode {
38161847f8eSopenharmony_ci    /**
38261847f8eSopenharmony_ci     * Indicates that only files are allowed to be selected.
38361847f8eSopenharmony_ci     *
38461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService.FolderSelection
38561847f8eSopenharmony_ci     * @since 11
38661847f8eSopenharmony_ci     */
38761847f8eSopenharmony_ci    /**
38861847f8eSopenharmony_ci     * Indicates that only files are allowed to be selected.
38961847f8eSopenharmony_ci     *
39061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService.FolderSelection
39161847f8eSopenharmony_ci     * @crossplatform
39261847f8eSopenharmony_ci     * @atomicservice
39361847f8eSopenharmony_ci     * @since 12
39461847f8eSopenharmony_ci     */
39561847f8eSopenharmony_ci    FILE = 0,
39661847f8eSopenharmony_ci
39761847f8eSopenharmony_ci    /**
39861847f8eSopenharmony_ci     * Indicates that only folders are allowed to be selected.
39961847f8eSopenharmony_ci     *
40061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService.FolderSelection
40161847f8eSopenharmony_ci     * @since 11
40261847f8eSopenharmony_ci     */
40361847f8eSopenharmony_ci    /**
40461847f8eSopenharmony_ci     * Indicates that only folders are allowed to be selected.
40561847f8eSopenharmony_ci     *
40661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService.FolderSelection
40761847f8eSopenharmony_ci     * @crossplatform
40861847f8eSopenharmony_ci     * @atomicservice
40961847f8eSopenharmony_ci     * @since 12
41061847f8eSopenharmony_ci     */
41161847f8eSopenharmony_ci    FOLDER = 1,
41261847f8eSopenharmony_ci
41361847f8eSopenharmony_ci    /**
41461847f8eSopenharmony_ci     * Indicates that files and folders are allowed to be selected.
41561847f8eSopenharmony_ci     *
41661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService.FolderSelection
41761847f8eSopenharmony_ci     * @since 11
41861847f8eSopenharmony_ci     */
41961847f8eSopenharmony_ci    /**
42061847f8eSopenharmony_ci     * Indicates that files and folders are allowed to be selected.
42161847f8eSopenharmony_ci     *
42261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService.FolderSelection
42361847f8eSopenharmony_ci     * @atomicservice
42461847f8eSopenharmony_ci     * @since 12
42561847f8eSopenharmony_ci     */
42661847f8eSopenharmony_ci    MIXED = 2,
42761847f8eSopenharmony_ci  }
42861847f8eSopenharmony_ci
42961847f8eSopenharmony_ci  /**
43061847f8eSopenharmony_ci   * Enumerates the picker's mode types.
43161847f8eSopenharmony_ci   *
43261847f8eSopenharmony_ci   * @enum { number } DocumentPickerMode
43361847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService.FolderSelection
43461847f8eSopenharmony_ci   * @atomicservice
43561847f8eSopenharmony_ci   * @since 12
43661847f8eSopenharmony_ci   */
43761847f8eSopenharmony_ci    export enum DocumentPickerMode {
43861847f8eSopenharmony_ci      /**
43961847f8eSopenharmony_ci       * Document mode.
44061847f8eSopenharmony_ci       *
44161847f8eSopenharmony_ci       * @syscap SystemCapability.FileManagement.UserFileService
44261847f8eSopenharmony_ci       * @atomicservice
44361847f8eSopenharmony_ci       * @since 12
44461847f8eSopenharmony_ci       */
44561847f8eSopenharmony_ci      DEFAULT = 0,
44661847f8eSopenharmony_ci  
44761847f8eSopenharmony_ci      /**
44861847f8eSopenharmony_ci       * Download mode.
44961847f8eSopenharmony_ci       *
45061847f8eSopenharmony_ci       * @syscap SystemCapability.FileManagement.UserFileService
45161847f8eSopenharmony_ci       * @atomicservice
45261847f8eSopenharmony_ci       * @since 12
45361847f8eSopenharmony_ci       */
45461847f8eSopenharmony_ci      DOWNLOAD = 1,
45561847f8eSopenharmony_ci    }
45661847f8eSopenharmony_ci
45761847f8eSopenharmony_ci  /**
45861847f8eSopenharmony_ci   * DocumentSelectOptions Object.
45961847f8eSopenharmony_ci   *
46061847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService
46161847f8eSopenharmony_ci   * @since 9
46261847f8eSopenharmony_ci   */
46361847f8eSopenharmony_ci  /**
46461847f8eSopenharmony_ci   * DocumentSelectOptions Object.
46561847f8eSopenharmony_ci   *
46661847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService
46761847f8eSopenharmony_ci   * @crossplatform
46861847f8eSopenharmony_ci   * @atomicservice
46961847f8eSopenharmony_ci   * @since 12
47061847f8eSopenharmony_ci   */
47161847f8eSopenharmony_ci  class DocumentSelectOptions {
47261847f8eSopenharmony_ci    /**
47361847f8eSopenharmony_ci     * The default opening uri of the picker window.
47461847f8eSopenharmony_ci     *
47561847f8eSopenharmony_ci     * @type { ?string }
47661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
47761847f8eSopenharmony_ci     * @since 10
47861847f8eSopenharmony_ci     */
47961847f8eSopenharmony_ci    /**
48061847f8eSopenharmony_ci     * The default opening uri of the picker window.
48161847f8eSopenharmony_ci     *
48261847f8eSopenharmony_ci     * @type { ?string }
48361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
48461847f8eSopenharmony_ci     * @crossplatform
48561847f8eSopenharmony_ci     * @atomicservice
48661847f8eSopenharmony_ci     * @since 12
48761847f8eSopenharmony_ci     */
48861847f8eSopenharmony_ci    defaultFilePathUri?: string;
48961847f8eSopenharmony_ci
49061847f8eSopenharmony_ci    /**
49161847f8eSopenharmony_ci     * Suffixes for file selected.
49261847f8eSopenharmony_ci     *
49361847f8eSopenharmony_ci     * @type { ?Array<string> }
49461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
49561847f8eSopenharmony_ci     * @since 10
49661847f8eSopenharmony_ci     */
49761847f8eSopenharmony_ci    /**
49861847f8eSopenharmony_ci     * Suffixes for file selected.
49961847f8eSopenharmony_ci     *
50061847f8eSopenharmony_ci     * @type { ?Array<string> }
50161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
50261847f8eSopenharmony_ci     * @crossplatform
50361847f8eSopenharmony_ci     * @atomicservice
50461847f8eSopenharmony_ci     * @since 12
50561847f8eSopenharmony_ci     */
50661847f8eSopenharmony_ci    fileSuffixFilters?: Array<string>;
50761847f8eSopenharmony_ci
50861847f8eSopenharmony_ci    /**
50961847f8eSopenharmony_ci     * Maximum number of files for a single selection.
51061847f8eSopenharmony_ci     *
51161847f8eSopenharmony_ci     * @type { ?number }
51261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
51361847f8eSopenharmony_ci     * @since 10
51461847f8eSopenharmony_ci     */
51561847f8eSopenharmony_ci    /**
51661847f8eSopenharmony_ci     * Maximum number of files for a single selection.
51761847f8eSopenharmony_ci     *
51861847f8eSopenharmony_ci     * @type { ?number }
51961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
52061847f8eSopenharmony_ci     * @crossplatform
52161847f8eSopenharmony_ci     * @atomicservice
52261847f8eSopenharmony_ci     * @since 12
52361847f8eSopenharmony_ci     */
52461847f8eSopenharmony_ci    maxSelectNumber?: number;
52561847f8eSopenharmony_ci
52661847f8eSopenharmony_ci    /**
52761847f8eSopenharmony_ci     * Selection mode.
52861847f8eSopenharmony_ci     *
52961847f8eSopenharmony_ci     * @type { ?DocumentSelectMode }
53061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService.FolderSelection
53161847f8eSopenharmony_ci     * @since 11
53261847f8eSopenharmony_ci     */
53361847f8eSopenharmony_ci    /**
53461847f8eSopenharmony_ci     * Selection mode.
53561847f8eSopenharmony_ci     *
53661847f8eSopenharmony_ci     * @type { ?DocumentSelectMode }
53761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService.FolderSelection
53861847f8eSopenharmony_ci     * @crossplatform
53961847f8eSopenharmony_ci     * @atomicservice
54061847f8eSopenharmony_ci     * @since 12
54161847f8eSopenharmony_ci     */
54261847f8eSopenharmony_ci    selectMode?: DocumentSelectMode;
54361847f8eSopenharmony_ci
54461847f8eSopenharmony_ci    /**
54561847f8eSopenharmony_ci     * Granting Permissions to Specified Directories or Files.
54661847f8eSopenharmony_ci     * The value true indicates that authorization is required.
54761847f8eSopenharmony_ci     * When authmode is set to true, the defaultFilePathUri field is mandatory.
54861847f8eSopenharmony_ci     *
54961847f8eSopenharmony_ci     * @type { ?boolean }
55061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService.FolderSelection
55161847f8eSopenharmony_ci     * @atomicservice
55261847f8eSopenharmony_ci     * @since 12
55361847f8eSopenharmony_ci     */
55461847f8eSopenharmony_ci    authMode?: boolean;
55561847f8eSopenharmony_ci  }
55661847f8eSopenharmony_ci
55761847f8eSopenharmony_ci  /**
55861847f8eSopenharmony_ci   * DocumentSaveOptions Object
55961847f8eSopenharmony_ci   *
56061847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService
56161847f8eSopenharmony_ci   * @since 9
56261847f8eSopenharmony_ci   */
56361847f8eSopenharmony_ci  /**
56461847f8eSopenharmony_ci   * DocumentSaveOptions Object
56561847f8eSopenharmony_ci   *
56661847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService
56761847f8eSopenharmony_ci   * @crossplatform
56861847f8eSopenharmony_ci   * @atomicservice
56961847f8eSopenharmony_ci   * @since 12
57061847f8eSopenharmony_ci   */
57161847f8eSopenharmony_ci  class DocumentSaveOptions {
57261847f8eSopenharmony_ci    /**
57361847f8eSopenharmony_ci     * The names of the files to be saved.
57461847f8eSopenharmony_ci     *
57561847f8eSopenharmony_ci     * @type { ?Array<string> }
57661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
57761847f8eSopenharmony_ci     * @since 9
57861847f8eSopenharmony_ci     */
57961847f8eSopenharmony_ci    /**
58061847f8eSopenharmony_ci     * The names of the files to be saved.
58161847f8eSopenharmony_ci     *
58261847f8eSopenharmony_ci     * @type { ?Array<string> }
58361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
58461847f8eSopenharmony_ci     * @crossplatform
58561847f8eSopenharmony_ci     * @atomicservice
58661847f8eSopenharmony_ci     * @since 12
58761847f8eSopenharmony_ci     */
58861847f8eSopenharmony_ci    newFileNames?: Array<string>;
58961847f8eSopenharmony_ci
59061847f8eSopenharmony_ci    /**
59161847f8eSopenharmony_ci     * The default opening uri of the picker window.
59261847f8eSopenharmony_ci     *
59361847f8eSopenharmony_ci     * @type { ?string }
59461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
59561847f8eSopenharmony_ci     * @since 10
59661847f8eSopenharmony_ci     */
59761847f8eSopenharmony_ci    /**
59861847f8eSopenharmony_ci     * The default opening uri of the picker window.
59961847f8eSopenharmony_ci     *
60061847f8eSopenharmony_ci     * @type { ?string }
60161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
60261847f8eSopenharmony_ci     * @crossplatform
60361847f8eSopenharmony_ci     * @atomicservice
60461847f8eSopenharmony_ci     * @since 12
60561847f8eSopenharmony_ci     */
60661847f8eSopenharmony_ci    defaultFilePathUri?: string;
60761847f8eSopenharmony_ci
60861847f8eSopenharmony_ci    /**
60961847f8eSopenharmony_ci     * Suffixes for file saved.
61061847f8eSopenharmony_ci     *
61161847f8eSopenharmony_ci     * @type { ?Array<string> }
61261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
61361847f8eSopenharmony_ci     * @since 10
61461847f8eSopenharmony_ci     */
61561847f8eSopenharmony_ci    /**
61661847f8eSopenharmony_ci     * Suffixes for file saved.
61761847f8eSopenharmony_ci     *
61861847f8eSopenharmony_ci     * @type { ?Array<string> }
61961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
62061847f8eSopenharmony_ci     * @atomicservice
62161847f8eSopenharmony_ci     * @since 12
62261847f8eSopenharmony_ci     */
62361847f8eSopenharmony_ci    fileSuffixChoices?: Array<string>;
62461847f8eSopenharmony_ci    /**
62561847f8eSopenharmony_ci     * picker mode.
62661847f8eSopenharmony_ci     *
62761847f8eSopenharmony_ci     * @type { ?DocumentPickerMode }
62861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
62961847f8eSopenharmony_ci     * @atomicservice
63061847f8eSopenharmony_ci     * @since 12
63161847f8eSopenharmony_ci     */
63261847f8eSopenharmony_ci    pickerMode?: DocumentPickerMode;
63361847f8eSopenharmony_ci  }
63461847f8eSopenharmony_ci
63561847f8eSopenharmony_ci  /**
63661847f8eSopenharmony_ci   * DocumentViewPicker Object
63761847f8eSopenharmony_ci   *
63861847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService
63961847f8eSopenharmony_ci   * @since 9
64061847f8eSopenharmony_ci   */
64161847f8eSopenharmony_ci  /**
64261847f8eSopenharmony_ci   * DocumentViewPicker Object
64361847f8eSopenharmony_ci   *
64461847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService
64561847f8eSopenharmony_ci   * @crossplatform
64661847f8eSopenharmony_ci   * @atomicservice
64761847f8eSopenharmony_ci   * @since 12
64861847f8eSopenharmony_ci   */
64961847f8eSopenharmony_ci  class DocumentViewPicker {
65061847f8eSopenharmony_ci    /**
65161847f8eSopenharmony_ci     * The constructor used to create a DocumentViewPicker object.
65261847f8eSopenharmony_ci     *
65361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
65461847f8eSopenharmony_ci     * @atomicservice
65561847f8eSopenharmony_ci     * @since 12
65661847f8eSopenharmony_ci     */
65761847f8eSopenharmony_ci    constructor();
65861847f8eSopenharmony_ci
65961847f8eSopenharmony_ci    /**
66061847f8eSopenharmony_ci     * The constructor used to create a DocumentViewPicker object.
66161847f8eSopenharmony_ci     *
66261847f8eSopenharmony_ci     * @param { Context } context - represents the context.
66361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
66461847f8eSopenharmony_ci     * @atomicservice
66561847f8eSopenharmony_ci     * @since 12
66661847f8eSopenharmony_ci     */
66761847f8eSopenharmony_ci    constructor(context: Context);
66861847f8eSopenharmony_ci
66961847f8eSopenharmony_ci    /**
67061847f8eSopenharmony_ci     * The constructor used to create a DocumentViewPicker object.
67161847f8eSopenharmony_ci     *
67261847f8eSopenharmony_ci     * @param { Context } context - represents the context.
67361847f8eSopenharmony_ci     * @param { window.Window } window - represents the window.
67461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
67561847f8eSopenharmony_ci     * @since 13
67661847f8eSopenharmony_ci     */
67761847f8eSopenharmony_ci    constructor(context: Context, window: window.Window);
67861847f8eSopenharmony_ci
67961847f8eSopenharmony_ci    /**
68061847f8eSopenharmony_ci     * Pull up the document picker based on the selection mode.
68161847f8eSopenharmony_ci     *
68261847f8eSopenharmony_ci     * @param { DocumentSelectOptions } option - represents the options provided in select mode.
68361847f8eSopenharmony_ci     * @returns { Promise<Array<string>> } Returns the uris for the selected files.
68461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
68561847f8eSopenharmony_ci     * @since 9
68661847f8eSopenharmony_ci     */
68761847f8eSopenharmony_ci    /**
68861847f8eSopenharmony_ci     * Pull up the document picker based on the selection mode.
68961847f8eSopenharmony_ci     *
69061847f8eSopenharmony_ci     * @param { DocumentSelectOptions } option - represents the options provided in select mode.
69161847f8eSopenharmony_ci     * @returns { Promise<Array<string>> } Returns the uris for the selected files.
69261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
69361847f8eSopenharmony_ci     * @crossplatform
69461847f8eSopenharmony_ci     * @atomicservice
69561847f8eSopenharmony_ci     * @since 12
69661847f8eSopenharmony_ci     */
69761847f8eSopenharmony_ci    select(option?: DocumentSelectOptions): Promise<Array<string>>;
69861847f8eSopenharmony_ci
69961847f8eSopenharmony_ci    /**
70061847f8eSopenharmony_ci     * Pull up the document picker based on the selection mode.
70161847f8eSopenharmony_ci     *
70261847f8eSopenharmony_ci     * @param { DocumentSelectOptions } option - represents the options provided in select mode.
70361847f8eSopenharmony_ci     * @param { AsyncCallback<Array<string>> } callback - callback
70461847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
70561847f8eSopenharmony_ci     * @since 9
70661847f8eSopenharmony_ci     */
70761847f8eSopenharmony_ci    /**
70861847f8eSopenharmony_ci     * Pull up the document picker based on the selection mode.
70961847f8eSopenharmony_ci     *
71061847f8eSopenharmony_ci     * @param { DocumentSelectOptions } option - represents the options provided in select mode.
71161847f8eSopenharmony_ci     * @param { AsyncCallback<Array<string>> } callback - callback
71261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
71361847f8eSopenharmony_ci     * @crossplatform
71461847f8eSopenharmony_ci     * @atomicservice
71561847f8eSopenharmony_ci     * @since 12
71661847f8eSopenharmony_ci     */
71761847f8eSopenharmony_ci    select(option: DocumentSelectOptions, callback: AsyncCallback<Array<string>>): void;
71861847f8eSopenharmony_ci
71961847f8eSopenharmony_ci    /**
72061847f8eSopenharmony_ci     * Pull up the document picker based on the selection mode.
72161847f8eSopenharmony_ci     *
72261847f8eSopenharmony_ci     * @param { AsyncCallback<Array<string>> } callback - callback
72361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
72461847f8eSopenharmony_ci     * @since 9
72561847f8eSopenharmony_ci     */
72661847f8eSopenharmony_ci    /**
72761847f8eSopenharmony_ci     * Pull up the document picker based on the selection mode.
72861847f8eSopenharmony_ci     *
72961847f8eSopenharmony_ci     * @param { AsyncCallback<Array<string>> } callback - callback
73061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
73161847f8eSopenharmony_ci     * @crossplatform
73261847f8eSopenharmony_ci     * @atomicservice
73361847f8eSopenharmony_ci     * @since 12
73461847f8eSopenharmony_ci     */
73561847f8eSopenharmony_ci    select(callback: AsyncCallback<Array<string>>): void;
73661847f8eSopenharmony_ci
73761847f8eSopenharmony_ci    /**
73861847f8eSopenharmony_ci     * Pull up the document picker based on the save mode.
73961847f8eSopenharmony_ci     *
74061847f8eSopenharmony_ci     * @param { DocumentSaveOptions } option - represents the options provided in save mode.
74161847f8eSopenharmony_ci     * @returns { Promise<Array<string>> } Returns the uris for the saved files.
74261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
74361847f8eSopenharmony_ci     * @since 9
74461847f8eSopenharmony_ci     */
74561847f8eSopenharmony_ci    /**
74661847f8eSopenharmony_ci     * Pull up the document picker based on the save mode.
74761847f8eSopenharmony_ci     *
74861847f8eSopenharmony_ci     * @param { DocumentSaveOptions } option - represents the options provided in save mode.
74961847f8eSopenharmony_ci     * @returns { Promise<Array<string>> } Returns the uris for the saved files.
75061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
75161847f8eSopenharmony_ci     * @crossplatform
75261847f8eSopenharmony_ci     * @atomicservice
75361847f8eSopenharmony_ci     * @since 12
75461847f8eSopenharmony_ci     */
75561847f8eSopenharmony_ci    save(option?: DocumentSaveOptions): Promise<Array<string>>;
75661847f8eSopenharmony_ci
75761847f8eSopenharmony_ci    /**
75861847f8eSopenharmony_ci     * Pull up the document picker based on the save mode.
75961847f8eSopenharmony_ci     *
76061847f8eSopenharmony_ci     * @param { DocumentSaveOptions } option - represents the options provided in save mode.
76161847f8eSopenharmony_ci     * @param { AsyncCallback<Array<string>> } callback - callback
76261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
76361847f8eSopenharmony_ci     * @since 9
76461847f8eSopenharmony_ci     */
76561847f8eSopenharmony_ci    /**
76661847f8eSopenharmony_ci     * Pull up the document picker based on the save mode.
76761847f8eSopenharmony_ci     *
76861847f8eSopenharmony_ci     * @param { DocumentSaveOptions } option - represents the options provided in save mode.
76961847f8eSopenharmony_ci     * @param { AsyncCallback<Array<string>> } callback - callback
77061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
77161847f8eSopenharmony_ci     * @crossplatform
77261847f8eSopenharmony_ci     * @atomicservice
77361847f8eSopenharmony_ci     * @since 12
77461847f8eSopenharmony_ci     */
77561847f8eSopenharmony_ci    save(option: DocumentSaveOptions, callback: AsyncCallback<Array<string>>): void;
77661847f8eSopenharmony_ci
77761847f8eSopenharmony_ci    /**
77861847f8eSopenharmony_ci     * Pull up the document picker based on the save mode.
77961847f8eSopenharmony_ci     *
78061847f8eSopenharmony_ci     * @param { AsyncCallback<Array<string>> } callback - callback
78161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
78261847f8eSopenharmony_ci     * @since 9
78361847f8eSopenharmony_ci     */
78461847f8eSopenharmony_ci    /**
78561847f8eSopenharmony_ci     * Pull up the document picker based on the save mode.
78661847f8eSopenharmony_ci     *
78761847f8eSopenharmony_ci     * @param { AsyncCallback<Array<string>> } callback - callback
78861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
78961847f8eSopenharmony_ci     * @crossplatform
79061847f8eSopenharmony_ci     * @atomicservice
79161847f8eSopenharmony_ci     * @since 12
79261847f8eSopenharmony_ci     */
79361847f8eSopenharmony_ci    save(callback: AsyncCallback<Array<string>>): void;
79461847f8eSopenharmony_ci
79561847f8eSopenharmony_ci    /**
79661847f8eSopenharmony_ci     * Obtain the saving type selected by the user.
79761847f8eSopenharmony_ci     *
79861847f8eSopenharmony_ci     * @returns { number } Returns the index of the suffix array fileSuffixChoices configured by the user in DocumentSaveOptions.
79961847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
80061847f8eSopenharmony_ci     * @crossplatform
80161847f8eSopenharmony_ci     * @atomicservice
80261847f8eSopenharmony_ci     * @since 13
80361847f8eSopenharmony_ci     */
80461847f8eSopenharmony_ci    getSelectedIndex(): number;
80561847f8eSopenharmony_ci  }
80661847f8eSopenharmony_ci
80761847f8eSopenharmony_ci  /**
80861847f8eSopenharmony_ci   * AudioSelectOptions Object. Currently not supported.
80961847f8eSopenharmony_ci   *
81061847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService
81161847f8eSopenharmony_ci   * @since 9
81261847f8eSopenharmony_ci   */
81361847f8eSopenharmony_ci    /**
81461847f8eSopenharmony_ci   * AudioSelectOptions Object.
81561847f8eSopenharmony_ci   *
81661847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService
81761847f8eSopenharmony_ci   * @crossplatform
81861847f8eSopenharmony_ci   * @atomicservice
81961847f8eSopenharmony_ci   * @since 12
82061847f8eSopenharmony_ci   */
82161847f8eSopenharmony_ci    class AudioSelectOptions {
82261847f8eSopenharmony_ci      /**
82361847f8eSopenharmony_ci       * Maximum number of audio for a single selection.
82461847f8eSopenharmony_ci       *
82561847f8eSopenharmony_ci       * @type { ?number }
82661847f8eSopenharmony_ci       * @syscap SystemCapability.FileManagement.UserFileService
82761847f8eSopenharmony_ci       * @crossplatform
82861847f8eSopenharmony_ci       * @atomicservice
82961847f8eSopenharmony_ci       * @since 12
83061847f8eSopenharmony_ci       */
83161847f8eSopenharmony_ci      maxSelectNumber?: number;
83261847f8eSopenharmony_ci    }
83361847f8eSopenharmony_ci
83461847f8eSopenharmony_ci  /**
83561847f8eSopenharmony_ci   * AudioSaveOptions Object
83661847f8eSopenharmony_ci   *
83761847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService
83861847f8eSopenharmony_ci   * @since 9
83961847f8eSopenharmony_ci   */
84061847f8eSopenharmony_ci  /**
84161847f8eSopenharmony_ci   * AudioSaveOptions Object
84261847f8eSopenharmony_ci   *
84361847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService
84461847f8eSopenharmony_ci   * @crossplatform
84561847f8eSopenharmony_ci   * @atomicservice
84661847f8eSopenharmony_ci   * @since 12
84761847f8eSopenharmony_ci   */
84861847f8eSopenharmony_ci  class AudioSaveOptions {
84961847f8eSopenharmony_ci    /**
85061847f8eSopenharmony_ci     * The names of the files to be saved.
85161847f8eSopenharmony_ci     *
85261847f8eSopenharmony_ci     * @type { ?Array<string> }
85361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
85461847f8eSopenharmony_ci     * @since 9
85561847f8eSopenharmony_ci     */
85661847f8eSopenharmony_ci    /**
85761847f8eSopenharmony_ci     * The names of the files to be saved.
85861847f8eSopenharmony_ci     *
85961847f8eSopenharmony_ci     * @type { ?Array<string> }
86061847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
86161847f8eSopenharmony_ci     * @crossplatform
86261847f8eSopenharmony_ci     * @atomicservice
86361847f8eSopenharmony_ci     * @since 12
86461847f8eSopenharmony_ci     */
86561847f8eSopenharmony_ci    newFileNames?: Array<string>;
86661847f8eSopenharmony_ci  }
86761847f8eSopenharmony_ci
86861847f8eSopenharmony_ci  /**
86961847f8eSopenharmony_ci   * AudioViewPicker Object
87061847f8eSopenharmony_ci   *
87161847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService
87261847f8eSopenharmony_ci   * @since 9
87361847f8eSopenharmony_ci   */
87461847f8eSopenharmony_ci  /**
87561847f8eSopenharmony_ci   * AudioViewPicker Object
87661847f8eSopenharmony_ci   *
87761847f8eSopenharmony_ci   * @syscap SystemCapability.FileManagement.UserFileService
87861847f8eSopenharmony_ci   * @crossplatform
87961847f8eSopenharmony_ci   * @atomicservice
88061847f8eSopenharmony_ci   * @since 12
88161847f8eSopenharmony_ci   */
88261847f8eSopenharmony_ci  class AudioViewPicker {
88361847f8eSopenharmony_ci    /**
88461847f8eSopenharmony_ci     * The constructor used to create a AudioViewPicker object.
88561847f8eSopenharmony_ci     *
88661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
88761847f8eSopenharmony_ci     * @atomicservice
88861847f8eSopenharmony_ci     * @since 12
88961847f8eSopenharmony_ci     */
89061847f8eSopenharmony_ci    constructor();
89161847f8eSopenharmony_ci
89261847f8eSopenharmony_ci    /**
89361847f8eSopenharmony_ci     * The constructor used to create a AudioViewPicker object.
89461847f8eSopenharmony_ci     *
89561847f8eSopenharmony_ci     * @param { Context } context - represents the context.
89661847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
89761847f8eSopenharmony_ci     * @atomicservice
89861847f8eSopenharmony_ci     * @since 12
89961847f8eSopenharmony_ci     */
90061847f8eSopenharmony_ci    constructor(context: Context);
90161847f8eSopenharmony_ci
90261847f8eSopenharmony_ci    /**
90361847f8eSopenharmony_ci     * Pull up the audio picker based on the selection mode.
90461847f8eSopenharmony_ci     *
90561847f8eSopenharmony_ci     * @param { AudioSelectOptions } option - represents the options provided in select mode.
90661847f8eSopenharmony_ci     * @returns { Promise<Array<string>> } Returns the uris for the selected files.
90761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
90861847f8eSopenharmony_ci     * @since 9
90961847f8eSopenharmony_ci     */
91061847f8eSopenharmony_ci    /**
91161847f8eSopenharmony_ci     * Pull up the audio picker based on the selection mode.
91261847f8eSopenharmony_ci     *
91361847f8eSopenharmony_ci     * @param { AudioSelectOptions } option - represents the options provided in select mode.
91461847f8eSopenharmony_ci     * @returns { Promise<Array<string>> } Returns the uris for the selected files.
91561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
91661847f8eSopenharmony_ci     * @crossplatform
91761847f8eSopenharmony_ci     * @atomicservice
91861847f8eSopenharmony_ci     * @since 12
91961847f8eSopenharmony_ci     */
92061847f8eSopenharmony_ci    select(option?: AudioSelectOptions): Promise<Array<string>>;
92161847f8eSopenharmony_ci
92261847f8eSopenharmony_ci    /**
92361847f8eSopenharmony_ci     * Pull up the audio picker based on the selection mode.
92461847f8eSopenharmony_ci     *
92561847f8eSopenharmony_ci     * @param { AudioSelectOptions } option - represents the options provided in select mode.
92661847f8eSopenharmony_ci     * @param { AsyncCallback<Array<string>> } callback - callback
92761847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
92861847f8eSopenharmony_ci     * @since 9
92961847f8eSopenharmony_ci     */
93061847f8eSopenharmony_ci    /**
93161847f8eSopenharmony_ci     * Pull up the audio picker based on the selection mode.
93261847f8eSopenharmony_ci     *
93361847f8eSopenharmony_ci     * @param { AudioSelectOptions } option - represents the options provided in select mode.
93461847f8eSopenharmony_ci     * @param { AsyncCallback<Array<string>> } callback - callback
93561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
93661847f8eSopenharmony_ci     * @crossplatform
93761847f8eSopenharmony_ci     * @since 12
93861847f8eSopenharmony_ci     */
93961847f8eSopenharmony_ci    select(option: AudioSelectOptions, callback: AsyncCallback<Array<string>>): void;
94061847f8eSopenharmony_ci
94161847f8eSopenharmony_ci    /**
94261847f8eSopenharmony_ci     * Pull up the audio picker based on the selection mode.
94361847f8eSopenharmony_ci     *
94461847f8eSopenharmony_ci     * @param { AsyncCallback<Array<string>> } callback - callback
94561847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
94661847f8eSopenharmony_ci     * @since 9
94761847f8eSopenharmony_ci     */
94861847f8eSopenharmony_ci    /**
94961847f8eSopenharmony_ci     * Pull up the audio picker based on the selection mode.
95061847f8eSopenharmony_ci     *
95161847f8eSopenharmony_ci     * @param { AsyncCallback<Array<string>> } callback - callback
95261847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
95361847f8eSopenharmony_ci     * @crossplatform
95461847f8eSopenharmony_ci     * @since 12
95561847f8eSopenharmony_ci     */
95661847f8eSopenharmony_ci    select(callback: AsyncCallback<Array<string>>): void;
95761847f8eSopenharmony_ci
95861847f8eSopenharmony_ci    /**
95961847f8eSopenharmony_ci     * Pull up the audio picker based on the save mode.
96061847f8eSopenharmony_ci     *
96161847f8eSopenharmony_ci     * @param { AudioSaveOptions } option - represents the options provided in save mode.
96261847f8eSopenharmony_ci     * @returns { Promise<Array<string>> } Returns the uris for the saved files.
96361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
96461847f8eSopenharmony_ci     * @since 9
96561847f8eSopenharmony_ci     */
96661847f8eSopenharmony_ci    /**
96761847f8eSopenharmony_ci     * Pull up the audio picker based on the save mode.
96861847f8eSopenharmony_ci     *
96961847f8eSopenharmony_ci     * @param { AudioSaveOptions } option - represents the options provided in save mode.
97061847f8eSopenharmony_ci     * @returns { Promise<Array<string>> } Returns the uris for the saved files.
97161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
97261847f8eSopenharmony_ci     * @crossplatform
97361847f8eSopenharmony_ci     * @atomicservice
97461847f8eSopenharmony_ci     * @since 12
97561847f8eSopenharmony_ci     */
97661847f8eSopenharmony_ci    save(option?: AudioSaveOptions): Promise<Array<string>>;
97761847f8eSopenharmony_ci
97861847f8eSopenharmony_ci    /**
97961847f8eSopenharmony_ci     * Pull up the audio picker based on the save mode.
98061847f8eSopenharmony_ci     *
98161847f8eSopenharmony_ci     * @param { AudioSaveOptions } option - represents the options provided in save mode.
98261847f8eSopenharmony_ci     * @param { AsyncCallback<Array<string>> } callback - callback
98361847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
98461847f8eSopenharmony_ci     * @since 9
98561847f8eSopenharmony_ci     */
98661847f8eSopenharmony_ci    /**
98761847f8eSopenharmony_ci     * Pull up the audio picker based on the save mode.
98861847f8eSopenharmony_ci     *
98961847f8eSopenharmony_ci     * @param { AudioSaveOptions } option - represents the options provided in save mode.
99061847f8eSopenharmony_ci     * @param { AsyncCallback<Array<string>> } callback - callback
99161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
99261847f8eSopenharmony_ci     * @crossplatform
99361847f8eSopenharmony_ci     * @since 12
99461847f8eSopenharmony_ci     */
99561847f8eSopenharmony_ci    save(option: AudioSaveOptions, callback: AsyncCallback<Array<string>>): void;
99661847f8eSopenharmony_ci
99761847f8eSopenharmony_ci    /**
99861847f8eSopenharmony_ci     * Pull up the audio picker based on the save mode.
99961847f8eSopenharmony_ci     *
100061847f8eSopenharmony_ci     * @param { AsyncCallback<Array<string>> } callback - callback
100161847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
100261847f8eSopenharmony_ci     * @since 9
100361847f8eSopenharmony_ci     */
100461847f8eSopenharmony_ci    /**
100561847f8eSopenharmony_ci     * Pull up the audio picker based on the save mode.
100661847f8eSopenharmony_ci     *
100761847f8eSopenharmony_ci     * @param { AsyncCallback<Array<string>> } callback - callback
100861847f8eSopenharmony_ci     * @syscap SystemCapability.FileManagement.UserFileService
100961847f8eSopenharmony_ci     * @crossplatform
101061847f8eSopenharmony_ci     * @since 12
101161847f8eSopenharmony_ci     */
101261847f8eSopenharmony_ci    save(callback: AsyncCallback<Array<string>>): void;
101361847f8eSopenharmony_ci  }
101461847f8eSopenharmony_ci}
101561847f8eSopenharmony_ci
101661847f8eSopenharmony_ciexport default picker;
1017