@fishjam-cloud/js-server-sdk 0.29.0 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -4,7 +4,7 @@ import { BinaryWriter, BinaryReader } from '@bufbuild/protobuf/wire';
4
4
  * Fishjam API
5
5
  * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
6
6
  *
7
- * The version of the OpenAPI document: 0.28.1
7
+ * The version of the OpenAPI document: 0.30.0
8
8
  * Contact: contact@fishjam.io
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -35,7 +35,7 @@ interface MoqAccess {
35
35
  * Fishjam API
36
36
  * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
37
37
  *
38
- * The version of the OpenAPI document: 0.28.1
38
+ * The version of the OpenAPI document: 0.30.0
39
39
  * Contact: contact@fishjam.io
40
40
  *
41
41
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -66,7 +66,178 @@ interface MoqAccessConfig {
66
66
  * Fishjam API
67
67
  * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
68
68
  *
69
- * The version of the OpenAPI document: 0.28.1
69
+ * The version of the OpenAPI document: 0.30.0
70
+ * Contact: contact@fishjam.io
71
+ *
72
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
73
+ * https://openapi-generator.tech
74
+ * Do not edit the class manually.
75
+ */
76
+ /**
77
+ * The source for the recording
78
+ * @export
79
+ * @interface RecordingSource
80
+ */
81
+ interface RecordingSource {
82
+ /**
83
+ * URL of the composition to record
84
+ * @type {string}
85
+ * @memberof RecordingSource
86
+ */
87
+ compositionURL: string;
88
+ /**
89
+ * Id of the output being recorded
90
+ * @type {string}
91
+ * @memberof RecordingSource
92
+ */
93
+ outputId: string;
94
+ /**
95
+ * Scale factor for the recording relative to the source output (>0; may upscale or downscale). Defaults to 1.
96
+ * @type {number}
97
+ * @memberof RecordingSource
98
+ */
99
+ scaleRatio?: number;
100
+ }
101
+
102
+ /**
103
+ * Fishjam API
104
+ * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
105
+ *
106
+ * The version of the OpenAPI document: 0.30.0
107
+ * Contact: contact@fishjam.io
108
+ *
109
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
110
+ * https://openapi-generator.tech
111
+ * Do not edit the class manually.
112
+ */
113
+
114
+ /**
115
+ * Recording configuration
116
+ * @export
117
+ * @interface RecordingConfig
118
+ */
119
+ interface RecordingConfig {
120
+ /**
121
+ * Free-form, user-supplied metadata used to organize and filter recordings
122
+ * @type {{ [key: string]: any; }}
123
+ * @memberof RecordingConfig
124
+ */
125
+ metadata?: {
126
+ [key: string]: any;
127
+ } | null;
128
+ /**
129
+ *
130
+ * @type {RecordingSource}
131
+ * @memberof RecordingConfig
132
+ */
133
+ source: RecordingSource;
134
+ }
135
+
136
+ /**
137
+ * Fishjam API
138
+ * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
139
+ *
140
+ * The version of the OpenAPI document: 0.30.0
141
+ * Contact: contact@fishjam.io
142
+ *
143
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
144
+ * https://openapi-generator.tech
145
+ * Do not edit the class manually.
146
+ */
147
+ /**
148
+ * Lifecycle status of a recording
149
+ * @export
150
+ */
151
+ declare const RecordingStatus$1: {
152
+ readonly Active: "active";
153
+ readonly Finished: "finished";
154
+ readonly Available: "available";
155
+ readonly Failed: "failed";
156
+ };
157
+ type RecordingStatus$1 = typeof RecordingStatus$1[keyof typeof RecordingStatus$1];
158
+
159
+ /**
160
+ * Fishjam API
161
+ * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
162
+ *
163
+ * The version of the OpenAPI document: 0.30.0
164
+ * Contact: contact@fishjam.io
165
+ *
166
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
167
+ * https://openapi-generator.tech
168
+ * Do not edit the class manually.
169
+ */
170
+ /**
171
+ * A single media file of a recording
172
+ * @export
173
+ * @interface RecordingFile
174
+ */
175
+ interface RecordingFile {
176
+ /**
177
+ * Public URL the file is served at
178
+ * @type {string}
179
+ * @memberof RecordingFile
180
+ */
181
+ url: string;
182
+ }
183
+
184
+ /**
185
+ * Fishjam API
186
+ * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
187
+ *
188
+ * The version of the OpenAPI document: 0.30.0
189
+ * Contact: contact@fishjam.io
190
+ *
191
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
192
+ * https://openapi-generator.tech
193
+ * Do not edit the class manually.
194
+ */
195
+
196
+ /**
197
+ * A recording and its current lifecycle status
198
+ * @export
199
+ * @interface Recording
200
+ */
201
+ interface Recording$1 {
202
+ /**
203
+ * Media files of the recording, in playback order. Empty until the recording is `available`.
204
+ * @type {Array<RecordingFile>}
205
+ * @memberof Recording
206
+ */
207
+ files: Array<RecordingFile>;
208
+ /**
209
+ * Assigned recording id
210
+ * @type {string}
211
+ * @memberof Recording
212
+ */
213
+ id: string;
214
+ /**
215
+ * Free-form, user-supplied metadata used to organize and filter recordings
216
+ * @type {{ [key: string]: any; }}
217
+ * @memberof Recording
218
+ */
219
+ metadata?: {
220
+ [key: string]: any;
221
+ } | null;
222
+ /**
223
+ *
224
+ * @type {RecordingSource}
225
+ * @memberof Recording
226
+ */
227
+ source: RecordingSource;
228
+ /**
229
+ *
230
+ * @type {RecordingStatus}
231
+ * @memberof Recording
232
+ */
233
+ status: RecordingStatus$1;
234
+ }
235
+
236
+ /**
237
+ * Fishjam API
238
+ * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
239
+ *
240
+ * The version of the OpenAPI document: 0.30.0
70
241
  * Contact: contact@fishjam.io
71
242
  *
72
243
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -87,7 +258,7 @@ type AudioSampleRate = typeof AudioSampleRate[keyof typeof AudioSampleRate];
87
258
  * Fishjam API
88
259
  * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
89
260
  *
90
- * The version of the OpenAPI document: 0.28.1
261
+ * The version of the OpenAPI document: 0.30.0
91
262
  * Contact: contact@fishjam.io
92
263
  *
93
264
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -107,7 +278,7 @@ type AudioFormat = typeof AudioFormat[keyof typeof AudioFormat];
107
278
  * Fishjam API
108
279
  * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
109
280
  *
110
- * The version of the OpenAPI document: 0.28.1
281
+ * The version of the OpenAPI document: 0.30.0
111
282
  * Contact: contact@fishjam.io
112
283
  *
113
284
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -139,7 +310,7 @@ interface AgentOutput {
139
310
  * Fishjam API
140
311
  * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
141
312
  *
142
- * The version of the OpenAPI document: 0.28.1
313
+ * The version of the OpenAPI document: 0.30.0
143
314
  * Contact: contact@fishjam.io
144
315
  *
145
316
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -160,7 +331,7 @@ type SubscribeMode = typeof SubscribeMode[keyof typeof SubscribeMode];
160
331
  * Fishjam API
161
332
  * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
162
333
  *
163
- * The version of the OpenAPI document: 0.28.1
334
+ * The version of the OpenAPI document: 0.30.0
164
335
  * Contact: contact@fishjam.io
165
336
  *
166
337
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -192,7 +363,7 @@ interface PeerOptionsAgent {
192
363
  * Fishjam API
193
364
  * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
194
365
  *
195
- * The version of the OpenAPI document: 0.28.1
366
+ * The version of the OpenAPI document: 0.30.0
196
367
  * Contact: contact@fishjam.io
197
368
  *
198
369
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -230,7 +401,7 @@ interface PeerOptionsVapi {
230
401
  * Fishjam API
231
402
  * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
232
403
  *
233
- * The version of the OpenAPI document: 0.28.1
404
+ * The version of the OpenAPI document: 0.30.0
234
405
  * Contact: contact@fishjam.io
235
406
  *
236
407
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -264,7 +435,7 @@ interface PeerOptionsWebRTC {
264
435
  * Fishjam API
265
436
  * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
266
437
  *
267
- * The version of the OpenAPI document: 0.28.1
438
+ * The version of the OpenAPI document: 0.30.0
268
439
  * Contact: contact@fishjam.io
269
440
  *
270
441
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -295,7 +466,7 @@ interface Subscriptions {
295
466
  * Fishjam API
296
467
  * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
297
468
  *
298
- * The version of the OpenAPI document: 0.28.1
469
+ * The version of the OpenAPI document: 0.30.0
299
470
  * Contact: contact@fishjam.io
300
471
  *
301
472
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -316,7 +487,7 @@ type PeerStatus = typeof PeerStatus[keyof typeof PeerStatus];
316
487
  * Fishjam API
317
488
  * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
318
489
  *
319
- * The version of the OpenAPI document: 0.28.1
490
+ * The version of the OpenAPI document: 0.30.0
320
491
  * Contact: contact@fishjam.io
321
492
  *
322
493
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -338,7 +509,7 @@ type PeerType$1 = typeof PeerType$1[keyof typeof PeerType$1];
338
509
  * Fishjam API
339
510
  * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
340
511
  *
341
- * The version of the OpenAPI document: 0.28.1
512
+ * The version of the OpenAPI document: 0.30.0
342
513
  * Contact: contact@fishjam.io
343
514
  *
344
515
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -359,7 +530,7 @@ type TrackType$2 = typeof TrackType$2[keyof typeof TrackType$2];
359
530
  * Fishjam API
360
531
  * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
361
532
  *
362
- * The version of the OpenAPI document: 0.28.1
533
+ * The version of the OpenAPI document: 0.30.0
363
534
  * Contact: contact@fishjam.io
364
535
  *
365
536
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -397,7 +568,7 @@ interface Track$2 {
397
568
  * Fishjam API
398
569
  * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
399
570
  *
400
- * The version of the OpenAPI document: 0.28.1
571
+ * The version of the OpenAPI document: 0.30.0
401
572
  * Contact: contact@fishjam.io
402
573
  *
403
574
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -437,76 +608,2489 @@ interface Peer$1 {
437
608
  subscribeMode: SubscribeMode;
438
609
  /**
439
610
  *
440
- * @type {Subscriptions}
441
- * @memberof Peer
442
- */
443
- subscriptions: Subscriptions;
444
- /**
445
- * List of all peer's tracks
446
- * @type {Array<Track>}
447
- * @memberof Peer
611
+ * @type {Subscriptions}
612
+ * @memberof Peer
613
+ */
614
+ subscriptions: Subscriptions;
615
+ /**
616
+ * List of all peer's tracks
617
+ * @type {Array<Track>}
618
+ * @memberof Peer
619
+ */
620
+ tracks: Array<Track$2>;
621
+ /**
622
+ *
623
+ * @type {PeerType}
624
+ * @memberof Peer
625
+ */
626
+ type: PeerType$1;
627
+ }
628
+
629
+ /**
630
+ * Fishjam API
631
+ * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
632
+ *
633
+ * The version of the OpenAPI document: 0.30.0
634
+ * Contact: contact@fishjam.io
635
+ *
636
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
637
+ * https://openapi-generator.tech
638
+ * Do not edit the class manually.
639
+ */
640
+ /**
641
+ * The use-case of the room. If not provided, this defaults to conference.
642
+ * @export
643
+ */
644
+ declare const RoomType: {
645
+ readonly FullFeature: "full_feature";
646
+ readonly AudioOnly: "audio_only";
647
+ readonly Broadcaster: "broadcaster";
648
+ readonly Livestream: "livestream";
649
+ readonly Conference: "conference";
650
+ readonly AudioOnlyLivestream: "audio_only_livestream";
651
+ };
652
+ type RoomType = typeof RoomType[keyof typeof RoomType];
653
+
654
+ /**
655
+ * Fishjam API
656
+ * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
657
+ *
658
+ * The version of the OpenAPI document: 0.30.0
659
+ * Contact: contact@fishjam.io
660
+ *
661
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
662
+ * https://openapi-generator.tech
663
+ * Do not edit the class manually.
664
+ */
665
+ /**
666
+ * Enforces video codec for each peer in the room
667
+ * @export
668
+ */
669
+ declare const VideoCodec: {
670
+ readonly H264: "h264";
671
+ readonly Vp8: "vp8";
672
+ };
673
+ type VideoCodec = typeof VideoCodec[keyof typeof VideoCodec];
674
+
675
+ /**
676
+ * Fishjam API
677
+ * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
678
+ *
679
+ * The version of the OpenAPI document: 0.30.0
680
+ * Contact: contact@fishjam.io
681
+ *
682
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
683
+ * https://openapi-generator.tech
684
+ * Do not edit the class manually.
685
+ */
686
+
687
+ /**
688
+ * Room configuration
689
+ * @export
690
+ * @interface RoomConfig
691
+ */
692
+ interface RoomConfig {
693
+ /**
694
+ * If true, webhook notifications for this room are coalesced into a single NotificationBatch per HTTP send instead of one request per notification. VAD notifications are unaffected.
695
+ * @type {boolean}
696
+ * @memberof RoomConfig
697
+ */
698
+ batchWebhookNotifications?: boolean;
699
+ /**
700
+ * Maximum amount of peers allowed into the room
701
+ * @type {number}
702
+ * @memberof RoomConfig
703
+ */
704
+ maxPeers?: number | null;
705
+ /**
706
+ * True if livestream viewers can omit specifying a token.
707
+ * @type {boolean}
708
+ * @memberof RoomConfig
709
+ */
710
+ public?: boolean;
711
+ /**
712
+ *
713
+ * @type {RoomType}
714
+ * @memberof RoomConfig
715
+ */
716
+ roomType?: RoomType;
717
+ /**
718
+ *
719
+ * @type {VideoCodec}
720
+ * @memberof RoomConfig
721
+ */
722
+ videoCodec?: VideoCodec;
723
+ /**
724
+ * Deprecated: configure the webhook in the Dashboard instead. URL where Fishjam notifications will be sent; overrides the Dashboard-configured webhook URL
725
+ * @type {string}
726
+ * @memberof RoomConfig
727
+ * @deprecated
728
+ */
729
+ webhookUrl?: string | null;
730
+ }
731
+
732
+ /**
733
+ * Fishjam API
734
+ * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
735
+ *
736
+ * The version of the OpenAPI document: 0.30.0
737
+ * Contact: contact@fishjam.io
738
+ *
739
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
740
+ * https://openapi-generator.tech
741
+ * Do not edit the class manually.
742
+ */
743
+ /**
744
+ * Streamer authorization token
745
+ * @export
746
+ * @interface StreamerToken
747
+ */
748
+ interface StreamerToken {
749
+ /**
750
+ * Token streamer should authorize with
751
+ * @type {string}
752
+ * @memberof StreamerToken
753
+ */
754
+ token: string;
755
+ }
756
+
757
+ /**
758
+ * Fishjam API
759
+ * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
760
+ *
761
+ * The version of the OpenAPI document: 0.30.0
762
+ * Contact: contact@fishjam.io
763
+ *
764
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
765
+ * https://openapi-generator.tech
766
+ * Do not edit the class manually.
767
+ */
768
+ /**
769
+ * Viewer authorization token
770
+ * @export
771
+ * @interface ViewerToken
772
+ */
773
+ interface ViewerToken {
774
+ /**
775
+ * Token viewer should authorize with
776
+ * @type {string}
777
+ * @memberof ViewerToken
778
+ */
779
+ token: string;
780
+ }
781
+
782
+ /**
783
+ * Composition API
784
+ * Real-time video compositing
785
+ *
786
+ * The version of the OpenAPI document: 0.1.0
787
+ *
788
+ *
789
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
790
+ * https://openapi-generator.tech
791
+ * Do not edit the class manually.
792
+ */
793
+ /**
794
+ *
795
+ * @export
796
+ * @interface CompositionCreatedResponse
797
+ */
798
+ interface CompositionCreatedResponse {
799
+ /**
800
+ *
801
+ * @type {string}
802
+ * @memberof CompositionCreatedResponse
803
+ */
804
+ compositionId: string;
805
+ /**
806
+ *
807
+ * @type {string}
808
+ * @memberof CompositionCreatedResponse
809
+ */
810
+ apiUrl: string;
811
+ }
812
+
813
+ /**
814
+ * Composition API
815
+ * Real-time video compositing
816
+ *
817
+ * The version of the OpenAPI document: 0.1.0
818
+ *
819
+ *
820
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
821
+ * https://openapi-generator.tech
822
+ * Do not edit the class manually.
823
+ */
824
+ /**
825
+ *
826
+ * @export
827
+ * @interface CreateCompositionRequest
828
+ */
829
+ interface CreateCompositionRequest {
830
+ /**
831
+ * If true, outputs will immediately start producing audio and video.
832
+ * If false, call `POST /api/composition/{composition_id}/start` to start the composition.
833
+ * @type {boolean}
834
+ * @memberof CreateCompositionRequest
835
+ */
836
+ autostart?: boolean;
837
+ /**
838
+ * If true (default), the composition will be cleaned up after 5 minutes when all **inputs**
839
+ * have zero bitrate, regardless of output bitrate. This prevents circular liveness when
840
+ * composition output is sent to a stream.
841
+ * If false, cleanup only triggers when both inputs and outputs have zero bitrate.
842
+ * @type {boolean}
843
+ * @memberof CreateCompositionRequest
844
+ */
845
+ cleanupWithoutInputs?: boolean;
846
+ }
847
+
848
+ /**
849
+ * Composition API
850
+ * Real-time video compositing
851
+ *
852
+ * The version of the OpenAPI document: 0.1.0
853
+ *
854
+ *
855
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
856
+ * https://openapi-generator.tech
857
+ * Do not edit the class manually.
858
+ */
859
+ /**
860
+ *
861
+ * @export
862
+ * @interface SendCompositionEventRequest
863
+ */
864
+ interface SendCompositionEventRequest {
865
+ /**
866
+ * Name of the event delivered to the composition's templates.
867
+ * @type {string}
868
+ * @memberof SendCompositionEventRequest
869
+ */
870
+ eventName: string;
871
+ /**
872
+ *
873
+ * @type {any}
874
+ * @memberof SendCompositionEventRequest
875
+ */
876
+ data?: any | null;
877
+ }
878
+
879
+ /**
880
+ * Composition API
881
+ * Real-time video compositing
882
+ *
883
+ * The version of the OpenAPI document: 0.1.0
884
+ *
885
+ *
886
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
887
+ * https://openapi-generator.tech
888
+ * Do not edit the class manually.
889
+ */
890
+ /**
891
+ * Input stream from an MP4 file.
892
+ * @export
893
+ * @interface Mp4Input
894
+ */
895
+ interface Mp4Input {
896
+ /**
897
+ * URL of the MP4 file.
898
+ * @type {string}
899
+ * @memberof Mp4Input
900
+ */
901
+ url: string;
902
+ /**
903
+ * (**default=`false`**) If input should be played in the loop. <span class="badge badge--primary">Added in v0.4.0</span>
904
+ * @type {boolean}
905
+ * @memberof Mp4Input
906
+ */
907
+ loop?: boolean | null;
908
+ /**
909
+ *
910
+ * @type {Mp4InputTypeEnum}
911
+ * @memberof Mp4Input
912
+ */
913
+ type: Mp4InputTypeEnum;
914
+ }
915
+ /**
916
+ * @export
917
+ */
918
+ declare const Mp4InputTypeEnum: {
919
+ readonly Mp4: "mp4";
920
+ };
921
+ type Mp4InputTypeEnum = (typeof Mp4InputTypeEnum)[keyof typeof Mp4InputTypeEnum];
922
+
923
+ /**
924
+ * Composition API
925
+ * Real-time video compositing
926
+ *
927
+ * The version of the OpenAPI document: 0.1.0
928
+ *
929
+ *
930
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
931
+ * https://openapi-generator.tech
932
+ * Do not edit the class manually.
933
+ */
934
+ /**
935
+ *
936
+ * @export
937
+ * @interface RtmpInput
938
+ */
939
+ interface RtmpInput {
940
+ /**
941
+ * The RTMP stream key.
942
+ * This is the path segment of the RTMP stream URL that Smelter listens on for incoming streams.
943
+ * Format: `rtmp://<ip_address>:<port>/<stream_key>`
944
+ * @type {string}
945
+ * @memberof RtmpInput
946
+ */
947
+ streamKey: string;
948
+ /**
949
+ *
950
+ * @type {RtmpInputTypeEnum}
951
+ * @memberof RtmpInput
952
+ */
953
+ type: RtmpInputTypeEnum;
954
+ }
955
+ /**
956
+ * @export
957
+ */
958
+ declare const RtmpInputTypeEnum: {
959
+ readonly RtmpServer: "rtmp_server";
960
+ };
961
+ type RtmpInputTypeEnum = (typeof RtmpInputTypeEnum)[keyof typeof RtmpInputTypeEnum];
962
+
963
+ /**
964
+ * Composition API
965
+ * Real-time video compositing
966
+ *
967
+ * The version of the OpenAPI document: 0.1.0
968
+ *
969
+ *
970
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
971
+ * https://openapi-generator.tech
972
+ * Do not edit the class manually.
973
+ */
974
+ /**
975
+ *
976
+ * @export
977
+ * @interface WhepInput
978
+ */
979
+ interface WhepInput {
980
+ /**
981
+ * WHEP server endpoint URL
982
+ * @type {string}
983
+ * @memberof WhepInput
984
+ */
985
+ endpointUrl: string;
986
+ /**
987
+ * Optional Bearer token for auth
988
+ * @type {string}
989
+ * @memberof WhepInput
990
+ */
991
+ bearerToken?: string | null;
992
+ /**
993
+ * If `true`, requests a h264-encoded video track.
994
+ * If not provided, it defaults to `true`
995
+ * @type {boolean}
996
+ * @memberof WhepInput
997
+ */
998
+ video?: boolean | null;
999
+ /**
1000
+ *
1001
+ * @type {WhepInputTypeEnum}
1002
+ * @memberof WhepInput
1003
+ */
1004
+ type: WhepInputTypeEnum;
1005
+ }
1006
+ /**
1007
+ * @export
1008
+ */
1009
+ declare const WhepInputTypeEnum: {
1010
+ readonly WhepClient: "whep_client";
1011
+ };
1012
+ type WhepInputTypeEnum = (typeof WhepInputTypeEnum)[keyof typeof WhepInputTypeEnum];
1013
+
1014
+ /**
1015
+ * Composition API
1016
+ * Real-time video compositing
1017
+ *
1018
+ * The version of the OpenAPI document: 0.1.0
1019
+ *
1020
+ *
1021
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1022
+ * https://openapi-generator.tech
1023
+ * Do not edit the class manually.
1024
+ */
1025
+ /**
1026
+ *
1027
+ * @export
1028
+ * @interface WhipInput
1029
+ */
1030
+ interface WhipInput {
1031
+ /**
1032
+ * Token used for authentication in WHIP protocol. If not provided, the random value
1033
+ * will be generated and returned in the response.
1034
+ * @type {string}
1035
+ * @memberof WhipInput
1036
+ */
1037
+ bearerToken?: string | null;
1038
+ /**
1039
+ * If `true`, accepts a h264-encoded video track.
1040
+ * If not provided, it defaults to `true`
1041
+ * @type {boolean}
1042
+ * @memberof WhipInput
1043
+ */
1044
+ video?: boolean | null;
1045
+ /**
1046
+ *
1047
+ * @type {WhipInputTypeEnum}
1048
+ * @memberof WhipInput
1049
+ */
1050
+ type: WhipInputTypeEnum;
1051
+ }
1052
+ /**
1053
+ * @export
1054
+ */
1055
+ declare const WhipInputTypeEnum: {
1056
+ readonly WhipServer: "whip_server";
1057
+ };
1058
+ type WhipInputTypeEnum = (typeof WhipInputTypeEnum)[keyof typeof WhipInputTypeEnum];
1059
+
1060
+ /**
1061
+ * Composition API
1062
+ * Real-time video compositing
1063
+ *
1064
+ * The version of the OpenAPI document: 0.1.0
1065
+ *
1066
+ *
1067
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1068
+ * https://openapi-generator.tech
1069
+ * Do not edit the class manually.
1070
+ */
1071
+
1072
+ /**
1073
+ * @type RegisterInput
1074
+ *
1075
+ * @export
1076
+ */
1077
+ type RegisterInput = Mp4Input | RtmpInput | WhepInput | WhipInput;
1078
+
1079
+ /**
1080
+ * Composition API
1081
+ * Real-time video compositing
1082
+ *
1083
+ * The version of the OpenAPI document: 0.1.0
1084
+ *
1085
+ *
1086
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1087
+ * https://openapi-generator.tech
1088
+ * Do not edit the class manually.
1089
+ */
1090
+ /**
1091
+ *
1092
+ * @export
1093
+ * @interface RegisterInputResponse
1094
+ */
1095
+ interface RegisterInputResponse {
1096
+ /**
1097
+ *
1098
+ * @type {string}
1099
+ * @memberof RegisterInputResponse
1100
+ */
1101
+ bearerToken?: string | null;
1102
+ /**
1103
+ *
1104
+ * @type {string}
1105
+ * @memberof RegisterInputResponse
1106
+ */
1107
+ endpointRoute?: string | null;
1108
+ /**
1109
+ *
1110
+ * @type {number}
1111
+ * @memberof RegisterInputResponse
1112
+ */
1113
+ videoDurationMs?: number | null;
1114
+ /**
1115
+ *
1116
+ * @type {number}
1117
+ * @memberof RegisterInputResponse
1118
+ */
1119
+ audioDurationMs?: number | null;
1120
+ /**
1121
+ *
1122
+ * @type {number}
1123
+ * @memberof RegisterInputResponse
1124
+ */
1125
+ port?: number | null;
1126
+ }
1127
+
1128
+ /**
1129
+ * Composition API
1130
+ * Real-time video compositing
1131
+ *
1132
+ * The version of the OpenAPI document: 0.1.0
1133
+ *
1134
+ *
1135
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1136
+ * https://openapi-generator.tech
1137
+ * Do not edit the class manually.
1138
+ */
1139
+ /**
1140
+ *
1141
+ * @export
1142
+ * @interface UnregisterInput
1143
+ */
1144
+ interface UnregisterInput {
1145
+ /**
1146
+ * Time in milliseconds when this request should be applied. Value `0` represents
1147
+ * time of the start request.
1148
+ * @type {number}
1149
+ * @memberof UnregisterInput
1150
+ */
1151
+ scheduleTimeMs?: number | null;
1152
+ }
1153
+
1154
+ /**
1155
+ * Composition API
1156
+ * Real-time video compositing
1157
+ *
1158
+ * The version of the OpenAPI document: 0.1.0
1159
+ *
1160
+ *
1161
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1162
+ * https://openapi-generator.tech
1163
+ * Do not edit the class manually.
1164
+ */
1165
+ /**
1166
+ *
1167
+ * @export
1168
+ * @interface Image
1169
+ */
1170
+ interface Image {
1171
+ /**
1172
+ * Id of a component.
1173
+ * @type {string}
1174
+ * @memberof Image
1175
+ */
1176
+ id?: string | null;
1177
+ /**
1178
+ * Id of an image. It identifies an image registered using a `register image` request.
1179
+ * @type {string}
1180
+ * @memberof Image
1181
+ */
1182
+ imageId: string;
1183
+ /**
1184
+ * Width of the image in pixels.
1185
+ * If `height` is not explicitly provided, the image will automatically adjust its height to maintain its original aspect ratio relative to the width.
1186
+ * @type {number}
1187
+ * @memberof Image
1188
+ */
1189
+ width?: number | null;
1190
+ /**
1191
+ * Height of the image in pixels.
1192
+ * If `width` is not explicitly provided, the image will automatically adjust its width to maintain its original aspect ratio relative to the height.
1193
+ * @type {number}
1194
+ * @memberof Image
1195
+ */
1196
+ height?: number | null;
1197
+ /**
1198
+ *
1199
+ * @type {ImageTypeEnum}
1200
+ * @memberof Image
1201
+ */
1202
+ type: ImageTypeEnum;
1203
+ }
1204
+ /**
1205
+ * @export
1206
+ */
1207
+ declare const ImageTypeEnum: {
1208
+ readonly Image: "image";
1209
+ };
1210
+ type ImageTypeEnum = (typeof ImageTypeEnum)[keyof typeof ImageTypeEnum];
1211
+
1212
+ /**
1213
+ * Composition API
1214
+ * Real-time video compositing
1215
+ *
1216
+ * The version of the OpenAPI document: 0.1.0
1217
+ *
1218
+ *
1219
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1220
+ * https://openapi-generator.tech
1221
+ * Do not edit the class manually.
1222
+ */
1223
+ /**
1224
+ *
1225
+ * @export
1226
+ * @interface InputStream
1227
+ */
1228
+ interface InputStream {
1229
+ /**
1230
+ * Id of a component.
1231
+ * @type {string}
1232
+ * @memberof InputStream
1233
+ */
1234
+ id?: string | null;
1235
+ /**
1236
+ * Id of an input. It identifies a stream registered using a `RegisterInputStream` request.
1237
+ * @type {string}
1238
+ * @memberof InputStream
1239
+ */
1240
+ inputId: string;
1241
+ /**
1242
+ *
1243
+ * @type {InputStreamTypeEnum}
1244
+ * @memberof InputStream
1245
+ */
1246
+ type: InputStreamTypeEnum;
1247
+ }
1248
+ /**
1249
+ * @export
1250
+ */
1251
+ declare const InputStreamTypeEnum: {
1252
+ readonly InputStream: "input_stream";
1253
+ };
1254
+ type InputStreamTypeEnum = (typeof InputStreamTypeEnum)[keyof typeof InputStreamTypeEnum];
1255
+
1256
+ /**
1257
+ * Composition API
1258
+ * Real-time video compositing
1259
+ *
1260
+ * The version of the OpenAPI document: 0.1.0
1261
+ *
1262
+ *
1263
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1264
+ * https://openapi-generator.tech
1265
+ * Do not edit the class manually.
1266
+ */
1267
+ /**
1268
+ *
1269
+ * @export
1270
+ */
1271
+ declare const RescaleMode: {
1272
+ readonly Fit: "fit";
1273
+ readonly Fill: "fill";
1274
+ };
1275
+ type RescaleMode = (typeof RescaleMode)[keyof typeof RescaleMode];
1276
+
1277
+ /**
1278
+ * Composition API
1279
+ * Real-time video compositing
1280
+ *
1281
+ * The version of the OpenAPI document: 0.1.0
1282
+ *
1283
+ *
1284
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1285
+ * https://openapi-generator.tech
1286
+ * Do not edit the class manually.
1287
+ */
1288
+ /**
1289
+ *
1290
+ * @export
1291
+ */
1292
+ declare const VerticalAlign: {
1293
+ readonly Top: "top";
1294
+ readonly Center: "center";
1295
+ readonly Bottom: "bottom";
1296
+ readonly Justified: "justified";
1297
+ };
1298
+ type VerticalAlign = (typeof VerticalAlign)[keyof typeof VerticalAlign];
1299
+
1300
+ /**
1301
+ * Composition API
1302
+ * Real-time video compositing
1303
+ *
1304
+ * The version of the OpenAPI document: 0.1.0
1305
+ *
1306
+ *
1307
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1308
+ * https://openapi-generator.tech
1309
+ * Do not edit the class manually.
1310
+ */
1311
+ /**
1312
+ *
1313
+ * @export
1314
+ * @interface BoxShadow
1315
+ */
1316
+ interface BoxShadow {
1317
+ /**
1318
+ *
1319
+ * @type {number}
1320
+ * @memberof BoxShadow
1321
+ */
1322
+ offsetX?: number | null;
1323
+ /**
1324
+ *
1325
+ * @type {number}
1326
+ * @memberof BoxShadow
1327
+ */
1328
+ offsetY?: number | null;
1329
+ /**
1330
+ *
1331
+ * @type {string}
1332
+ * @memberof BoxShadow
1333
+ */
1334
+ color?: string | null;
1335
+ /**
1336
+ *
1337
+ * @type {number}
1338
+ * @memberof BoxShadow
1339
+ */
1340
+ blurRadius?: number | null;
1341
+ }
1342
+
1343
+ /**
1344
+ * Composition API
1345
+ * Real-time video compositing
1346
+ *
1347
+ * The version of the OpenAPI document: 0.1.0
1348
+ *
1349
+ *
1350
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1351
+ * https://openapi-generator.tech
1352
+ * Do not edit the class manually.
1353
+ */
1354
+ /**
1355
+ *
1356
+ * @export
1357
+ */
1358
+ declare const HorizontalAlign: {
1359
+ readonly Left: "left";
1360
+ readonly Right: "right";
1361
+ readonly Justified: "justified";
1362
+ readonly Center: "center";
1363
+ };
1364
+ type HorizontalAlign = (typeof HorizontalAlign)[keyof typeof HorizontalAlign];
1365
+
1366
+ /**
1367
+ * Composition API
1368
+ * Real-time video compositing
1369
+ *
1370
+ * The version of the OpenAPI document: 0.1.0
1371
+ *
1372
+ *
1373
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1374
+ * https://openapi-generator.tech
1375
+ * Do not edit the class manually.
1376
+ */
1377
+ /**
1378
+ *
1379
+ * @export
1380
+ * @interface EasingFunctionBounce
1381
+ */
1382
+ interface EasingFunctionBounce {
1383
+ /**
1384
+ *
1385
+ * @type {EasingFunctionBounceFunctionNameEnum}
1386
+ * @memberof EasingFunctionBounce
1387
+ */
1388
+ functionName: EasingFunctionBounceFunctionNameEnum;
1389
+ }
1390
+ /**
1391
+ * @export
1392
+ */
1393
+ declare const EasingFunctionBounceFunctionNameEnum: {
1394
+ readonly Bounce: "bounce";
1395
+ };
1396
+ type EasingFunctionBounceFunctionNameEnum = (typeof EasingFunctionBounceFunctionNameEnum)[keyof typeof EasingFunctionBounceFunctionNameEnum];
1397
+
1398
+ /**
1399
+ * Composition API
1400
+ * Real-time video compositing
1401
+ *
1402
+ * The version of the OpenAPI document: 0.1.0
1403
+ *
1404
+ *
1405
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1406
+ * https://openapi-generator.tech
1407
+ * Do not edit the class manually.
1408
+ */
1409
+ /**
1410
+ *
1411
+ * @export
1412
+ * @interface EasingFunctionCubicBezier
1413
+ */
1414
+ interface EasingFunctionCubicBezier {
1415
+ /**
1416
+ *
1417
+ * @type {Array<number>}
1418
+ * @memberof EasingFunctionCubicBezier
1419
+ */
1420
+ points: Array<number>;
1421
+ /**
1422
+ *
1423
+ * @type {EasingFunctionCubicBezierFunctionNameEnum}
1424
+ * @memberof EasingFunctionCubicBezier
1425
+ */
1426
+ functionName: EasingFunctionCubicBezierFunctionNameEnum;
1427
+ }
1428
+ /**
1429
+ * @export
1430
+ */
1431
+ declare const EasingFunctionCubicBezierFunctionNameEnum: {
1432
+ readonly CubicBezier: "cubic_bezier";
1433
+ };
1434
+ type EasingFunctionCubicBezierFunctionNameEnum = (typeof EasingFunctionCubicBezierFunctionNameEnum)[keyof typeof EasingFunctionCubicBezierFunctionNameEnum];
1435
+
1436
+ /**
1437
+ * Composition API
1438
+ * Real-time video compositing
1439
+ *
1440
+ * The version of the OpenAPI document: 0.1.0
1441
+ *
1442
+ *
1443
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1444
+ * https://openapi-generator.tech
1445
+ * Do not edit the class manually.
1446
+ */
1447
+ /**
1448
+ *
1449
+ * @export
1450
+ * @interface EasingFunctionLinear
1451
+ */
1452
+ interface EasingFunctionLinear {
1453
+ /**
1454
+ *
1455
+ * @type {EasingFunctionLinearFunctionNameEnum}
1456
+ * @memberof EasingFunctionLinear
1457
+ */
1458
+ functionName: EasingFunctionLinearFunctionNameEnum;
1459
+ }
1460
+ /**
1461
+ * @export
1462
+ */
1463
+ declare const EasingFunctionLinearFunctionNameEnum: {
1464
+ readonly Linear: "linear";
1465
+ };
1466
+ type EasingFunctionLinearFunctionNameEnum = (typeof EasingFunctionLinearFunctionNameEnum)[keyof typeof EasingFunctionLinearFunctionNameEnum];
1467
+
1468
+ /**
1469
+ * Composition API
1470
+ * Real-time video compositing
1471
+ *
1472
+ * The version of the OpenAPI document: 0.1.0
1473
+ *
1474
+ *
1475
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1476
+ * https://openapi-generator.tech
1477
+ * Do not edit the class manually.
1478
+ */
1479
+
1480
+ /**
1481
+ * @type EasingFunction
1482
+ * Easing functions are used to interpolate between two values over time.
1483
+ *
1484
+ * Custom easing functions can be implemented with cubic Bézier.
1485
+ * The control points are defined with `points` field by providing four numerical values: `x1`, `y1`, `x2` and `y2`. The `x1` and `x2` values have to be in the range `[0; 1]`. The cubic Bézier result is clamped to the range `[0; 1]`.
1486
+ * You can find example control point configurations [here](https://easings.net/).
1487
+ * @export
1488
+ */
1489
+ type EasingFunction = EasingFunctionBounce | EasingFunctionCubicBezier | EasingFunctionLinear;
1490
+
1491
+ /**
1492
+ * Composition API
1493
+ * Real-time video compositing
1494
+ *
1495
+ * The version of the OpenAPI document: 0.1.0
1496
+ *
1497
+ *
1498
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1499
+ * https://openapi-generator.tech
1500
+ * Do not edit the class manually.
1501
+ */
1502
+
1503
+ /**
1504
+ *
1505
+ * @export
1506
+ * @interface Transition
1507
+ */
1508
+ interface Transition {
1509
+ /**
1510
+ * Duration of a transition in milliseconds.
1511
+ * @type {number}
1512
+ * @memberof Transition
1513
+ */
1514
+ durationMs: number;
1515
+ /**
1516
+ * (**default=`"linear"`**) Easing function to be used for the transition.
1517
+ * @type {EasingFunction}
1518
+ * @memberof Transition
1519
+ */
1520
+ easingFunction?: EasingFunction | null;
1521
+ /**
1522
+ * (**default=`false`**) On scene update, if there is already a transition in progress,
1523
+ * it will be interrupted and the new transition will start from the current state.
1524
+ * @type {boolean}
1525
+ * @memberof Transition
1526
+ */
1527
+ shouldInterrupt?: boolean | null;
1528
+ }
1529
+
1530
+ /**
1531
+ * Composition API
1532
+ * Real-time video compositing
1533
+ *
1534
+ * The version of the OpenAPI document: 0.1.0
1535
+ *
1536
+ *
1537
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1538
+ * https://openapi-generator.tech
1539
+ * Do not edit the class manually.
1540
+ */
1541
+
1542
+ /**
1543
+ *
1544
+ * @export
1545
+ * @interface Rescaler
1546
+ */
1547
+ interface Rescaler {
1548
+ /**
1549
+ * Id of a component.
1550
+ * @type {string}
1551
+ * @memberof Rescaler
1552
+ */
1553
+ id?: string | null;
1554
+ /**
1555
+ * List of component's children.
1556
+ * @type {Component}
1557
+ * @memberof Rescaler
1558
+ */
1559
+ child: Component;
1560
+ /**
1561
+ * (**default=`"fit"`**) Resize mode:
1562
+ * @type {RescaleMode}
1563
+ * @memberof Rescaler
1564
+ */
1565
+ mode?: RescaleMode | null;
1566
+ /**
1567
+ * (**default=`"center"`**) Horizontal alignment.
1568
+ * @type {HorizontalAlign}
1569
+ * @memberof Rescaler
1570
+ */
1571
+ horizontalAlign?: HorizontalAlign | null;
1572
+ /**
1573
+ * (**default=`"center"`**) Vertical alignment.
1574
+ * @type {VerticalAlign}
1575
+ * @memberof Rescaler
1576
+ */
1577
+ verticalAlign?: VerticalAlign | null;
1578
+ /**
1579
+ * Width of a component in pixels (without a border). Exact behavior might be different
1580
+ * based on the parent component:
1581
+ * - If the parent component is a layout, check sections "Absolute positioning" and "Static
1582
+ * positioning" of that component.
1583
+ * - If the parent component is not a layout, then this field is required.
1584
+ * @type {number}
1585
+ * @memberof Rescaler
1586
+ */
1587
+ width?: number | null;
1588
+ /**
1589
+ * Height of a component in pixels (without a border). Exact behavior might be different
1590
+ * based on the parent component:
1591
+ * - If the parent component is a layout, check sections "Absolute positioning" and "Static
1592
+ * positioning" of that component.
1593
+ * - If the parent component is not a layout, then this field is required.
1594
+ * @type {number}
1595
+ * @memberof Rescaler
1596
+ */
1597
+ height?: number | null;
1598
+ /**
1599
+ * Distance in pixels between this component's top edge and its parent's top edge (including a border).
1600
+ * If this field is defined, then the component will ignore a layout defined by its parent.
1601
+ * @type {number}
1602
+ * @memberof Rescaler
1603
+ */
1604
+ top?: number | null;
1605
+ /**
1606
+ * Distance in pixels between this component's left edge and its parent's left edge (including a border).
1607
+ * If this field is defined, this element will be absolutely positioned, instead of being
1608
+ * laid out by its parent.
1609
+ * @type {number}
1610
+ * @memberof Rescaler
1611
+ */
1612
+ left?: number | null;
1613
+ /**
1614
+ * Distance in pixels between the bottom edge of this component and the bottom edge of its
1615
+ * parent (including a border). If this field is defined, this element will be absolutely
1616
+ * positioned, instead of being laid out by its parent.
1617
+ * @type {number}
1618
+ * @memberof Rescaler
1619
+ */
1620
+ bottom?: number | null;
1621
+ /**
1622
+ * Distance in pixels between this component's right edge and its parent's right edge.
1623
+ * If this field is defined, this element will be absolutely positioned, instead of being
1624
+ * laid out by its parent.
1625
+ * @type {number}
1626
+ * @memberof Rescaler
1627
+ */
1628
+ right?: number | null;
1629
+ /**
1630
+ * Rotation of a component in degrees. If this field is defined, this element will be
1631
+ * absolutely positioned, instead of being laid out by its parent.
1632
+ * @type {number}
1633
+ * @memberof Rescaler
1634
+ */
1635
+ rotation?: number | null;
1636
+ /**
1637
+ * Defines how this component will behave during a scene update. This will only have an
1638
+ * effect if the previous scene already contained a `Rescaler` component with the same id.
1639
+ * @type {Transition}
1640
+ * @memberof Rescaler
1641
+ */
1642
+ transition?: Transition | null;
1643
+ /**
1644
+ * (**default=`0.0`**) Radius of a rounded corner.
1645
+ * @type {number}
1646
+ * @memberof Rescaler
1647
+ */
1648
+ borderRadius?: number | null;
1649
+ /**
1650
+ * (**default=`0.0`**) Border width.
1651
+ * @type {number}
1652
+ * @memberof Rescaler
1653
+ */
1654
+ borderWidth?: number | null;
1655
+ /**
1656
+ * (**default=`"#00000000"`**) Border color in a `"#RRGGBBAA"` format.
1657
+ * @type {string}
1658
+ * @memberof Rescaler
1659
+ */
1660
+ borderColor?: string | null;
1661
+ /**
1662
+ * List of box shadows.
1663
+ * @type {Array<BoxShadow>}
1664
+ * @memberof Rescaler
1665
+ */
1666
+ boxShadow?: Array<BoxShadow> | null;
1667
+ /**
1668
+ *
1669
+ * @type {RescalerTypeEnum}
1670
+ * @memberof Rescaler
1671
+ */
1672
+ type: RescalerTypeEnum;
1673
+ }
1674
+ /**
1675
+ * @export
1676
+ */
1677
+ declare const RescalerTypeEnum: {
1678
+ readonly Rescaler: "rescaler";
1679
+ };
1680
+ type RescalerTypeEnum = (typeof RescalerTypeEnum)[keyof typeof RescalerTypeEnum];
1681
+
1682
+ /**
1683
+ * Composition API
1684
+ * Real-time video compositing
1685
+ *
1686
+ * The version of the OpenAPI document: 0.1.0
1687
+ *
1688
+ *
1689
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1690
+ * https://openapi-generator.tech
1691
+ * Do not edit the class manually.
1692
+ */
1693
+ /**
1694
+ *
1695
+ * @export
1696
+ */
1697
+ declare const TextStyle: {
1698
+ readonly Normal: "normal";
1699
+ readonly Italic: "italic";
1700
+ readonly Oblique: "oblique";
1701
+ };
1702
+ type TextStyle = (typeof TextStyle)[keyof typeof TextStyle];
1703
+
1704
+ /**
1705
+ * Composition API
1706
+ * Real-time video compositing
1707
+ *
1708
+ * The version of the OpenAPI document: 0.1.0
1709
+ *
1710
+ *
1711
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1712
+ * https://openapi-generator.tech
1713
+ * Do not edit the class manually.
1714
+ */
1715
+ /**
1716
+ * Font weight, based on the [OpenType specification](https://learn.microsoft.com/en-gb/typography/opentype/spec/os2#usweightclass).
1717
+ * @export
1718
+ */
1719
+ declare const TextWeight: {
1720
+ readonly Thin: "thin";
1721
+ readonly ExtraLight: "extra_light";
1722
+ readonly Light: "light";
1723
+ readonly Normal: "normal";
1724
+ readonly Medium: "medium";
1725
+ readonly SemiBold: "semi_bold";
1726
+ readonly Bold: "bold";
1727
+ readonly ExtraBold: "extra_bold";
1728
+ readonly Black: "black";
1729
+ };
1730
+ type TextWeight = (typeof TextWeight)[keyof typeof TextWeight];
1731
+
1732
+ /**
1733
+ * Composition API
1734
+ * Real-time video compositing
1735
+ *
1736
+ * The version of the OpenAPI document: 0.1.0
1737
+ *
1738
+ *
1739
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1740
+ * https://openapi-generator.tech
1741
+ * Do not edit the class manually.
1742
+ */
1743
+ /**
1744
+ *
1745
+ * @export
1746
+ */
1747
+ declare const TextWrapMode: {
1748
+ readonly None: "none";
1749
+ readonly Glyph: "glyph";
1750
+ readonly Word: "word";
1751
+ };
1752
+ type TextWrapMode = (typeof TextWrapMode)[keyof typeof TextWrapMode];
1753
+
1754
+ /**
1755
+ * Composition API
1756
+ * Real-time video compositing
1757
+ *
1758
+ * The version of the OpenAPI document: 0.1.0
1759
+ *
1760
+ *
1761
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1762
+ * https://openapi-generator.tech
1763
+ * Do not edit the class manually.
1764
+ */
1765
+
1766
+ /**
1767
+ *
1768
+ * @export
1769
+ * @interface Text
1770
+ */
1771
+ interface Text {
1772
+ /**
1773
+ * Id of a component.
1774
+ * @type {string}
1775
+ * @memberof Text
1776
+ */
1777
+ id?: string | null;
1778
+ /**
1779
+ * Text that will be rendered.
1780
+ * @type {string}
1781
+ * @memberof Text
1782
+ */
1783
+ text: string;
1784
+ /**
1785
+ * Width of a texture that text will be rendered on. If not provided, the resulting texture
1786
+ * will be sized based on the defined text but limited to `max_width` value.
1787
+ * @type {number}
1788
+ * @memberof Text
1789
+ */
1790
+ width?: number | null;
1791
+ /**
1792
+ * Height of a texture that text will be rendered on. If not provided, the resulting texture
1793
+ * will be sized based on the defined text but limited to `max_height` value.
1794
+ * It's an error to provide `height` if `width` is not defined.
1795
+ * @type {number}
1796
+ * @memberof Text
1797
+ */
1798
+ height?: number | null;
1799
+ /**
1800
+ * (**default=`7682`**) Maximal `width`. Limits the width of the texture that the text will be rendered on.
1801
+ * Value is ignored if `width` is defined.
1802
+ * @type {number}
1803
+ * @memberof Text
1804
+ */
1805
+ maxWidth?: number | null;
1806
+ /**
1807
+ * (**default=`4320`**) Maximal `height`. Limits the height of the texture that the text will be rendered on.
1808
+ * Value is ignored if height is defined.
1809
+ * @type {number}
1810
+ * @memberof Text
1811
+ */
1812
+ maxHeight?: number | null;
1813
+ /**
1814
+ * Font size in pixels.
1815
+ * @type {number}
1816
+ * @memberof Text
1817
+ */
1818
+ fontSize: number;
1819
+ /**
1820
+ * Distance between lines in pixels. Defaults to the value of the `font_size` property.
1821
+ * @type {number}
1822
+ * @memberof Text
1823
+ */
1824
+ lineHeight?: number | null;
1825
+ /**
1826
+ * (**default=`"#FFFFFFFF"`**) Font color in `#RRGGBBAA` format.
1827
+ * @type {string}
1828
+ * @memberof Text
1829
+ */
1830
+ color?: string | null;
1831
+ /**
1832
+ * (**default=`"#00000000"`**) Background color in `#RRGGBBAA` format.
1833
+ * @type {string}
1834
+ * @memberof Text
1835
+ */
1836
+ backgroundColor?: string | null;
1837
+ /**
1838
+ * (**default=`"Verdana"`**) Font family. Provide [family-name](https://www.w3.org/TR/2018/REC-css-fonts-3-20180920/#family-name-value)
1839
+ * for a specific font. "generic-family" values like e.g. "sans-serif" will not work.
1840
+ * @type {string}
1841
+ * @memberof Text
1842
+ */
1843
+ fontFamily?: string | null;
1844
+ /**
1845
+ * (**default=`"normal"`**) Font style. The selected font needs to support the specified style.
1846
+ * @type {TextStyle}
1847
+ * @memberof Text
1848
+ */
1849
+ style?: TextStyle | null;
1850
+ /**
1851
+ * (**default=`"left"`**) Text align.
1852
+ * @type {HorizontalAlign}
1853
+ * @memberof Text
1854
+ */
1855
+ align?: HorizontalAlign | null;
1856
+ /**
1857
+ * (**default=`"none"`**) Text wrapping options.
1858
+ * @type {TextWrapMode}
1859
+ * @memberof Text
1860
+ */
1861
+ wrap?: TextWrapMode | null;
1862
+ /**
1863
+ * (**default=`"normal"`**) Font weight. The selected font needs to support the specified weight.
1864
+ * @type {TextWeight}
1865
+ * @memberof Text
1866
+ */
1867
+ weight?: TextWeight | null;
1868
+ /**
1869
+ *
1870
+ * @type {TextTypeEnum}
1871
+ * @memberof Text
1872
+ */
1873
+ type: TextTypeEnum;
1874
+ }
1875
+ /**
1876
+ * @export
1877
+ */
1878
+ declare const TextTypeEnum: {
1879
+ readonly Text: "text";
1880
+ };
1881
+ type TextTypeEnum = (typeof TextTypeEnum)[keyof typeof TextTypeEnum];
1882
+
1883
+ /**
1884
+ * Composition API
1885
+ * Real-time video compositing
1886
+ *
1887
+ * The version of the OpenAPI document: 0.1.0
1888
+ *
1889
+ *
1890
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1891
+ * https://openapi-generator.tech
1892
+ * Do not edit the class manually.
1893
+ */
1894
+
1895
+ /**
1896
+ *
1897
+ * @export
1898
+ * @interface Tiles
1899
+ */
1900
+ interface Tiles {
1901
+ /**
1902
+ * Id of a component.
1903
+ * @type {string}
1904
+ * @memberof Tiles
1905
+ */
1906
+ id?: string | null;
1907
+ /**
1908
+ * List of component's children.
1909
+ * @type {Array<Component>}
1910
+ * @memberof Tiles
1911
+ */
1912
+ children?: Array<Component> | null;
1913
+ /**
1914
+ * Width of a component in pixels. Exact behavior might be different based on the parent
1915
+ * component:
1916
+ * - If the parent component is a layout, check sections "Absolute positioning" and "Static
1917
+ * positioning" of that component.
1918
+ * - If the parent component is not a layout, then this field is required.
1919
+ * @type {number}
1920
+ * @memberof Tiles
1921
+ */
1922
+ width?: number | null;
1923
+ /**
1924
+ * Height of a component in pixels. Exact behavior might be different based on the parent
1925
+ * component:
1926
+ * - If the parent component is a layout, check sections "Absolute positioning" and "Static
1927
+ * positioning" of that component.
1928
+ * - If the parent component is not a layout, then this field is required.
1929
+ * @type {number}
1930
+ * @memberof Tiles
1931
+ */
1932
+ height?: number | null;
1933
+ /**
1934
+ * (**default=`"#00000000"`**) Background color in a `"#RRGGBBAA"` format.
1935
+ * @type {string}
1936
+ * @memberof Tiles
1937
+ */
1938
+ backgroundColor?: string | null;
1939
+ /**
1940
+ * (**default=`"16:9"`**) Aspect ratio of a tile in `"W:H"` format, where W and H are integers.
1941
+ * @type {string}
1942
+ * @memberof Tiles
1943
+ */
1944
+ tileAspectRatio?: string | null;
1945
+ /**
1946
+ * (**default=`0`**) Margin of each tile in pixels.
1947
+ * @type {number}
1948
+ * @memberof Tiles
1949
+ */
1950
+ margin?: number | null;
1951
+ /**
1952
+ * (**default=`0`**) Padding on each tile in pixels.
1953
+ * @type {number}
1954
+ * @memberof Tiles
1955
+ */
1956
+ padding?: number | null;
1957
+ /**
1958
+ * (**default=`"center"`**) Horizontal alignment of tiles.
1959
+ * @type {HorizontalAlign}
1960
+ * @memberof Tiles
1961
+ */
1962
+ horizontalAlign?: HorizontalAlign | null;
1963
+ /**
1964
+ * (**default=`"center"`**) Vertical alignment of tiles.
1965
+ * @type {VerticalAlign}
1966
+ * @memberof Tiles
1967
+ */
1968
+ verticalAlign?: VerticalAlign | null;
1969
+ /**
1970
+ * Defines how this component will behave during a scene update. This will only have an
1971
+ * effect if the previous scene already contained a `Tiles` component with the same id.
1972
+ * @type {Transition}
1973
+ * @memberof Tiles
1974
+ */
1975
+ transition?: Transition | null;
1976
+ /**
1977
+ *
1978
+ * @type {TilesTypeEnum}
1979
+ * @memberof Tiles
1980
+ */
1981
+ type: TilesTypeEnum;
1982
+ }
1983
+ /**
1984
+ * @export
1985
+ */
1986
+ declare const TilesTypeEnum: {
1987
+ readonly Tiles: "tiles";
1988
+ };
1989
+ type TilesTypeEnum = (typeof TilesTypeEnum)[keyof typeof TilesTypeEnum];
1990
+
1991
+ /**
1992
+ * Composition API
1993
+ * Real-time video compositing
1994
+ *
1995
+ * The version of the OpenAPI document: 0.1.0
1996
+ *
1997
+ *
1998
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1999
+ * https://openapi-generator.tech
2000
+ * Do not edit the class manually.
2001
+ */
2002
+ /**
2003
+ *
2004
+ * @export
2005
+ */
2006
+ declare const ViewDirection: {
2007
+ readonly Row: "row";
2008
+ readonly Column: "column";
2009
+ };
2010
+ type ViewDirection = (typeof ViewDirection)[keyof typeof ViewDirection];
2011
+
2012
+ /**
2013
+ * Composition API
2014
+ * Real-time video compositing
2015
+ *
2016
+ * The version of the OpenAPI document: 0.1.0
2017
+ *
2018
+ *
2019
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2020
+ * https://openapi-generator.tech
2021
+ * Do not edit the class manually.
2022
+ */
2023
+ /**
2024
+ *
2025
+ * @export
2026
+ */
2027
+ declare const Overflow: {
2028
+ readonly Visible: "visible";
2029
+ readonly Hidden: "hidden";
2030
+ readonly Fit: "fit";
2031
+ };
2032
+ type Overflow = (typeof Overflow)[keyof typeof Overflow];
2033
+
2034
+ /**
2035
+ * Composition API
2036
+ * Real-time video compositing
2037
+ *
2038
+ * The version of the OpenAPI document: 0.1.0
2039
+ *
2040
+ *
2041
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2042
+ * https://openapi-generator.tech
2043
+ * Do not edit the class manually.
2044
+ */
2045
+
2046
+ /**
2047
+ *
2048
+ * @export
2049
+ * @interface View
2050
+ */
2051
+ interface View {
2052
+ /**
2053
+ * Id of a component.
2054
+ * @type {string}
2055
+ * @memberof View
2056
+ */
2057
+ id?: string | null;
2058
+ /**
2059
+ * List of component's children.
2060
+ * @type {Array<Component>}
2061
+ * @memberof View
2062
+ */
2063
+ children?: Array<Component> | null;
2064
+ /**
2065
+ * Width of a component in pixels (without a border). Exact behavior might be different
2066
+ * based on the parent component:
2067
+ * - If the parent component is a layout, check sections "Absolute positioning" and "Static
2068
+ * positioning" of that component.
2069
+ * - If the parent component is not a layout, then this field is required.
2070
+ * @type {number}
2071
+ * @memberof View
2072
+ */
2073
+ width?: number | null;
2074
+ /**
2075
+ * Height of a component in pixels (without a border). Exact behavior might be different
2076
+ * based on the parent component:
2077
+ * - If the parent component is a layout, check sections "Absolute positioning" and "Static
2078
+ * positioning" of that component.
2079
+ * - If the parent component is not a layout, then this field is required.
2080
+ * @type {number}
2081
+ * @memberof View
2082
+ */
2083
+ height?: number | null;
2084
+ /**
2085
+ * Direction defines how static children are positioned inside a View component.
2086
+ * @type {ViewDirection}
2087
+ * @memberof View
2088
+ */
2089
+ direction?: ViewDirection | null;
2090
+ /**
2091
+ * Distance in pixels between this component's top edge and its parent's top edge (including a border).
2092
+ * If this field is defined, then the component will ignore a layout defined by its parent.
2093
+ * @type {number}
2094
+ * @memberof View
2095
+ */
2096
+ top?: number | null;
2097
+ /**
2098
+ * Distance in pixels between this component's left edge and its parent's left edge (including a border).
2099
+ * If this field is defined, this element will be absolutely positioned, instead of being
2100
+ * laid out by its parent.
2101
+ * @type {number}
2102
+ * @memberof View
2103
+ */
2104
+ left?: number | null;
2105
+ /**
2106
+ * Distance in pixels between the bottom edge of this component and the bottom edge of its
2107
+ * parent (including a border). If this field is defined, this element will be absolutely
2108
+ * positioned, instead of being laid out by its parent.
2109
+ * @type {number}
2110
+ * @memberof View
2111
+ */
2112
+ bottom?: number | null;
2113
+ /**
2114
+ * Distance in pixels between this component's right edge and its parent's right edge.
2115
+ * If this field is defined, this element will be absolutely positioned, instead of being
2116
+ * laid out by its parent.
2117
+ * @type {number}
2118
+ * @memberof View
2119
+ */
2120
+ right?: number | null;
2121
+ /**
2122
+ * Rotation of a component in degrees. If this field is defined, this element will be
2123
+ * absolutely positioned, instead of being laid out by its parent.
2124
+ * @type {number}
2125
+ * @memberof View
2126
+ */
2127
+ rotation?: number | null;
2128
+ /**
2129
+ * Defines how this component will behave during a scene update. This will only have an
2130
+ * effect if the previous scene already contained a `View` component with the same id.
2131
+ * @type {Transition}
2132
+ * @memberof View
2133
+ */
2134
+ transition?: Transition | null;
2135
+ /**
2136
+ * (**default=`"hidden"`**) Controls what happens to content that is too big to fit into an area.
2137
+ * @type {Overflow}
2138
+ * @memberof View
2139
+ */
2140
+ overflow?: Overflow | null;
2141
+ /**
2142
+ * (**default=`"#00000000"`**) Background color in a `"#RRGGBBAA"` format.
2143
+ * @type {string}
2144
+ * @memberof View
2145
+ */
2146
+ backgroundColor?: string | null;
2147
+ /**
2148
+ * (**default=`0.0`**) Radius of a rounded corner.
2149
+ * @type {number}
2150
+ * @memberof View
2151
+ */
2152
+ borderRadius?: number | null;
2153
+ /**
2154
+ * (**default=`0.0`**) Border width.
2155
+ * @type {number}
2156
+ * @memberof View
2157
+ */
2158
+ borderWidth?: number | null;
2159
+ /**
2160
+ * (**default=`"#00000000"`**) Border color in a `"#RRGGBBAA"` format.
2161
+ * @type {string}
2162
+ * @memberof View
2163
+ */
2164
+ borderColor?: string | null;
2165
+ /**
2166
+ * List of box shadows.
2167
+ * @type {Array<BoxShadow>}
2168
+ * @memberof View
2169
+ */
2170
+ boxShadow?: Array<BoxShadow> | null;
2171
+ /**
2172
+ * (**default=`0.0`**) Padding for all sides of the component.
2173
+ * @type {number}
2174
+ * @memberof View
2175
+ */
2176
+ padding?: number | null;
2177
+ /**
2178
+ * (**default=`0.0`**) Padding for the top and bottom of the component.
2179
+ * @type {number}
2180
+ * @memberof View
2181
+ */
2182
+ paddingVertical?: number | null;
2183
+ /**
2184
+ * (**default=`0.0`**) Padding for the left and right of the component.
2185
+ * @type {number}
2186
+ * @memberof View
2187
+ */
2188
+ paddingHorizontal?: number | null;
2189
+ /**
2190
+ * (**default=`0.0`**) Padding on top side in pixels.
2191
+ * @type {number}
2192
+ * @memberof View
2193
+ */
2194
+ paddingTop?: number | null;
2195
+ /**
2196
+ * (**default=`0.0`**) Padding on right side in pixels.
2197
+ * @type {number}
2198
+ * @memberof View
2199
+ */
2200
+ paddingRight?: number | null;
2201
+ /**
2202
+ * (**default=`0.0`**) Padding on bottom side in pixels.
2203
+ * @type {number}
2204
+ * @memberof View
2205
+ */
2206
+ paddingBottom?: number | null;
2207
+ /**
2208
+ * (**default=`0.0`**) Padding on left side in pixels.
2209
+ * @type {number}
2210
+ * @memberof View
2211
+ */
2212
+ paddingLeft?: number | null;
2213
+ /**
2214
+ *
2215
+ * @type {ViewTypeEnum}
2216
+ * @memberof View
2217
+ */
2218
+ type: ViewTypeEnum;
2219
+ }
2220
+ /**
2221
+ * @export
2222
+ */
2223
+ declare const ViewTypeEnum: {
2224
+ readonly View: "view";
2225
+ };
2226
+ type ViewTypeEnum = (typeof ViewTypeEnum)[keyof typeof ViewTypeEnum];
2227
+
2228
+ /**
2229
+ * Composition API
2230
+ * Real-time video compositing
2231
+ *
2232
+ * The version of the OpenAPI document: 0.1.0
2233
+ *
2234
+ *
2235
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2236
+ * https://openapi-generator.tech
2237
+ * Do not edit the class manually.
2238
+ */
2239
+
2240
+ /**
2241
+ * @type Component
2242
+ *
2243
+ * @export
2244
+ */
2245
+ type Component = Image | InputStream | Rescaler | Text | Tiles | View;
2246
+
2247
+ /**
2248
+ * Composition API
2249
+ * Real-time video compositing
2250
+ *
2251
+ * The version of the OpenAPI document: 0.1.0
2252
+ *
2253
+ *
2254
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2255
+ * https://openapi-generator.tech
2256
+ * Do not edit the class manually.
2257
+ */
2258
+
2259
+ /**
2260
+ *
2261
+ * @export
2262
+ * @interface VideoScene
2263
+ */
2264
+ interface VideoScene {
2265
+ /**
2266
+ *
2267
+ * @type {Component}
2268
+ * @memberof VideoScene
2269
+ */
2270
+ root: Component;
2271
+ }
2272
+
2273
+ /**
2274
+ * Composition API
2275
+ * Real-time video compositing
2276
+ *
2277
+ * The version of the OpenAPI document: 0.1.0
2278
+ *
2279
+ *
2280
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2281
+ * https://openapi-generator.tech
2282
+ * Do not edit the class manually.
2283
+ */
2284
+ /**
2285
+ * This type defines when end of an input stream should trigger end of the output stream. Only one of those fields can be set at the time.
2286
+ * Unless specified otherwise the input stream is considered finished/ended when:
2287
+ * - TCP connection was dropped/closed.
2288
+ * - RTCP Goodbye packet (`BYE`) was received.
2289
+ * - Mp4 track has ended.
2290
+ * - Input was unregistered already (or never registered).
2291
+ * @export
2292
+ * @interface OutputEndCondition
2293
+ */
2294
+ interface OutputEndCondition {
2295
+ /**
2296
+ * Terminate output stream if any of the input streams from the list are finished.
2297
+ * @type {Array<string>}
2298
+ * @memberof OutputEndCondition
2299
+ */
2300
+ anyOf?: Array<string> | null;
2301
+ /**
2302
+ * Terminate output stream if all the input streams from the list are finished.
2303
+ * @type {Array<string>}
2304
+ * @memberof OutputEndCondition
2305
+ */
2306
+ allOf?: Array<string> | null;
2307
+ /**
2308
+ * Terminate output stream if any of the input streams ends. This includes streams added after the output was registered. In particular, output stream will **not be** terminated if no inputs were ever connected.
2309
+ * @type {boolean}
2310
+ * @memberof OutputEndCondition
2311
+ */
2312
+ anyInput?: boolean | null;
2313
+ /**
2314
+ * Terminate output stream if all the input streams finish. In particular, output stream will **be** terminated if no inputs were ever connected.
2315
+ * @type {boolean}
2316
+ * @memberof OutputEndCondition
2317
+ */
2318
+ allInputs?: boolean | null;
2319
+ }
2320
+
2321
+ /**
2322
+ * Composition API
2323
+ * Real-time video compositing
2324
+ *
2325
+ * The version of the OpenAPI document: 0.1.0
2326
+ *
2327
+ *
2328
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2329
+ * https://openapi-generator.tech
2330
+ * Do not edit the class manually.
2331
+ */
2332
+ /**
2333
+ *
2334
+ * @export
2335
+ * @interface Resolution
2336
+ */
2337
+ interface Resolution {
2338
+ /**
2339
+ * Width in pixels.
2340
+ * @type {number}
2341
+ * @memberof Resolution
2342
+ */
2343
+ width: number;
2344
+ /**
2345
+ * Height in pixels.
2346
+ * @type {number}
2347
+ * @memberof Resolution
2348
+ */
2349
+ height: number;
2350
+ }
2351
+
2352
+ /**
2353
+ * Composition API
2354
+ * Real-time video compositing
2355
+ *
2356
+ * The version of the OpenAPI document: 0.1.0
2357
+ *
2358
+ *
2359
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2360
+ * https://openapi-generator.tech
2361
+ * Do not edit the class manually.
2362
+ */
2363
+
2364
+ /**
2365
+ *
2366
+ * @export
2367
+ * @interface OutputRtmpClientVideoOptions
2368
+ */
2369
+ interface OutputRtmpClientVideoOptions {
2370
+ /**
2371
+ * Output resolution in pixels.
2372
+ * @type {Resolution}
2373
+ * @memberof OutputRtmpClientVideoOptions
2374
+ */
2375
+ resolution: Resolution;
2376
+ /**
2377
+ * Condition for termination of the output stream based on the input streams states. If output includes both audio and video streams, then EOS needs to be sent for every type.
2378
+ * @type {OutputEndCondition}
2379
+ * @memberof OutputRtmpClientVideoOptions
2380
+ */
2381
+ sendEosWhen?: OutputEndCondition | null;
2382
+ /**
2383
+ * Root of a component tree/scene that should be rendered for the output. Use `update_output` request to update this value after registration. Learn more.
2384
+ * @type {VideoScene}
2385
+ * @memberof OutputRtmpClientVideoOptions
2386
+ */
2387
+ initial: VideoScene;
2388
+ }
2389
+
2390
+ /**
2391
+ * Composition API
2392
+ * Real-time video compositing
2393
+ *
2394
+ * The version of the OpenAPI document: 0.1.0
2395
+ *
2396
+ *
2397
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2398
+ * https://openapi-generator.tech
2399
+ * Do not edit the class manually.
2400
+ */
2401
+ /**
2402
+ *
2403
+ * @export
2404
+ */
2405
+ declare const AudioChannels: {
2406
+ readonly Mono: "mono";
2407
+ readonly Stereo: "stereo";
2408
+ };
2409
+ type AudioChannels = (typeof AudioChannels)[keyof typeof AudioChannels];
2410
+
2411
+ /**
2412
+ * Composition API
2413
+ * Real-time video compositing
2414
+ *
2415
+ * The version of the OpenAPI document: 0.1.0
2416
+ *
2417
+ *
2418
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2419
+ * https://openapi-generator.tech
2420
+ * Do not edit the class manually.
2421
+ */
2422
+ /**
2423
+ *
2424
+ * @export
2425
+ */
2426
+ declare const AudioMixingStrategy: {
2427
+ readonly SumClip: "sum_clip";
2428
+ readonly SumScale: "sum_scale";
2429
+ };
2430
+ type AudioMixingStrategy = (typeof AudioMixingStrategy)[keyof typeof AudioMixingStrategy];
2431
+
2432
+ /**
2433
+ * Composition API
2434
+ * Real-time video compositing
2435
+ *
2436
+ * The version of the OpenAPI document: 0.1.0
2437
+ *
2438
+ *
2439
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2440
+ * https://openapi-generator.tech
2441
+ * Do not edit the class manually.
2442
+ */
2443
+ /**
2444
+ *
2445
+ * @export
2446
+ * @interface AudioSceneInput
2447
+ */
2448
+ interface AudioSceneInput {
2449
+ /**
2450
+ *
2451
+ * @type {string}
2452
+ * @memberof AudioSceneInput
2453
+ */
2454
+ inputId: string;
2455
+ /**
2456
+ * (**default=`1.0`**) float in `[0, 2]` range representing input volume
2457
+ * @type {number}
2458
+ * @memberof AudioSceneInput
2459
+ */
2460
+ volume?: number | null;
2461
+ }
2462
+
2463
+ /**
2464
+ * Composition API
2465
+ * Real-time video compositing
2466
+ *
2467
+ * The version of the OpenAPI document: 0.1.0
2468
+ *
2469
+ *
2470
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2471
+ * https://openapi-generator.tech
2472
+ * Do not edit the class manually.
2473
+ */
2474
+
2475
+ /**
2476
+ *
2477
+ * @export
2478
+ * @interface AudioScene
2479
+ */
2480
+ interface AudioScene {
2481
+ /**
2482
+ *
2483
+ * @type {Array<AudioSceneInput>}
2484
+ * @memberof AudioScene
2485
+ */
2486
+ inputs: Array<AudioSceneInput>;
2487
+ }
2488
+
2489
+ /**
2490
+ * Composition API
2491
+ * Real-time video compositing
2492
+ *
2493
+ * The version of the OpenAPI document: 0.1.0
2494
+ *
2495
+ *
2496
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2497
+ * https://openapi-generator.tech
2498
+ * Do not edit the class manually.
2499
+ */
2500
+
2501
+ /**
2502
+ *
2503
+ * @export
2504
+ * @interface OutputRtmpClientAudioOptions
2505
+ */
2506
+ interface OutputRtmpClientAudioOptions {
2507
+ /**
2508
+ * (**default="sum_clip"**) Specifies how audio should be mixed.
2509
+ * @type {AudioMixingStrategy}
2510
+ * @memberof OutputRtmpClientAudioOptions
2511
+ */
2512
+ mixingStrategy?: AudioMixingStrategy | null;
2513
+ /**
2514
+ * Condition for termination of the output stream based on the input streams states. If output includes both audio and video streams, then EOS needs to be sent for every type.
2515
+ * @type {OutputEndCondition}
2516
+ * @memberof OutputRtmpClientAudioOptions
2517
+ */
2518
+ sendEosWhen?: OutputEndCondition | null;
2519
+ /**
2520
+ * Channels configuration.
2521
+ * @type {AudioChannels}
2522
+ * @memberof OutputRtmpClientAudioOptions
2523
+ */
2524
+ channels?: AudioChannels | null;
2525
+ /**
2526
+ * Initial audio mixer configuration for output.
2527
+ * @type {AudioScene}
2528
+ * @memberof OutputRtmpClientAudioOptions
2529
+ */
2530
+ initial: AudioScene;
2531
+ }
2532
+
2533
+ /**
2534
+ * Composition API
2535
+ * Real-time video compositing
2536
+ *
2537
+ * The version of the OpenAPI document: 0.1.0
2538
+ *
2539
+ *
2540
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2541
+ * https://openapi-generator.tech
2542
+ * Do not edit the class manually.
2543
+ */
2544
+
2545
+ /**
2546
+ *
2547
+ * @export
2548
+ * @interface RtmpOutput
2549
+ */
2550
+ interface RtmpOutput {
2551
+ /**
2552
+ * RTMP endpoint url.
2553
+ * @type {string}
2554
+ * @memberof RtmpOutput
2555
+ */
2556
+ url: string;
2557
+ /**
2558
+ * Video stream configuration.
2559
+ * @type {OutputRtmpClientVideoOptions}
2560
+ * @memberof RtmpOutput
2561
+ */
2562
+ video?: OutputRtmpClientVideoOptions | null;
2563
+ /**
2564
+ * Audio stream configuration.
2565
+ * @type {OutputRtmpClientAudioOptions}
2566
+ * @memberof RtmpOutput
2567
+ */
2568
+ audio?: OutputRtmpClientAudioOptions | null;
2569
+ /**
2570
+ *
2571
+ * @type {RtmpOutputTypeEnum}
2572
+ * @memberof RtmpOutput
2573
+ */
2574
+ type: RtmpOutputTypeEnum;
2575
+ }
2576
+ /**
2577
+ * @export
2578
+ */
2579
+ declare const RtmpOutputTypeEnum: {
2580
+ readonly RtmpClient: "rtmp_client";
2581
+ };
2582
+ type RtmpOutputTypeEnum = (typeof RtmpOutputTypeEnum)[keyof typeof RtmpOutputTypeEnum];
2583
+
2584
+ /**
2585
+ * Composition API
2586
+ * Real-time video compositing
2587
+ *
2588
+ * The version of the OpenAPI document: 0.1.0
2589
+ *
2590
+ *
2591
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2592
+ * https://openapi-generator.tech
2593
+ * Do not edit the class manually.
2594
+ */
2595
+
2596
+ /**
2597
+ *
2598
+ * @export
2599
+ * @interface OutputWhipVideoOptions
2600
+ */
2601
+ interface OutputWhipVideoOptions {
2602
+ /**
2603
+ * Output resolution in pixels.
2604
+ * @type {Resolution}
2605
+ * @memberof OutputWhipVideoOptions
2606
+ */
2607
+ resolution: Resolution;
2608
+ /**
2609
+ * Defines when output stream should end if some of the input streams are finished. If output includes both audio and video streams, then EOS needs to be sent on both.
2610
+ * @type {OutputEndCondition}
2611
+ * @memberof OutputWhipVideoOptions
2612
+ */
2613
+ sendEosWhen?: OutputEndCondition | null;
2614
+ /**
2615
+ * Root of a component tree/scene that should be rendered for the output.
2616
+ * @type {VideoScene}
2617
+ * @memberof OutputWhipVideoOptions
2618
+ */
2619
+ initial: VideoScene;
2620
+ }
2621
+
2622
+ /**
2623
+ * Composition API
2624
+ * Real-time video compositing
2625
+ *
2626
+ * The version of the OpenAPI document: 0.1.0
2627
+ *
2628
+ *
2629
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2630
+ * https://openapi-generator.tech
2631
+ * Do not edit the class manually.
2632
+ */
2633
+ /**
2634
+ *
2635
+ * @export
2636
+ * @interface WhipAudioEncoderOptionsAny
2637
+ */
2638
+ interface WhipAudioEncoderOptionsAny {
2639
+ /**
2640
+ *
2641
+ * @type {WhipAudioEncoderOptionsAnyTypeEnum}
2642
+ * @memberof WhipAudioEncoderOptionsAny
2643
+ */
2644
+ type: WhipAudioEncoderOptionsAnyTypeEnum;
2645
+ }
2646
+ /**
2647
+ * @export
2648
+ */
2649
+ declare const WhipAudioEncoderOptionsAnyTypeEnum: {
2650
+ readonly Any: "any";
2651
+ };
2652
+ type WhipAudioEncoderOptionsAnyTypeEnum = (typeof WhipAudioEncoderOptionsAnyTypeEnum)[keyof typeof WhipAudioEncoderOptionsAnyTypeEnum];
2653
+
2654
+ /**
2655
+ * Composition API
2656
+ * Real-time video compositing
2657
+ *
2658
+ * The version of the OpenAPI document: 0.1.0
2659
+ *
2660
+ *
2661
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2662
+ * https://openapi-generator.tech
2663
+ * Do not edit the class manually.
2664
+ */
2665
+ /**
2666
+ *
2667
+ * @export
2668
+ */
2669
+ declare const OpusEncoderPreset: {
2670
+ readonly Quality: "quality";
2671
+ readonly Voip: "voip";
2672
+ readonly LowestLatency: "lowest_latency";
2673
+ };
2674
+ type OpusEncoderPreset = (typeof OpusEncoderPreset)[keyof typeof OpusEncoderPreset];
2675
+
2676
+ /**
2677
+ * Composition API
2678
+ * Real-time video compositing
2679
+ *
2680
+ * The version of the OpenAPI document: 0.1.0
2681
+ *
2682
+ *
2683
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2684
+ * https://openapi-generator.tech
2685
+ * Do not edit the class manually.
2686
+ */
2687
+
2688
+ /**
2689
+ *
2690
+ * @export
2691
+ * @interface WhipAudioEncoderOptionsOpus
2692
+ */
2693
+ interface WhipAudioEncoderOptionsOpus {
2694
+ /**
2695
+ * (**default="voip"**) Specifies preset for audio output encoder.
2696
+ * @type {OpusEncoderPreset}
2697
+ * @memberof WhipAudioEncoderOptionsOpus
2698
+ */
2699
+ preset?: OpusEncoderPreset | null;
2700
+ /**
2701
+ * (**default=`48000`**) Sample rate. Allowed values: [8000, 16000, 24000, 48000].
2702
+ * @type {number}
2703
+ * @memberof WhipAudioEncoderOptionsOpus
2704
+ */
2705
+ sampleRate?: number | null;
2706
+ /**
2707
+ * (**default=`false`**) Specifies if forward error correction (FEC) should be used.
2708
+ * @type {boolean}
2709
+ * @memberof WhipAudioEncoderOptionsOpus
2710
+ */
2711
+ forwardErrorCorrection?: boolean | null;
2712
+ /**
2713
+ *
2714
+ * @type {WhipAudioEncoderOptionsOpusTypeEnum}
2715
+ * @memberof WhipAudioEncoderOptionsOpus
2716
+ */
2717
+ type: WhipAudioEncoderOptionsOpusTypeEnum;
2718
+ }
2719
+ /**
2720
+ * @export
2721
+ */
2722
+ declare const WhipAudioEncoderOptionsOpusTypeEnum: {
2723
+ readonly Opus: "opus";
2724
+ };
2725
+ type WhipAudioEncoderOptionsOpusTypeEnum = (typeof WhipAudioEncoderOptionsOpusTypeEnum)[keyof typeof WhipAudioEncoderOptionsOpusTypeEnum];
2726
+
2727
+ /**
2728
+ * Composition API
2729
+ * Real-time video compositing
2730
+ *
2731
+ * The version of the OpenAPI document: 0.1.0
2732
+ *
2733
+ *
2734
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2735
+ * https://openapi-generator.tech
2736
+ * Do not edit the class manually.
2737
+ */
2738
+
2739
+ /**
2740
+ * @type WhipAudioEncoderOptions
2741
+ *
2742
+ * @export
2743
+ */
2744
+ type WhipAudioEncoderOptions = WhipAudioEncoderOptionsAny | WhipAudioEncoderOptionsOpus;
2745
+
2746
+ /**
2747
+ * Composition API
2748
+ * Real-time video compositing
2749
+ *
2750
+ * The version of the OpenAPI document: 0.1.0
2751
+ *
2752
+ *
2753
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2754
+ * https://openapi-generator.tech
2755
+ * Do not edit the class manually.
2756
+ */
2757
+
2758
+ /**
2759
+ *
2760
+ * @export
2761
+ * @interface OutputWhipAudioOptions
2762
+ */
2763
+ interface OutputWhipAudioOptions {
2764
+ /**
2765
+ * (**default="sum_clip"**) Specifies how audio should be mixed.
2766
+ * @type {AudioMixingStrategy}
2767
+ * @memberof OutputWhipAudioOptions
2768
+ */
2769
+ mixingStrategy?: AudioMixingStrategy | null;
2770
+ /**
2771
+ * Condition for termination of output stream based on the input streams states.
2772
+ * @type {OutputEndCondition}
2773
+ * @memberof OutputWhipAudioOptions
2774
+ */
2775
+ sendEosWhen?: OutputEndCondition | null;
2776
+ /**
2777
+ * Specifies channels configuration.
2778
+ * @type {AudioChannels}
2779
+ * @memberof OutputWhipAudioOptions
2780
+ */
2781
+ channels?: AudioChannels | null;
2782
+ /**
2783
+ * Codec preferences list.
2784
+ * @type {Array<WhipAudioEncoderOptions>}
2785
+ * @memberof OutputWhipAudioOptions
2786
+ */
2787
+ encoderPreferences?: Array<WhipAudioEncoderOptions> | null;
2788
+ /**
2789
+ * Initial audio mixer configuration for output.
2790
+ * @type {AudioScene}
2791
+ * @memberof OutputWhipAudioOptions
2792
+ */
2793
+ initial: AudioScene;
2794
+ }
2795
+
2796
+ /**
2797
+ * Composition API
2798
+ * Real-time video compositing
2799
+ *
2800
+ * The version of the OpenAPI document: 0.1.0
2801
+ *
2802
+ *
2803
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2804
+ * https://openapi-generator.tech
2805
+ * Do not edit the class manually.
2806
+ */
2807
+
2808
+ /**
2809
+ *
2810
+ * @export
2811
+ * @interface WhipOutput
2812
+ */
2813
+ interface WhipOutput {
2814
+ /**
2815
+ * WHIP server endpoint
2816
+ * @type {string}
2817
+ * @memberof WhipOutput
2818
+ */
2819
+ endpointUrl: string;
2820
+ /**
2821
+ *
2822
+ * @type {string}
2823
+ * @memberof WhipOutput
2824
+ */
2825
+ bearerToken?: string | null;
2826
+ /**
2827
+ * Video track configuration.
2828
+ * @type {OutputWhipVideoOptions}
2829
+ * @memberof WhipOutput
2830
+ */
2831
+ video?: OutputWhipVideoOptions | null;
2832
+ /**
2833
+ * Audio track configuration.
2834
+ * @type {OutputWhipAudioOptions}
2835
+ * @memberof WhipOutput
2836
+ */
2837
+ audio?: OutputWhipAudioOptions | null;
2838
+ /**
2839
+ *
2840
+ * @type {WhipOutputTypeEnum}
2841
+ * @memberof WhipOutput
2842
+ */
2843
+ type: WhipOutputTypeEnum;
2844
+ }
2845
+ /**
2846
+ * @export
2847
+ */
2848
+ declare const WhipOutputTypeEnum: {
2849
+ readonly WhipClient: "whip_client";
2850
+ };
2851
+ type WhipOutputTypeEnum = (typeof WhipOutputTypeEnum)[keyof typeof WhipOutputTypeEnum];
2852
+
2853
+ /**
2854
+ * Composition API
2855
+ * Real-time video compositing
2856
+ *
2857
+ * The version of the OpenAPI document: 0.1.0
2858
+ *
2859
+ *
2860
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2861
+ * https://openapi-generator.tech
2862
+ * Do not edit the class manually.
2863
+ */
2864
+
2865
+ /**
2866
+ * @type RegisterOutput
2867
+ *
2868
+ * @export
2869
+ */
2870
+ type RegisterOutput = RtmpOutput | WhipOutput;
2871
+
2872
+ /**
2873
+ * Composition API
2874
+ * Real-time video compositing
2875
+ *
2876
+ * The version of the OpenAPI document: 0.1.0
2877
+ *
2878
+ *
2879
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2880
+ * https://openapi-generator.tech
2881
+ * Do not edit the class manually.
2882
+ */
2883
+ /**
2884
+ *
2885
+ * @export
2886
+ * @interface UnregisterOutput
2887
+ */
2888
+ interface UnregisterOutput {
2889
+ /**
2890
+ * Time in milliseconds when this request should be applied. Value `0` represents
2891
+ * time of the start request.
2892
+ * @type {number}
2893
+ * @memberof UnregisterOutput
2894
+ */
2895
+ scheduleTimeMs?: number | null;
2896
+ }
2897
+
2898
+ /**
2899
+ * Composition API
2900
+ * Real-time video compositing
2901
+ *
2902
+ * The version of the OpenAPI document: 0.1.0
2903
+ *
2904
+ *
2905
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2906
+ * https://openapi-generator.tech
2907
+ * Do not edit the class manually.
2908
+ */
2909
+
2910
+ /**
2911
+ *
2912
+ * @export
2913
+ * @interface UpdateOutputRequest
2914
+ */
2915
+ interface UpdateOutputRequest {
2916
+ /**
2917
+ *
2918
+ * @type {VideoScene}
2919
+ * @memberof UpdateOutputRequest
2920
+ */
2921
+ video?: VideoScene | null;
2922
+ /**
2923
+ *
2924
+ * @type {AudioScene}
2925
+ * @memberof UpdateOutputRequest
2926
+ */
2927
+ audio?: AudioScene | null;
2928
+ /**
2929
+ *
2930
+ * @type {number}
2931
+ * @memberof UpdateOutputRequest
2932
+ */
2933
+ scheduleTimeMs?: number | null;
2934
+ }
2935
+
2936
+ /**
2937
+ * Composition API
2938
+ * Real-time video compositing
2939
+ *
2940
+ * The version of the OpenAPI document: 0.1.0
2941
+ *
2942
+ *
2943
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2944
+ * https://openapi-generator.tech
2945
+ * Do not edit the class manually.
2946
+ */
2947
+ /**
2948
+ *
2949
+ * @export
2950
+ * @interface ImageSpecAuto
2951
+ */
2952
+ interface ImageSpecAuto {
2953
+ /**
2954
+ *
2955
+ * @type {string}
2956
+ * @memberof ImageSpecAuto
2957
+ */
2958
+ url: string;
2959
+ /**
2960
+ *
2961
+ * @type {ImageSpecAutoAssetTypeEnum}
2962
+ * @memberof ImageSpecAuto
2963
+ */
2964
+ assetType: ImageSpecAutoAssetTypeEnum;
2965
+ }
2966
+ /**
2967
+ * @export
2968
+ */
2969
+ declare const ImageSpecAutoAssetTypeEnum: {
2970
+ readonly Auto: "auto";
2971
+ };
2972
+ type ImageSpecAutoAssetTypeEnum = (typeof ImageSpecAutoAssetTypeEnum)[keyof typeof ImageSpecAutoAssetTypeEnum];
2973
+
2974
+ /**
2975
+ * Composition API
2976
+ * Real-time video compositing
2977
+ *
2978
+ * The version of the OpenAPI document: 0.1.0
2979
+ *
2980
+ *
2981
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2982
+ * https://openapi-generator.tech
2983
+ * Do not edit the class manually.
2984
+ */
2985
+ /**
2986
+ *
2987
+ * @export
2988
+ * @interface ImageSpecGif
2989
+ */
2990
+ interface ImageSpecGif {
2991
+ /**
2992
+ *
2993
+ * @type {string}
2994
+ * @memberof ImageSpecGif
448
2995
  */
449
- tracks: Array<Track$2>;
2996
+ url: string;
450
2997
  /**
451
2998
  *
452
- * @type {PeerType}
453
- * @memberof Peer
2999
+ * @type {ImageSpecGifAssetTypeEnum}
3000
+ * @memberof ImageSpecGif
454
3001
  */
455
- type: PeerType$1;
3002
+ assetType: ImageSpecGifAssetTypeEnum;
456
3003
  }
3004
+ /**
3005
+ * @export
3006
+ */
3007
+ declare const ImageSpecGifAssetTypeEnum: {
3008
+ readonly Gif: "gif";
3009
+ };
3010
+ type ImageSpecGifAssetTypeEnum = (typeof ImageSpecGifAssetTypeEnum)[keyof typeof ImageSpecGifAssetTypeEnum];
457
3011
 
458
3012
  /**
459
- * Fishjam API
460
- * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
3013
+ * Composition API
3014
+ * Real-time video compositing
3015
+ *
3016
+ * The version of the OpenAPI document: 0.1.0
461
3017
  *
462
- * The version of the OpenAPI document: 0.28.1
463
- * Contact: contact@fishjam.io
464
3018
  *
465
3019
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
466
3020
  * https://openapi-generator.tech
467
3021
  * Do not edit the class manually.
468
3022
  */
469
3023
  /**
470
- * The use-case of the room. If not provided, this defaults to conference.
3024
+ *
471
3025
  * @export
3026
+ * @interface ImageSpecJpeg
472
3027
  */
473
- declare const RoomType: {
474
- readonly FullFeature: "full_feature";
475
- readonly AudioOnly: "audio_only";
476
- readonly Broadcaster: "broadcaster";
477
- readonly Livestream: "livestream";
478
- readonly Conference: "conference";
479
- readonly AudioOnlyLivestream: "audio_only_livestream";
3028
+ interface ImageSpecJpeg {
3029
+ /**
3030
+ *
3031
+ * @type {string}
3032
+ * @memberof ImageSpecJpeg
3033
+ */
3034
+ url: string;
3035
+ /**
3036
+ *
3037
+ * @type {ImageSpecJpegAssetTypeEnum}
3038
+ * @memberof ImageSpecJpeg
3039
+ */
3040
+ assetType: ImageSpecJpegAssetTypeEnum;
3041
+ }
3042
+ /**
3043
+ * @export
3044
+ */
3045
+ declare const ImageSpecJpegAssetTypeEnum: {
3046
+ readonly Jpeg: "jpeg";
480
3047
  };
481
- type RoomType = typeof RoomType[keyof typeof RoomType];
3048
+ type ImageSpecJpegAssetTypeEnum = (typeof ImageSpecJpegAssetTypeEnum)[keyof typeof ImageSpecJpegAssetTypeEnum];
482
3049
 
483
3050
  /**
484
- * Fishjam API
485
- * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
3051
+ * Composition API
3052
+ * Real-time video compositing
3053
+ *
3054
+ * The version of the OpenAPI document: 0.1.0
486
3055
  *
487
- * The version of the OpenAPI document: 0.28.1
488
- * Contact: contact@fishjam.io
489
3056
  *
490
3057
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
491
3058
  * https://openapi-generator.tech
492
3059
  * Do not edit the class manually.
493
3060
  */
494
3061
  /**
495
- * Enforces video codec for each peer in the room
3062
+ *
496
3063
  * @export
3064
+ * @interface ImageSpecPng
497
3065
  */
498
- declare const VideoCodec: {
499
- readonly H264: "h264";
500
- readonly Vp8: "vp8";
3066
+ interface ImageSpecPng {
3067
+ /**
3068
+ *
3069
+ * @type {string}
3070
+ * @memberof ImageSpecPng
3071
+ */
3072
+ url: string;
3073
+ /**
3074
+ *
3075
+ * @type {ImageSpecPngAssetTypeEnum}
3076
+ * @memberof ImageSpecPng
3077
+ */
3078
+ assetType: ImageSpecPngAssetTypeEnum;
3079
+ }
3080
+ /**
3081
+ * @export
3082
+ */
3083
+ declare const ImageSpecPngAssetTypeEnum: {
3084
+ readonly Png: "png";
501
3085
  };
502
- type VideoCodec = typeof VideoCodec[keyof typeof VideoCodec];
3086
+ type ImageSpecPngAssetTypeEnum = (typeof ImageSpecPngAssetTypeEnum)[keyof typeof ImageSpecPngAssetTypeEnum];
503
3087
 
504
3088
  /**
505
- * Fishjam API
506
- * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
3089
+ * Composition API
3090
+ * Real-time video compositing
3091
+ *
3092
+ * The version of the OpenAPI document: 0.1.0
507
3093
  *
508
- * The version of the OpenAPI document: 0.28.1
509
- * Contact: contact@fishjam.io
510
3094
  *
511
3095
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
512
3096
  * https://openapi-generator.tech
@@ -514,98 +3098,81 @@ type VideoCodec = typeof VideoCodec[keyof typeof VideoCodec];
514
3098
  */
515
3099
 
516
3100
  /**
517
- * Room configuration
3101
+ *
518
3102
  * @export
519
- * @interface RoomConfig
3103
+ * @interface ImageSpecSvg
520
3104
  */
521
- interface RoomConfig {
522
- /**
523
- * If true, webhook notifications for this room are coalesced into a single NotificationBatch per HTTP send instead of one request per notification. VAD notifications are unaffected.
524
- * @type {boolean}
525
- * @memberof RoomConfig
526
- */
527
- batchWebhookNotifications?: boolean;
528
- /**
529
- * Maximum amount of peers allowed into the room
530
- * @type {number}
531
- * @memberof RoomConfig
532
- */
533
- maxPeers?: number | null;
534
- /**
535
- * True if livestream viewers can omit specifying a token.
536
- * @type {boolean}
537
- * @memberof RoomConfig
538
- */
539
- public?: boolean;
3105
+ interface ImageSpecSvg {
540
3106
  /**
541
3107
  *
542
- * @type {RoomType}
543
- * @memberof RoomConfig
3108
+ * @type {string}
3109
+ * @memberof ImageSpecSvg
544
3110
  */
545
- roomType?: RoomType;
3111
+ url: string;
546
3112
  /**
547
3113
  *
548
- * @type {VideoCodec}
549
- * @memberof RoomConfig
3114
+ * @type {Resolution}
3115
+ * @memberof ImageSpecSvg
550
3116
  */
551
- videoCodec?: VideoCodec;
3117
+ resolution?: Resolution | null;
552
3118
  /**
553
- * Deprecated: configure the webhook in the Dashboard instead. URL where Fishjam notifications will be sent; overrides the Dashboard-configured webhook URL
554
- * @type {string}
555
- * @memberof RoomConfig
556
- * @deprecated
3119
+ *
3120
+ * @type {ImageSpecSvgAssetTypeEnum}
3121
+ * @memberof ImageSpecSvg
557
3122
  */
558
- webhookUrl?: string | null;
3123
+ assetType: ImageSpecSvgAssetTypeEnum;
559
3124
  }
3125
+ /**
3126
+ * @export
3127
+ */
3128
+ declare const ImageSpecSvgAssetTypeEnum: {
3129
+ readonly Svg: "svg";
3130
+ };
3131
+ type ImageSpecSvgAssetTypeEnum = (typeof ImageSpecSvgAssetTypeEnum)[keyof typeof ImageSpecSvgAssetTypeEnum];
560
3132
 
561
3133
  /**
562
- * Fishjam API
563
- * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
3134
+ * Composition API
3135
+ * Real-time video compositing
3136
+ *
3137
+ * The version of the OpenAPI document: 0.1.0
564
3138
  *
565
- * The version of the OpenAPI document: 0.28.1
566
- * Contact: contact@fishjam.io
567
3139
  *
568
3140
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
569
3141
  * https://openapi-generator.tech
570
3142
  * Do not edit the class manually.
571
3143
  */
3144
+
572
3145
  /**
573
- * Streamer authorization token
3146
+ * @type ImageSpec
3147
+ *
574
3148
  * @export
575
- * @interface StreamerToken
576
3149
  */
577
- interface StreamerToken {
578
- /**
579
- * Token streamer should authorize with
580
- * @type {string}
581
- * @memberof StreamerToken
582
- */
583
- token: string;
584
- }
3150
+ type ImageSpec = ImageSpecAuto | ImageSpecGif | ImageSpecJpeg | ImageSpecPng | ImageSpecSvg;
585
3151
 
586
3152
  /**
587
- * Fishjam API
588
- * API for managing Fishjam real-time media resources. ## Authentication ## Credentials (Fishjam ID, Fishjam Management Token) can be obtained at https://fishjam.io/app. All requests require HTTP Bearer authorization using the Fishjam Management Token. ## Fishjam SDKs ## For TypeScript and Python users, we provide SDKs that simplify using this API. We recommend using them instead of manually consuming the API in these languages. You can learn more about our SDKs in our [SDK Docs](http://fishjam.swmansion.com/docs/how-to/backend/server-setup)
3153
+ * Composition API
3154
+ * Real-time video compositing
3155
+ *
3156
+ * The version of the OpenAPI document: 0.1.0
589
3157
  *
590
- * The version of the OpenAPI document: 0.28.1
591
- * Contact: contact@fishjam.io
592
3158
  *
593
3159
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
594
3160
  * https://openapi-generator.tech
595
3161
  * Do not edit the class manually.
596
3162
  */
597
3163
  /**
598
- * Viewer authorization token
3164
+ *
599
3165
  * @export
600
- * @interface ViewerToken
3166
+ * @interface UnregisterRenderer
601
3167
  */
602
- interface ViewerToken {
3168
+ interface UnregisterRenderer {
603
3169
  /**
604
- * Token viewer should authorize with
605
- * @type {string}
606
- * @memberof ViewerToken
3170
+ * Time in milliseconds when this request should be applied. Value `0` represents
3171
+ * time of the start request.
3172
+ * @type {number}
3173
+ * @memberof UnregisterRenderer
607
3174
  */
608
- token: string;
3175
+ scheduleTimeMs?: number | null;
609
3176
  }
610
3177
 
611
3178
  /** Defines types of tracks being published by peers and component */
@@ -660,6 +3227,14 @@ declare enum ServerMessage_VadNotification_Status {
660
3227
  STATUS_SPEECH = 2,
661
3228
  UNRECOGNIZED = -1
662
3229
  }
3230
+ declare enum ServerMessage_RecordingStatusChanged_Status {
3231
+ STATUS_UNSPECIFIED = 0,
3232
+ STATUS_ACTIVE = 1,
3233
+ STATUS_FINISHED = 2,
3234
+ STATUS_AVAILABLE = 3,
3235
+ STATUS_FAILED = 4,
3236
+ UNRECOGNIZED = -1
3237
+ }
663
3238
  /** Defines any type of message passed between FJ and server peer */
664
3239
  interface ServerMessage {
665
3240
  authenticated?: ServerMessage_Authenticated | undefined;
@@ -687,6 +3262,7 @@ interface ServerMessage {
687
3262
  viewerDisconnected?: ServerMessage_ViewerDisconnected | undefined;
688
3263
  streamerConnected?: ServerMessage_StreamerConnected | undefined;
689
3264
  streamerDisconnected?: ServerMessage_StreamerDisconnected | undefined;
3265
+ recordingStatusChanged?: ServerMessage_RecordingStatusChanged | undefined;
690
3266
  /** Batch */
691
3267
  notificationBatch?: ServerMessage_NotificationBatch | undefined;
692
3268
  /** @deprecated */
@@ -902,6 +3478,13 @@ interface ServerMessage_StreamerDisconnected {
902
3478
  streamerId: string;
903
3479
  }
904
3480
  declare const ServerMessage_StreamerDisconnected: MessageFns$1<ServerMessage_StreamerDisconnected>;
3481
+ interface ServerMessage_RecordingStatusChanged {
3482
+ recordingId: string;
3483
+ status: ServerMessage_RecordingStatusChanged_Status;
3484
+ /** JSON-encoded, as set on recording creation */
3485
+ metadata: string;
3486
+ }
3487
+ declare const ServerMessage_RecordingStatusChanged: MessageFns$1<ServerMessage_RecordingStatusChanged>;
905
3488
  /**
906
3489
  * Carries multiple notifications in a single wire frame.
907
3490
  *
@@ -1076,13 +3659,87 @@ type TrackType = TrackType$2 | 'unspecified';
1076
3659
  * Voice activity status of a track.
1077
3660
  */
1078
3661
  type VadStatus = 'speech' | 'silence';
3662
+ /**
3663
+ * ID of a recording.
3664
+ * Recording can be started with {@link FishjamClient.createRecording}.
3665
+ */
3666
+ type RecordingId = Brand<string, 'RecordingId'>;
3667
+ /**
3668
+ * Lifecycle status of a recording, as returned by the REST API and emitted by {@link FishjamWSNotifier}.
3669
+ */
3670
+ type RecordingStatus = 'active' | 'finished' | 'available' | 'failed';
3671
+ /**
3672
+ * A recording and its current lifecycle status.
3673
+ */
3674
+ type Recording = Override<Recording$1, {
3675
+ id: RecordingId;
3676
+ status: RecordingStatus;
3677
+ }>;
3678
+ /**
3679
+ * ID of a composition.
3680
+ * Composition can be created with {@link CompositionClient.createComposition}.
3681
+ */
3682
+ type CompositionId = Brand<string, 'CompositionId'>;
3683
+ /**
3684
+ * ID of an input registered on a composition with {@link CompositionClient.registerInput}.
3685
+ */
3686
+ type InputId = Brand<string, 'InputId'>;
3687
+ /**
3688
+ * ID of an output registered on a composition with {@link CompositionClient.registerOutput}.
3689
+ */
3690
+ type OutputId = Brand<string, 'OutputId'>;
3691
+ /**
3692
+ * ID of a renderer, such as an image registered with {@link CompositionClient.registerImage}.
3693
+ */
3694
+ type RendererId = Brand<string, 'RendererId'>;
3695
+ type Composition = Override<CompositionCreatedResponse, {
3696
+ compositionId: CompositionId;
3697
+ }>;
3698
+ /**
3699
+ * Where to publish a WHIP input registered with {@link CompositionClient.registerWhipInput}.
3700
+ * Hand these to a WHIP publisher, such as `useLivestreamStreamer` in the React client SDK.
3701
+ */
3702
+ type WhipInputTarget = {
3703
+ url: string;
3704
+ bearerToken: string;
3705
+ };
3706
+ /**
3707
+ * How much media an MP4 input registered with {@link CompositionClient.registerMp4Input} holds.
3708
+ */
3709
+ type Mp4InputDurations = {
3710
+ videoDurationMs?: number;
3711
+ audioDurationMs?: number;
3712
+ };
1079
3713
  type Room = {
1080
3714
  id: RoomId;
1081
3715
  peers: Peer[];
1082
3716
  config: RoomConfig;
1083
3717
  };
3718
+ type CompositionConfig = {
3719
+ /**
3720
+ * Management token is a secret token authorizing to perform actions on your account.
3721
+ * It is the same token {@link FishjamClient} is configured with.
3722
+ * Never share this token with anyone.
3723
+ * Visit https://fishjam.io/app/ to get your Management Token.
3724
+ */
3725
+ managementToken: string;
3726
+ /**
3727
+ * Address of the Composition API. Only needs setting when running against a
3728
+ * deployment other than production.
3729
+ */
3730
+ compositionUrl?: string;
3731
+ };
1084
3732
  type FishjamConfig = {
3733
+ /**
3734
+ * Fishjam ID is a unique identifier for your account and environment.
3735
+ * Visit https://fishjam.io/app/ to get your Fishjam ID.
3736
+ */
1085
3737
  fishjamId: string;
3738
+ /**
3739
+ * Management token is a secret token authorizing to perform actions on your account.
3740
+ * Never share this token with anyone.
3741
+ * Visit https://fishjam.io/app/ to get your Management Token.
3742
+ */
1086
3743
  managementToken: string;
1087
3744
  };
1088
3745
  type ErrorEventHandler = (msg: Event) => void;
@@ -1100,7 +3757,7 @@ type Track = {
1100
3757
  type: TrackType;
1101
3758
  metadata: string;
1102
3759
  };
1103
- declare const expectedEventsList$1: readonly ["roomCreated", "roomDeleted", "roomCrashed", "peerAdded", "peerDeleted", "peerConnected", "peerDisconnected", "peerMetadataUpdated", "peerCrashed", "streamerConnected", "streamerDisconnected", "viewerConnected", "viewerDisconnected", "trackAdded", "trackRemoved", "trackMetadataUpdated", "trackForwarding", "trackForwardingRemoved", "vadNotification", "channelAdded", "channelRemoved"];
3760
+ declare const expectedEventsList$1: readonly ["roomCreated", "roomDeleted", "roomCrashed", "peerAdded", "peerDeleted", "peerConnected", "peerDisconnected", "peerMetadataUpdated", "peerCrashed", "streamerConnected", "streamerDisconnected", "viewerConnected", "viewerDisconnected", "trackAdded", "trackRemoved", "trackMetadataUpdated", "trackForwarding", "trackForwardingRemoved", "vadNotification", "channelAdded", "channelRemoved", "recordingStatusChanged"];
1104
3761
  type ExpectedEvents = (typeof expectedEventsList$1)[number];
1105
3762
  /**
1106
3763
  * `ServerMessage` oneof members that are intentionally NOT emitted to users.
@@ -1112,7 +3769,9 @@ type IgnoredEvents = (typeof ignoredEventsList)[number];
1112
3769
  /**
1113
3770
  * Field-level overrides applied to every notification payload: branded ID types
1114
3771
  * and the user-facing enums replace their raw protobuf counterparts. {@link Override}
1115
- * only swaps keys that exist on the source type, so a single map covers all variants.
3772
+ * only swaps keys that exist on the source type, so a single map covers all variants
3773
+ * except `recordingStatusChanged`, whose `status` has its own meaning
3774
+ * (see {@link RecordingOverrides}).
1116
3775
  *
1117
3776
  * @inline
1118
3777
  */
@@ -1125,8 +3784,19 @@ type NotificationOverrides = {
1125
3784
  videoTrack: Track | undefined;
1126
3785
  status: VadStatus;
1127
3786
  };
3787
+ /**
3788
+ * Overrides for {@link Notifications.recordingStatusChanged}, kept separate from
3789
+ * {@link NotificationOverrides} because its `status` field is a {@link RecordingStatus},
3790
+ * not a {@link VadStatus}.
3791
+ *
3792
+ * @inline
3793
+ */
3794
+ type RecordingOverrides = {
3795
+ recordingId: RecordingId;
3796
+ status: RecordingStatus;
3797
+ };
1128
3798
  /** @inline */
1129
- type Notification<K extends keyof ServerMessage> = Override<NonNullable<ServerMessage[K]>, NotificationOverrides>;
3799
+ type Notification<K extends keyof ServerMessage, TOverrides = NotificationOverrides> = Override<NonNullable<ServerMessage[K]>, TOverrides>;
1130
3800
  /**
1131
3801
  * @inline
1132
3802
  */
@@ -1152,6 +3822,7 @@ type Notifications = {
1152
3822
  vadNotification: Notification<'vadNotification'>;
1153
3823
  channelAdded: Notification<'channelAdded'>;
1154
3824
  channelRemoved: Notification<'channelRemoved'>;
3825
+ recordingStatusChanged: Notification<'recordingStatusChanged', RecordingOverrides>;
1155
3826
  };
1156
3827
  type RoomCreated = Notifications['roomCreated'];
1157
3828
  type RoomDeleted = Notifications['roomDeleted'];
@@ -1174,6 +3845,7 @@ type TrackForwardingRemoved = Notifications['trackForwardingRemoved'];
1174
3845
  type VadNotification = Notifications['vadNotification'];
1175
3846
  type ChannelAdded = Notifications['channelAdded'];
1176
3847
  type ChannelRemoved = Notifications['channelRemoved'];
3848
+ type RecordingStatusChanged = Notifications['recordingStatusChanged'];
1177
3849
  type NotificationEvents = {
1178
3850
  [K in ExpectedEvents]: (message: Notifications[K]) => void;
1179
3851
  };
@@ -1347,6 +4019,8 @@ declare class FishjamClient {
1347
4019
  private readonly viewerApi;
1348
4020
  private readonly streamerApi;
1349
4021
  private readonly credentialsApi;
4022
+ private readonly recordingsApi;
4023
+ private readonly trackForwardingsApi;
1350
4024
  private readonly fishjamConfig;
1351
4025
  private deprecationWarningShown;
1352
4026
  /**
@@ -1445,6 +4119,18 @@ declare class FishjamClient {
1445
4119
  * @returns refreshed peer token
1446
4120
  */
1447
4121
  refreshPeerToken(roomId: RoomId, peerId: PeerId): Promise<string>;
4122
+ /**
4123
+ * Forwards every track published in the room into a composition, which composes them into
4124
+ * its outputs. Pass the composition's address, as returned by
4125
+ * {@link CompositionClient.compositionUrl}.
4126
+ */
4127
+ forwardRoomTracks(roomId: RoomId, compositionUrl: string): Promise<void>;
4128
+ /**
4129
+ * Where to publish a livestream, paired with a token from
4130
+ * {@link FishjamClient.createLivestreamStreamerToken}. A composition reaches viewers by
4131
+ * sending a WHIP output here.
4132
+ */
4133
+ livestreamWhipUrl(): string;
1448
4134
  /**
1449
4135
  * Creates a livestream viewer token for the given room.
1450
4136
  * @returns a livestream viewer token
@@ -1460,11 +4146,163 @@ declare class FishjamClient {
1460
4146
  * @returns connection details containing the relay URL with the JWT embedded as a `?jwt=` query parameter, and the token itself
1461
4147
  */
1462
4148
  createMoqAccess(config?: MoqAccessConfig): Promise<MoqAccess>;
4149
+ /**
4150
+ * Create a new recording. Capturing starts synchronously, so the returned recording is `active`.
4151
+ */
4152
+ createRecording(config: RecordingConfig): Promise<Recording>;
4153
+ /**
4154
+ * Get details about a given recording.
4155
+ */
4156
+ getRecording(recordingId: RecordingId): Promise<Recording>;
4157
+ /**
4158
+ * Get a list of all recordings, optionally filtered by metadata.
4159
+ * Returns recordings whose metadata contains all the given key-value pairs.
4160
+ */
4161
+ getAllRecordings(metadata?: Record<string, unknown>): Promise<Recording[]>;
4162
+ /**
4163
+ * Stop an active recording. Finalization is asynchronous: the recording stays `active` until
4164
+ * the capture is finalized, then becomes `finished`. Stopping a recording that is no longer active is a no-op.
4165
+ */
4166
+ stopRecording(recordingId: RecordingId): Promise<Recording>;
4167
+ /**
4168
+ * Delete a recording. Its stored media is removed asynchronously.
4169
+ * A recording that is still `active` cannot be deleted — stop it first or wait for it to finish.
4170
+ */
4171
+ deleteRecording(recordingId: RecordingId): Promise<void>;
4172
+ }
4173
+
4174
+ /**
4175
+ * Client class that allows to manage compositions, the real-time video compositing sessions
4176
+ * of a Fishjam App. It requires the management token that can be retrieved from the Fishjam
4177
+ * Dashboard, the same one used by {@link FishjamClient}.
4178
+ *
4179
+ * Example usage:
4180
+ * ```
4181
+ * const compositionClient = new CompositionClient({
4182
+ * managementToken: fastify.config.FISHJAM_MANAGEMENT_TOKEN,
4183
+ * });
4184
+ * ```
4185
+ * @category Client
4186
+ */
4187
+ declare class CompositionClient {
4188
+ private readonly compositionsApi;
4189
+ private readonly eventsApi;
4190
+ private readonly inputsApi;
4191
+ private readonly mediaTransportApi;
4192
+ private readonly outputsApi;
4193
+ private readonly renderersApi;
4194
+ private readonly baseUrl;
4195
+ constructor(config: CompositionConfig);
4196
+ /**
4197
+ * Create a new composition. Inputs registered on it are composed into the scenes its outputs render.
4198
+ */
4199
+ createComposition(config?: CreateCompositionRequest): Promise<Composition>;
4200
+ /**
4201
+ * The address of a composition, as other services refer to it. Fishjam needs it to forward a
4202
+ * room's tracks with {@link FishjamClient.forwardRoomTracks}.
4203
+ */
4204
+ compositionUrl(compositionId: CompositionId): string;
4205
+ /**
4206
+ * Start a composition created with `autostart` disabled. Its outputs begin producing audio and video.
4207
+ */
4208
+ startComposition(compositionId: CompositionId): Promise<void>;
4209
+ /**
4210
+ * Reset a composition, tearing down its scene while keeping the composition itself alive.
4211
+ */
4212
+ resetComposition(compositionId: CompositionId): Promise<void>;
4213
+ /**
4214
+ * Delete an existing composition. Its inputs and outputs are torn down with it.
4215
+ */
4216
+ deleteComposition(compositionId: CompositionId): Promise<void>;
4217
+ /**
4218
+ * Register a media source on a composition. Prefer the variant methods, such as
4219
+ * {@link CompositionClient.registerWhipInput}, which return what that input type produces.
4220
+ */
4221
+ registerInput(compositionId: CompositionId, inputId: InputId, input: RegisterInput): Promise<RegisterInputResponse>;
4222
+ /**
4223
+ * Register an input that a WHIP publisher pushes media into.
4224
+ * @returns the address and token to publish with, see {@link WhipInputTarget}
4225
+ */
4226
+ registerWhipInput(compositionId: CompositionId, inputId: InputId, options?: Omit<WhipInput, 'type'>): Promise<WhipInputTarget>;
4227
+ /**
4228
+ * Where WHIP publishing is served, for servers that do not report the route themselves.
4229
+ */
4230
+ private whipPath;
4231
+ /**
4232
+ * Register an input that pulls media from a WHEP endpoint.
4233
+ */
4234
+ registerWhepInput(compositionId: CompositionId, inputId: InputId, options: Omit<WhepInput, 'type'>): Promise<void>;
4235
+ /**
4236
+ * Register an input that plays an MP4 file.
4237
+ * @returns how much media the file holds, see {@link Mp4InputDurations}
4238
+ */
4239
+ registerMp4Input(compositionId: CompositionId, inputId: InputId, options: Omit<Mp4Input, 'type'>): Promise<Mp4InputDurations>;
4240
+ /**
4241
+ * Register an input that an RTMP publisher pushes media into. The stream key identifies the
4242
+ * input; the address to publish to belongs to the composition, not to this call.
4243
+ */
4244
+ registerRtmpInput(compositionId: CompositionId, inputId: InputId, options: Omit<RtmpInput, 'type'>): Promise<void>;
4245
+ /**
4246
+ * Unregister an input. Scenes referencing it stop receiving its media.
4247
+ */
4248
+ unregisterInput(compositionId: CompositionId, inputId: InputId, options?: UnregisterInput): Promise<void>;
4249
+ /**
4250
+ * Register an output, the destination the composed result is sent to, carrying the scene to render.
4251
+ */
4252
+ registerOutput(compositionId: CompositionId, outputId: OutputId, output: RegisterOutput): Promise<void>;
4253
+ /**
4254
+ * Register an output rendering a template bundle, as built by `@fishjam-cloud/composition-cli`.
4255
+ * The bundle is either a `Blob` or a path to read it from; never pass a path taken from
4256
+ * untrusted input, since its contents are uploaded.
4257
+ */
4258
+ registerTemplateOutput(compositionId: CompositionId, outputId: OutputId, config: RegisterOutput, template: Blob | string): Promise<void>;
4259
+ /**
4260
+ * Register an output sending the composed result to a WHIP endpoint.
4261
+ */
4262
+ registerWhipOutput(compositionId: CompositionId, outputId: OutputId, options: Omit<WhipOutput, 'type'>): Promise<void>;
4263
+ /**
4264
+ * Register an output sending the composed result to an RTMP endpoint.
4265
+ */
4266
+ registerRtmpOutput(compositionId: CompositionId, outputId: OutputId, options: Omit<RtmpOutput, 'type'>): Promise<void>;
4267
+ /**
4268
+ * Unregister an output. It stops producing audio and video.
4269
+ */
4270
+ unregisterOutput(compositionId: CompositionId, outputId: OutputId, options?: UnregisterOutput): Promise<void>;
4271
+ /**
4272
+ * Replace the scene an output renders.
4273
+ */
4274
+ updateOutput(compositionId: CompositionId, outputId: OutputId, update: UpdateOutputRequest): Promise<void>;
4275
+ /**
4276
+ * Ask an output to emit a keyframe, so a viewer joining mid-stream renders a full picture sooner.
4277
+ */
4278
+ requestKeyframe(compositionId: CompositionId, outputId: OutputId): Promise<void>;
4279
+ /**
4280
+ * Register an image that scenes can reference by its renderer ID.
4281
+ */
4282
+ registerImage(compositionId: CompositionId, imageId: RendererId, image: ImageSpec): Promise<void>;
4283
+ /**
4284
+ * Register a font that scenes can render text with. The font is either a `Blob` or a path
4285
+ * to read it from; never pass a path taken from untrusted input, since its contents are uploaded.
4286
+ */
4287
+ registerFont(compositionId: CompositionId, font: Blob | string): Promise<void>;
4288
+ /**
4289
+ * Unregister a previously registered image.
4290
+ */
4291
+ unregisterImage(compositionId: CompositionId, imageId: RendererId, options?: UnregisterRenderer): Promise<void>;
4292
+ /**
4293
+ * Deliver an event to the templates rendered by the composition's outputs.
4294
+ */
4295
+ sendEvent(compositionId: CompositionId, event: SendCompositionEventRequest): Promise<void>;
1463
4296
  }
1464
4297
 
1465
4298
  declare class MissingFishjamIdException extends Error {
1466
4299
  constructor();
1467
4300
  }
4301
+ declare class StaleSdkException extends Error {
4302
+ /** Raw wire value received from the server. */
4303
+ status: number;
4304
+ constructor(status: number);
4305
+ }
1468
4306
  interface FishjamExceptionInfo {
1469
4307
  message: string;
1470
4308
  statusCode?: number;
@@ -1489,6 +4327,16 @@ declare class InvalidFishjamCredentialsException extends FishjamBaseException {
1489
4327
  }
1490
4328
  declare class PeerNotFoundException extends FishjamBaseException {
1491
4329
  }
4330
+ declare class RecordingNotFoundException extends FishjamBaseException {
4331
+ }
4332
+ declare class CompositionNotFoundException extends FishjamBaseException {
4333
+ }
4334
+ declare class InputNotFoundException extends FishjamBaseException {
4335
+ }
4336
+ declare class OutputNotFoundException extends FishjamBaseException {
4337
+ }
4338
+ declare class RendererNotFoundException extends FishjamBaseException {
4339
+ }
1492
4340
  declare class ServiceUnavailableException extends FishjamBaseException {
1493
4341
  }
1494
4342
  declare class QuotaExceededException extends FishjamBaseException {
@@ -1504,4 +4352,4 @@ declare class UnknownException extends FishjamBaseException {
1504
4352
 
1505
4353
  type PeerOptions = PeerOptionsWebRTC | PeerOptionsAgent | PeerOptionsVapi;
1506
4354
 
1507
- export { type AgentCallbacks, type AgentEvents, type AgentTrack, type AudioCodecParameters, BadRequestException, type Brand, type ChannelAdded, type ChannelRemoved, type CloseEventHandler, type ErrorEventHandler, type ExpectedAgentEvents, type ExpectedEvents, FishjamAgent, FishjamBaseException, FishjamClient, type FishjamConfig, type FishjamExceptionInfo, FishjamNotFoundException, FishjamWSNotifier, ForbiddenException, type IgnoredEvents, type IncomingTrackData, type IncomingTrackImage, InvalidFishjamCredentialsException, MissingFishjamIdException, type MoqAccess, type MoqAccessConfig, type NotificationEvents, type OutgoingTrackData, type Override, type Peer, type PeerAdded, type PeerConnected, type PeerCrashed, type PeerDeleted, type PeerDisconnected, type PeerId, type PeerMetadataUpdated, PeerNotFoundException, type PeerOptions, type PeerOptionsAgent, type PeerOptionsVapi, type PeerOptionsWebRTC, PeerStatus, type PeerType, QuotaExceededException, type Room, type RoomConfig, type RoomCrashed, type RoomCreated, type RoomDeleted, type RoomId, RoomNotFoundException, RoomType, ServerMessage, type ServerNotification, ServiceUnavailableException, type StreamerConnected, type StreamerDisconnected, type StreamerToken, type Track, type TrackAdded, type TrackForwarding, type TrackForwardingRemoved, type TrackId, type TrackMetadataUpdated, type TrackRemoved, type TrackType, UnauthorizedException, UnknownException, type VadNotification, type VadStatus, VideoCodec, type ViewerConnected, type ViewerDisconnected, type ViewerToken, decodeServerNotifications, verifyWebhookSignature };
4355
+ export { type AgentCallbacks, type AgentEvents, type AgentOutput, type AgentTrack, AudioChannels, type AudioCodecParameters, AudioFormat, AudioMixingStrategy, AudioSampleRate, type AudioScene, type AudioSceneInput, BadRequestException, type BoxShadow, type Brand, type ChannelAdded, type ChannelRemoved, type CloseEventHandler, type Component, type Composition, CompositionClient, type CompositionConfig, type CompositionId, CompositionNotFoundException, type CreateCompositionRequest, type EasingFunction, type EasingFunctionBounce, type EasingFunctionCubicBezier, type EasingFunctionLinear, type ErrorEventHandler, type ExpectedAgentEvents, type ExpectedEvents, FishjamAgent, FishjamBaseException, FishjamClient, type FishjamConfig, type FishjamExceptionInfo, FishjamNotFoundException, FishjamWSNotifier, ForbiddenException, HorizontalAlign, type IgnoredEvents, type Image, type ImageSpec, type ImageSpecAuto, type ImageSpecGif, type ImageSpecJpeg, type ImageSpecPng, type ImageSpecSvg, type IncomingTrackData, type IncomingTrackImage, type InputId, InputNotFoundException, type InputStream, InvalidFishjamCredentialsException, MissingFishjamIdException, type MoqAccess, type MoqAccessConfig, type Mp4Input, type Mp4InputDurations, type NotificationEvents, OpusEncoderPreset, type OutgoingTrackData, type OutputEndCondition, type OutputId, OutputNotFoundException, type OutputRtmpClientAudioOptions, type OutputRtmpClientVideoOptions, type OutputWhipAudioOptions, type OutputWhipVideoOptions, Overflow, type Override, type Peer, type PeerAdded, type PeerConnected, type PeerCrashed, type PeerDeleted, type PeerDisconnected, type PeerId, type PeerMetadataUpdated, PeerNotFoundException, type PeerOptions, type PeerOptionsAgent, type PeerOptionsVapi, type PeerOptionsWebRTC, PeerStatus, type PeerType, QuotaExceededException, type Recording, type RecordingConfig, type RecordingId, RecordingNotFoundException, type RecordingSource, type RecordingStatus, type RecordingStatusChanged, type RegisterInput, type RegisterInputResponse, type RegisterOutput, type RendererId, RendererNotFoundException, RescaleMode, type Rescaler, type Resolution, type Room, type RoomConfig, type RoomCrashed, type RoomCreated, type RoomDeleted, type RoomId, RoomNotFoundException, RoomType, type RtmpInput, type RtmpOutput, type SendCompositionEventRequest, ServerMessage, type ServerNotification, ServiceUnavailableException, StaleSdkException, type StreamerConnected, type StreamerDisconnected, type StreamerToken, SubscribeMode, type Text, TextStyle, TextWeight, TextWrapMode, type Tiles, type Track, type TrackAdded, type TrackForwarding, type TrackForwardingRemoved, type TrackId, type TrackMetadataUpdated, type TrackRemoved, type TrackType, type Transition, UnauthorizedException, UnknownException, type UnregisterInput, type UnregisterOutput, type UnregisterRenderer, type UpdateOutputRequest, type VadNotification, type VadStatus, VerticalAlign, VideoCodec, type VideoScene, type View, ViewDirection, type ViewerConnected, type ViewerDisconnected, type ViewerToken, type WhepInput, type WhipAudioEncoderOptions, type WhipAudioEncoderOptionsAny, type WhipAudioEncoderOptionsOpus, type WhipInput, type WhipInputTarget, type WhipOutput, decodeServerNotifications, verifyWebhookSignature };