/* eslint-disable @typescript-eslint/no-wrapper-object-types */ import type { TurboModule } from 'react-native'; import { TurboModuleRegistry } from 'react-native'; export interface StorageListOptions { maxResults: number; pageToken?: string | null; } export interface Spec extends TurboModule { getConstants(): { maxDownloadRetryTime: number; maxOperationRetryTime: number; maxUploadRetryTime: number; }; deleteObject(appName: string, url: string): Promise; getDownloadURL(appName: string, url: string): Promise; getMetadata(appName: string, url: string): Promise; updateMetadata(appName: string, url: string, metadata: Object | null): Promise; list(appName: string, url: string, listOptions: StorageListOptions): Promise; listAll(appName: string, url: string): Promise; setMaxDownloadRetryTime(appName: string, milliseconds: number): Promise; setMaxOperationRetryTime(appName: string, milliseconds: number): Promise; setMaxUploadRetryTime(appName: string, milliseconds: number): Promise; useEmulator(appName: string, host: string, port: number, bucketUrl: string): void; writeToFile(appName: string, url: string, localFilePath: string, taskId: number): Promise; putFile( appName: string, url: string, localFilePath: string, metadata: Object | null, taskId: number, ): Promise; putString( appName: string, url: string, string: string, format: string, metadata: Object | null, taskId: number, ): Promise; setTaskStatus(appName: string, taskId: number, status: number): boolean; } export default TurboModuleRegistry.getEnforcing('NativeRNFBTurboStorage');