66
77package dev.gitlive.firebase
88
9+ import kotlinx.serialization.StringFormat
10+ import org.khronos.webgl.Uint8Array
11+ import org.w3c.files.Blob
12+ import org.w3c.files.File
913import kotlin.js.Json
1014import kotlin.js.Promise
1115
@@ -19,6 +23,7 @@ external object firebase {
1923 fun functions (region : String? = definedExternally): functions.Functions
2024 fun database (url : String? = definedExternally): database.Database
2125 fun firestore (): firestore.Firestore
26+ fun storage (): storage.Storage
2227 }
2328
2429 interface Options {
@@ -502,6 +507,108 @@ external object firebase {
502507 }
503508 }
504509
510+ fun storage (): storage.Storage
511+
512+ object storage {
513+
514+ open class Storage {
515+ val maxOperationRetryTime: Double
516+ val maxUploadRetryTime: Double
517+
518+ fun setMaxOperationRetryTime (time : Double ): Unit
519+ fun setMaxUploadRetryTime (time : Double ): Unit
520+ fun useEmulator (host : String , port : Int )
521+ }
522+
523+ open class Reference {
524+ val bucket: String
525+ val fullPath: String
526+ val name: String
527+ val parent: Reference ?
528+ val root: Reference
529+ val storage: Storage
530+
531+ fun child (path : String ): Reference
532+ fun delete (): Promise <Unit >
533+ fun getDownloadURL (): Promise <String >
534+ fun getMetadata (): Promise <FullMetadata >
535+ fun list (options : ListOptions ? = definedExternally): Promise <ListResult >
536+ fun listAll (): Promise <ListResult >
537+ fun put (data : Blob , metadata : UploadMetadata ? = definedExternally): UploadTask
538+ fun put (data : Uint8Array , metadata : UploadMetadata ? = definedExternally): UploadTask
539+ fun put (data : File , metadata : UploadMetadata ? = definedExternally): UploadTask
540+ fun putString (data : String , format : StringFormat ? = definedExternally, metadata : UploadMetadata ? = definedExternally): UploadTask
541+ fun updateMetadata (metadata : SettableMetadata ): Promise <FullMetadata >
542+ }
543+
544+ open class FullMetadata {
545+ val bucket: String
546+ val fullPath: String
547+ val generation: String
548+ val metageneration: String
549+ val name: String
550+ val size: Number
551+ val timeCreated: String
552+ val updated: String
553+ val customMetadata: Json
554+ }
555+
556+ open class ListOptions {
557+ val maxResults: Number
558+ val pageToken: String
559+ }
560+
561+ open class ListResult {
562+ val items: Array <Reference >
563+ val nextPageToken: String
564+ val prefixes: Array <Reference >
565+ }
566+
567+ open class SettableMetadata {
568+ var cacheControl: String?
569+ var contentDisposition: String?
570+ var contentEncoding: String?
571+ var contentLanguage: String?
572+ var contentType: String?
573+ var customMetadata: Json ?
574+ }
575+
576+ open class UploadMetadata {
577+ var cacheControl: String?
578+ var contentDisposition: String?
579+ var contentEncoding: String?
580+ var contentLanguage: String?
581+ var contentType: String?
582+ var customMetadata: Json ?
583+ }
584+
585+ open class UploadTask {
586+ val snapshot: UploadTaskSnapshot
587+
588+ fun cancel (): Boolean
589+ fun pause (): Boolean
590+ fun resume (): Boolean
591+ fun on (event : String , next : (snapshot: UploadTaskSnapshot ) -> Unit , error : (a: FirebaseStorageError ) -> Unit , complete : () -> Unit ): () -> Unit
592+ }
593+
594+ open class UploadTaskSnapshot {
595+ val bytesTransferred: Number
596+ val metadata: FullMetadata
597+ val ref: Reference
598+ val state: String
599+ val task: UploadTask
600+ val totalBytes: Number
601+ }
602+
603+ open class FirebaseStorageError {
604+ val code: String
605+ val message: String
606+ val name: String
607+ val stack: String?
608+ }
609+
610+ }
611+
505612 fun remoteConfig (app : App ? = definedExternally): remoteConfig.RemoteConfig
506613
507614 object remoteConfig {
0 commit comments