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

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