diff --git a/api/@ohos.file.picker.d.ts b/api/@ohos.file.picker.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..e9225538eed414aba3d47e31b2bb127a5e684700 --- /dev/null +++ b/api/@ohos.file.picker.d.ts @@ -0,0 +1,234 @@ +/* + * Copyright (c) 2023 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"), + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { AsyncCallback, Callback } from "./basic"; + +/** + * This module provides the capabilities to use different pickers. + * + * @since 9 + * @syscap SystemCapability.FileManagement.UserFileService + */ +declare namespace picker { + /** + * PhotoViewMIMETypes represents the type of media resource that photo picker selects. + * @since 9 + * @syscap SystemCapability.FileManagement.UserFileService + */ + export enum PhotoViewMIMETypes { + IMAGE_TYPE = "image/*", + VIDEO_TYPE = "video/*", + IMAGE_VIDEO_TYPE = "*/*" + } + + /** + * PhotoSelectOptions Object + * @since 9 + * @syscap SystemCapability.FileManagement.UserFileService + */ + interface PhotoSelectOptions { + /** + * The Type of the file in the picker window. + * @type {PhotoViewMIMETypes} + * @since 9 + */ + MIMEType?: PhotoViewMIMETypes; + + /** + * Maximum number of images for a single selection. + * @type {number} + * @since 9 + */ + maxSelectNumber?: number; + } + + /** + * PhotoSelectResult Object + * @since 9 + * @syscap SystemCapability.FileManagement.UserFileService + */ + interface PhotoSelectResult { + /** + * The uris for the selected files. + * @type {Array} + * @since 9 + */ + photoUris: Array; + + /** + * Original option. + * @type {boolean} + * @since 9 + */ + isOriginalPhoto: boolean; + } + + /** + * PhotoSaveOptions Object + * @since 9 + * @syscap SystemCapability.FileManagement.UserFileService + */ + interface PhotoSaveOptions { + /** + * The names of the files to be saved. + * @type {Array} + * @since 9 + */ + newFileNames?: Array; + } + + /** + * PhotoViewPicker Object + * @since 9 + * @syscap SystemCapability.FileManagement.UserFileService + */ + interface PhotoViewPicker { + /** + * Pull up the photo picker based on the selection mode. + * + * @since 9 + * @syscap SystemCapability.FileManagement.UserFileService + * @param PhotoSelectOptions represents the options provided in select mode. + * @returns {(void | Promise)} Returns the uris for the selected files. + */ + select(option?: PhotoSelectOptions) : Promise; + select(option: PhotoSelectOptions, callback: AsyncCallback) : void; + select(callback: AsyncCallback) : void; + + /** + * Pull up the photo picker based on the save mode. + * + * @since 9 + * @syscap SystemCapability.FileManagement.UserFileService + * @param PhotoSaveOptions represents the options provided in save mode. + * @returns {(void | Promise>)} Returns the uris for the saved files. + */ + save(option?: PhotoSaveOptions) : Promise>; + save(option: PhotoSaveOptions, callback: AsyncCallback>) : void; + save(callback: AsyncCallback>) : void; + } + + /** + * DocumentSelectOptions Object. Currently not supported. + * @since 9 + * @syscap SystemCapability.FileManagement.UserFileService + */ + interface DocumentSelectOptions { + } + + /** + * DocumentSaveOptions Object + * @since 9 + * @syscap SystemCapability.FileManagement.UserFileService + */ + interface DocumentSaveOptions { + /** + * The names of the files to be saved. + * Currently, only single file is supported. + * @type {Array} + * @since 9 + */ + newFileNames?: Array; + } + + /** + * DocumentViewPicker Object + * @since 9 + * @syscap SystemCapability.FileManagement.UserFileService + */ + interface DocumentViewPicker { + /** + * Pull up the document picker based on the selection mode. + * Currently, only single file is supported. + * + * @since 9 + * @syscap SystemCapability.FileManagement.UserFileService + * @param DocumentSelectOptions represents the options provided in select mode. + * @returns {(void | Promise>)} Returns the uris for the selected files. + */ + select(option?: DocumentSelectOptions) : Promise>; + select(option: DocumentSelectOptions, callback: AsyncCallback>) : void; + select(callback: AsyncCallback>) : void; + + /** + * Pull up the document picker based on the save mode. + * Currently, only single file is supported. + * + * @since 9 + * @syscap SystemCapability.FileManagement.UserFileService + * @param DocumentSaveOptions represents the options provided in save mode. + * @returns {(void | Promise>)} Returns the uris for the saved files. + */ + save(option?: DocumentSaveOptions) : Promise>; + save(option: DocumentSaveOptions, callback: AsyncCallback>) : void; + save(callback: AsyncCallback>) : void; + } + + /** + * AudioSelectOptions Object. Currently not supported. + * @since 9 + * @syscap SystemCapability.FileManagement.UserFileService + */ + interface AudioSelectOptions { + } + + /** + * AudioSaveOptions Object + * @since 9 + * @syscap SystemCapability.FileManagement.UserFileService + */ + interface AudioSaveOptions { + /** + * The names of the files to be saved. + * Currently, only single file is supported. + * @type {Array} + * @since 9 + */ + newFileNames?: Array; + } + + /** + * AudioViewPicker Object + * @since 9 + * @syscap SystemCapability.FileManagement.UserFileService + */ + interface AudioViewPicker { + /** + * Pull up the audio picker based on the selection mode. + * Currently, only single file is supported. + * + * @since 9 + * @syscap SystemCapability.FileManagement.UserFileService + * @param AudioSelectOptions represents the options provided in select mode. + * @returns {(void | Promise>)} Returns the uris for the selected files. + */ + select(option?: AudioSelectOptions) : Promise>; + select(option: AudioSelectOptions, callback: AsyncCallback>) : void; + select(callback: AsyncCallback>) : void; + + /** + * Pull up the audio picker based on the save mode. + * Currently, only single file is supported. + * + * @since 9 + * @syscap SystemCapability.FileManagement.UserFileService + * @param AudioSaveOptions represents the options provided in save mode. + * @returns {(void | Promise>)} Returns the uris for the saved files. + */ + save(option?: AudioSaveOptions) : Promise>; + save(option: AudioSaveOptions, callback: AsyncCallback>) : void; + save(callback: AsyncCallback>) : void; + } +} \ No newline at end of file