@@ -42,16 +42,16 @@ external JSPromise<JSString> getDownloadURL(ReferenceJsImpl ref);
4242
4343@JS ()
4444@staticInterop
45- external JSPromise /* FullMetadataJsImpl */ getMetadata (ReferenceJsImpl ref);
45+ external JSPromise < FullMetadataJsImpl > getMetadata (ReferenceJsImpl ref);
4646
4747@JS ()
4848@staticInterop
49- external JSPromise /* ListResultJsImpl */ list (ReferenceJsImpl ref,
49+ external JSPromise < ListResultJsImpl > list (ReferenceJsImpl ref,
5050 [ListOptionsJsImpl ? listOptions]);
5151
5252@JS ()
5353@staticInterop
54- external JSPromise /* ListResultJsImpl */ listAll (ReferenceJsImpl ref);
54+ external JSPromise < ListResultJsImpl > listAll (ReferenceJsImpl ref);
5555
5656@JS ()
5757@staticInterop
@@ -61,7 +61,7 @@ external ReferenceJsImpl ref(JSAny storageOrRef, [JSString? urlOrPath]);
6161
6262@JS ()
6363@staticInterop
64- external JSPromise /* FullMetadataJsImpl */ updateMetadata (
64+ external JSPromise < FullMetadataJsImpl > updateMetadata (
6565 ReferenceJsImpl ref, SettableMetadataJsImpl settableMetadata);
6666
6767@JS ()
@@ -81,11 +81,7 @@ extension EmulatorOptionsJsImplX on EmulatorOptions {
8181 external JSString ? get mockUserToken;
8282}
8383
84- @JS ('FirebaseStorage' )
85- @staticInterop
86- abstract class StorageJsImpl {}
87-
88- extension StorageJsImplX on StorageJsImpl {
84+ extension type StorageJsImpl ._(JSObject _) implements JSObject {
8985 external AppJsImpl get app;
9086 external set app (AppJsImpl a);
9187 external JSNumber get maxOperationRetryTime;
@@ -94,11 +90,7 @@ extension StorageJsImplX on StorageJsImpl {
9490 external set maxUploadRetryTime (JSNumber t);
9591}
9692
97- @JS ('StorageReference' )
98- @staticInterop
99- abstract class ReferenceJsImpl {}
100-
101- extension ReferenceJsImplX on ReferenceJsImpl {
93+ extension type ReferenceJsImpl ._(JSObject _) implements JSObject {
10294 external JSString get bucket;
10395 external set bucket (JSString s);
10496 external JSString get fullPath;
@@ -114,9 +106,8 @@ extension ReferenceJsImplX on ReferenceJsImpl {
114106}
115107
116108@JS ('FullMetadata' )
117- @staticInterop
118- @anonymous
119- class FullMetadataJsImpl extends UploadMetadataJsImpl {
109+ extension type FullMetadataJsImpl ._(JSObject _)
110+ implements UploadMetadataJsImpl , JSObject {
120111 external factory FullMetadataJsImpl ({
121112 JSString bucket,
122113 JSArray ? downloadTokens,
@@ -136,9 +127,7 @@ class FullMetadataJsImpl extends UploadMetadataJsImpl {
136127 JSString ? contentType,
137128 JSAny ? customMetadata,
138129 });
139- }
140130
141- extension FullMetadataJsImplX on FullMetadataJsImpl {
142131 external JSString get bucket;
143132 // TODO - new API.
144133 external JSArray ? get downloadTokens;
@@ -154,9 +143,8 @@ extension FullMetadataJsImplX on FullMetadataJsImpl {
154143}
155144
156145@JS ('UploadMetadata' )
157- @staticInterop
158- @anonymous
159- class UploadMetadataJsImpl extends SettableMetadataJsImpl {
146+ extension type UploadMetadataJsImpl ._(JSObject _)
147+ implements SettableMetadataJsImpl , JSObject {
160148 external factory UploadMetadataJsImpl (
161149 {JSString ? md5Hash,
162150 JSString ? cacheControl,
@@ -165,18 +153,12 @@ class UploadMetadataJsImpl extends SettableMetadataJsImpl {
165153 JSString ? contentLanguage,
166154 JSString ? contentType,
167155 JSAny ? customMetadata});
168- }
169156
170- extension UploadMetadataJsImplX on UploadMetadataJsImpl {
171157 external JSString ? get md5Hash;
172158 external set md5Hash (JSString ? s);
173159}
174160
175- @JS ('UploadTask' )
176- @staticInterop
177- abstract class UploadTaskJsImpl {}
178-
179- extension UploadTaskJsImplX on UploadTaskJsImpl {
161+ extension type UploadTaskJsImpl ._(JSObject _) implements JSObject {
180162 external UploadTaskSnapshotJsImpl get snapshot;
181163 external set snapshot (UploadTaskSnapshotJsImpl t);
182164 external JSBoolean cancel ();
@@ -188,12 +170,7 @@ extension UploadTaskJsImplX on UploadTaskJsImpl {
188170 [JSFunction ? onResolve, JSFunction ? onReject]);
189171}
190172
191- @JS ('UploadTaskSnapshot' )
192- @staticInterop
193- @anonymous
194- abstract class UploadTaskSnapshotJsImpl {}
195-
196- extension UploadTaskSnapshotJsImplX on UploadTaskSnapshotJsImpl {
173+ extension type UploadTaskSnapshotJsImpl ._(JSObject _) implements JSObject {
197174 external JSNumber get bytesTransferred;
198175 external FullMetadataJsImpl get metadata;
199176 external ReferenceJsImpl get ref;
@@ -203,19 +180,15 @@ extension UploadTaskSnapshotJsImplX on UploadTaskSnapshotJsImpl {
203180}
204181
205182@JS ('SettableMetadata' )
206- @staticInterop
207- @anonymous
208- class SettableMetadataJsImpl {
183+ extension type SettableMetadataJsImpl ._(JSObject _) implements JSObject {
209184 external factory SettableMetadataJsImpl (
210185 {JSString ? cacheControl,
211186 JSString ? contentDisposition,
212187 JSString ? contentEncoding,
213188 JSString ? contentLanguage,
214189 JSString ? contentType,
215190 JSAny ? customMetadata});
216- }
217191
218- extension SettableMetadataJsImplX on SettableMetadataJsImpl {
219192 external JSString ? get cacheControl;
220193 external set cacheControl (JSString ? s);
221194 external JSString ? get contentDisposition;
@@ -244,12 +217,7 @@ extension ListOptionsJsImplX on ListOptionsJsImpl {
244217 external JSString ? get pageToken;
245218}
246219
247- @JS ('ListResult' )
248- @staticInterop
249- @anonymous
250- class ListResultJsImpl {}
251-
252- extension ListResultJsImplX on ListResultJsImpl {
220+ extension type ListResultJsImpl ._(JSObject _) implements JSObject {
253221 external JSArray /* ReferenceJsImpl */ get items;
254222 external JSString ? get nextPageToken;
255223 external JSArray /* ReferenceJsImpl */ get prefixes;
0 commit comments