UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

65 lines (57 loc) • 2.49 kB
import type { HybridObject } from 'react-native-nitro-modules' export type PhotoLibraryPermissionStatus = | 'notDetermined' | 'restricted' | 'denied' | 'authorized' | 'limited' export type PhotoLibraryMediaType = 'image' | 'video' | 'audio' | 'unknown' export interface PhotoLibraryAsset { identifier: string mediaType: PhotoLibraryMediaType width: number height: number durationMs: number creationDateMs?: number isFavorite: boolean isLivePhoto: boolean } export interface PhotoLibraryAssetPage { assets: PhotoLibraryAsset[] totalCount: number } export interface PhotoLibraryAlbum { identifier: string title: string } export interface PhotoLibraryAlbumPage { albums: PhotoLibraryAlbum[] totalCount: number } export interface OnePhotoLibrary extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> { getAddPermissionStatus(): PhotoLibraryPermissionStatus requestAddPermission(): Promise<PhotoLibraryPermissionStatus> getReadPermissionStatus(): PhotoLibraryPermissionStatus requestReadPermission(): Promise<PhotoLibraryPermissionStatus> presentLimitedLibraryPicker(): Promise<string[]> listAssets(offset: number, limit: number): Promise<PhotoLibraryAssetPage> getAsset(identifier: string): Promise<PhotoLibraryAsset> listAlbums(offset: number, limit: number): Promise<PhotoLibraryAlbumPage> getAlbum(identifier: string): Promise<PhotoLibraryAlbum> createAlbum(title: string): Promise<string> renameAlbum(identifier: string, title: string): Promise<void> listAlbumAssets(identifier: string, offset: number, limit: number): Promise<PhotoLibraryAssetPage> addAssetToAlbum(albumIdentifier: string, assetIdentifier: string): Promise<void> removeAssetFromAlbum(albumIdentifier: string, assetIdentifier: string): Promise<void> deleteAlbum(identifier: string): Promise<void> setFavorite(identifier: string, favorite: boolean): Promise<void> deleteAsset(identifier: string): Promise<void> replaceImageContent(identifier: string, uri: string): Promise<void> replaceVideoContent(identifier: string, uri: string): Promise<void> revertAssetContent(identifier: string): Promise<void> exportOriginalAsset(identifier: string, allowNetwork: boolean): Promise<string> exportCurrentImage(identifier: string, allowNetwork: boolean): Promise<string> exportCurrentVideo(identifier: string, allowNetwork: boolean): Promise<string> saveImage(uri: string): Promise<string> saveVideo(uri: string): Promise<string> }