@rtsdk/topia 0.17.8 → 0.17.9

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.ts CHANGED
@@ -131,6 +131,8 @@ declare class Scene extends SDKController implements SceneInterface {
131
131
  /**
132
132
  * Retrieves scene details and assigns response data to the instance.
133
133
  *
134
+ * @keywords get, fetch, retrieve, load, details, info, information, scene
135
+ *
134
136
  * @example
135
137
  * ```ts
136
138
  * await scene.fetchSceneById();
@@ -168,6 +170,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
168
170
  /**
169
171
  * Retrieves dropped asset details and assigns response data to the instance.
170
172
  *
173
+ * @keywords get, fetch, retrieve, load, details, info, information
174
+ *
171
175
  * @example
172
176
  * ```ts
173
177
  * await droppedAsset.fetchDroppedAssetById();
@@ -178,6 +182,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
178
182
  /**
179
183
  * Updates dropped asset details and assigns the response data to the instance. Requires Public Key to have the `canUpdateDroppedAssets` permission.
180
184
  *
185
+ * @keywords update, modify, change, edit, alter, transform
186
+ *
181
187
  * @example
182
188
  * ```ts
183
189
  * const payload = {
@@ -209,6 +215,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
209
215
  /**
210
216
  * Deletes the dropped asset (removes it from the world).
211
217
  *
218
+ * @keywords remove, delete, erase, destroy, eliminate
219
+ *
212
220
  * @example
213
221
  * ```ts
214
222
  * await droppedAsset.deleteDroppedAsset();
@@ -218,6 +226,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
218
226
  /**
219
227
  * Retrieves the data object for a dropped asset.
220
228
  *
229
+ * @keywords get, fetch, retrieve, load, data, object, state
230
+ *
221
231
  * @category Data Objects
222
232
  *
223
233
  * @example
@@ -234,6 +244,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
234
244
  * @remarks
235
245
  * Optionally, a lock can be provided with this request to ensure only one update happens at a time between all updates that share the same lock id
236
246
  *
247
+ * @keywords set, assign, store, save, data, object, state
248
+ *
237
249
  * @category Data Objects
238
250
  *
239
251
  * @example
@@ -266,6 +278,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
266
278
  * @remarks
267
279
  * Optionally, a lock can be provided with this request to ensure only one update happens at a time between all updates that share the same lock id
268
280
  *
281
+ * @keywords update, modify, change, edit, alter, data, object, state
282
+ *
269
283
  * @category Data Objects
270
284
  *
271
285
  * @example
@@ -295,6 +309,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
295
309
  * @remarks
296
310
  * Optionally, a lock can be provided with this request to ensure only one update happens at a time between all updates that share the same lock id
297
311
  *
312
+ * @keywords increment, increase, add, count, data, object, state
313
+ *
298
314
  * @category Data Objects
299
315
  *
300
316
  * @example
@@ -316,6 +332,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
316
332
  /**
317
333
  * Updates broadcast options for a dropped asset.
318
334
  *
335
+ * @keywords broadcast, dropped asset settings
336
+ *
319
337
  * @example
320
338
  * ```ts
321
339
  * await droppedAsset.updateBroadcast({
@@ -331,6 +349,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
331
349
  /**
332
350
  * Updates click options for a dropped asset.
333
351
  *
352
+ * @keywords click, link, interaction, url, dropped asset settings
353
+ *
334
354
  * @example
335
355
  * ```ts
336
356
  * await droppedAsset.updateClickType({
@@ -353,6 +373,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
353
373
  /**
354
374
  * Adds an array of links to an asset. Maximum is 20 links.
355
375
  *
376
+ * @keywords links, multiple, clickable, urls, hyperlinks, dropped asset settings
377
+ *
356
378
  * @example
357
379
  * ```ts
358
380
  * await droppedAsset.setClickableLinkMulti({
@@ -382,6 +404,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
382
404
  * @remarks
383
405
  * Pass in an 'existingLinkId' to edit an existing link.
384
406
  *
407
+ * @keywords links, multiple, clickable, urls, dropped asset settings
408
+ *
385
409
  * @example
386
410
  * ```ts
387
411
  * await droppedAsset.updateClickableLinkMulti({
@@ -399,6 +423,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
399
423
  /**
400
424
  * Removes a clickable link from a dropped asset.
401
425
  *
426
+ * @keywords remove, delete, link, clickable, url, erase, dropped asset settings
427
+ *
402
428
  * @example
403
429
  * ```ts
404
430
  * await droppedAsset.removeClickableLink({ linkId: "link-id" });
@@ -410,6 +436,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
410
436
  /**
411
437
  * Updates text and style of a dropped asset.
412
438
  *
439
+ * @keywords text, style, dropped asset settings
440
+ *
413
441
  * @example
414
442
  * ```ts
415
443
  * const style = {
@@ -428,6 +456,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
428
456
  /**
429
457
  * Updates media options for a dropped asset.
430
458
  *
459
+ * @keywords media, video, audio, dropped asset settings
460
+ *
431
461
  * @example
432
462
  * ```ts
433
463
  * await droppedAsset.updateMediaType({
@@ -448,6 +478,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
448
478
  /**
449
479
  * Updates mute zone options for a dropped asset.
450
480
  *
481
+ * @keywords mute, zone, dropped asset settings
482
+ *
451
483
  * @example
452
484
  * ```ts
453
485
  * await droppedAsset.updateMuteZone(true);
@@ -459,6 +491,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
459
491
  /**
460
492
  * Updates landmark zone options for a dropped asset.
461
493
  *
494
+ * @keywords landmark, zone, dropped asset settings
495
+ *
462
496
  * @example
463
497
  * ```ts
464
498
  * await droppedAsset.updateLandmarkZone({
@@ -478,6 +512,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
478
512
  /**
479
513
  * Updates webhook zone options for a dropped asset.
480
514
  *
515
+ * @keywords webhook, zone, dropped asset settings
516
+ *
481
517
  * @example
482
518
  * ```ts
483
519
  * await droppedAsset.updateWebhookZone(true);
@@ -489,6 +525,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
489
525
  /**
490
526
  * Moves a dropped asset to specified coordinates.
491
527
  *
528
+ * @keywords position, dropped asset settings
529
+ *
492
530
  * @example
493
531
  * ```ts
494
532
  * await droppedAsset.updatePosition(100, 200, 100);
@@ -500,6 +538,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
500
538
  /**
501
539
  * Updates private zone options for a dropped asset.
502
540
  *
541
+ * @keywords private, zone, dropped asset settings
542
+ *
503
543
  * @example
504
544
  * ```ts
505
545
  * await droppedAsset.updatePrivateZone({
@@ -515,6 +555,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
515
555
  /**
516
556
  * Updates the size of a dropped asset.
517
557
  *
558
+ * @keywords size, scale, dropped asset settings
559
+ *
518
560
  * @example
519
561
  * ```ts
520
562
  * await droppedAsset.assetScale(.5);
@@ -526,6 +568,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
526
568
  /**
527
569
  * Flip an dropped asset.
528
570
  *
571
+ * @keywords flip, layout, dropped asset settings
572
+ *
529
573
  * @example
530
574
  * ```ts
531
575
  * await droppedAsset.flip(.5);
@@ -537,6 +581,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
537
581
  /**
538
582
  * Change or remove media embedded in a dropped asset.
539
583
  *
584
+ * @keywords media, update, dropped asset settings
585
+ *
540
586
  * @example
541
587
  * ```ts
542
588
  * await droppedAsset.updateUploadedMediaSelected("LVWyxwNxI96eLjnXWwYO");
@@ -548,6 +594,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
548
594
  /**
549
595
  * Change or remove top and bottom layers of a dropped asset.
550
596
  *
597
+ * @keywords layers, images, urls, dropped asset settings
598
+ *
551
599
  * @example
552
600
  * ```ts
553
601
  * await droppedAsset.updateWebImageLayers("","https://www.shutterstock.com/image-vector/colorful-illustration-test-word-260nw-1438324490.jpg");
@@ -559,6 +607,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
559
607
  /**
560
608
  * Add a webhook to a dropped asset
561
609
  *
610
+ * @keywords webhook, dropped asset settings
611
+ *
562
612
  * @example
563
613
  * ```ts
564
614
  * await droppedAsset.addWebhook({
@@ -587,6 +637,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
587
637
  /**
588
638
  * Set the interactive settings on a dropped asset
589
639
  *
640
+ * @keywords interactive, dropped asset settings
641
+ *
590
642
  * @example
591
643
  * ```ts
592
644
  * await droppedAsset.setInteractiveSettings({
@@ -602,6 +654,8 @@ declare class DroppedAsset extends Asset implements DroppedAssetInterface {
602
654
  /**
603
655
  * Retrieve analytics for a dropped asset by day, week, month, quarter, or year
604
656
  *
657
+ * @keywords get, fetch, retrieve, load, analytics
658
+ *
605
659
  * @example
606
660
  * ```ts
607
661
  * const analytics = await droppedAsset.fetchDroppedAssetAnalytics({
@@ -647,6 +701,8 @@ declare class World extends SDKController implements WorldInterface {
647
701
  /**
648
702
  * Retrieves details of a world.
649
703
  *
704
+ * @keywords get, fetch, retrieve, details, info, information, world
705
+ *
650
706
  * @example
651
707
  * ```ts
652
708
  * await world.fetchDetails();
@@ -657,6 +713,8 @@ declare class World extends SDKController implements WorldInterface {
657
713
  /**
658
714
  * Update details of a world.
659
715
  *
716
+ * @keywords update, modify, change, edit, world, settings, details
717
+ *
660
718
  * @example
661
719
  * ```ts
662
720
  * await world.updateDetails({
@@ -681,6 +739,8 @@ declare class World extends SDKController implements WorldInterface {
681
739
  /**
682
740
  * Set close world settings
683
741
  *
742
+ * @keywords update, modify, change, edit, world, settings, details, close, closed
743
+ *
684
744
  * @example
685
745
  * ```ts
686
746
  * await world.updateCloseWorldSettings({
@@ -708,6 +768,8 @@ declare class World extends SDKController implements WorldInterface {
708
768
  /**
709
769
  * Retrieve all assets dropped in a world.
710
770
  *
771
+ * @keywords get, fetch, retrieve, list, current, dropped assets
772
+ *
711
773
  * @category Dropped Assets
712
774
  *
713
775
  * @example
@@ -720,6 +782,8 @@ declare class World extends SDKController implements WorldInterface {
720
782
  /**
721
783
  * Retrieve all assets dropped in a world matching uniqueName.
722
784
  *
785
+ * @keywords get, fetch, retrieve, list, current, dropped assets, uniqueName
786
+ *
723
787
  * @category Dropped Assets
724
788
  *
725
789
  * @example
@@ -737,6 +801,8 @@ declare class World extends SDKController implements WorldInterface {
737
801
  /**
738
802
  * Retrieve all assets dropped in a world matching sceneDropId.
739
803
  *
804
+ * @keywords get, fetch, retrieve, list, current, dropped assets, sceneDropId
805
+ *
740
806
  * @category Dropped Assets
741
807
  *
742
808
  * @example
@@ -756,6 +822,8 @@ declare class World extends SDKController implements WorldInterface {
756
822
  /**
757
823
  * Update multiple custom text dropped assets with a single style while preserving text for specified dropped assets only.
758
824
  *
825
+ * @keywords update, modify, change, edit, dropped assets, custom text, style, text
826
+ *
759
827
  * @category Dropped Assets
760
828
  *
761
829
  * @example
@@ -778,6 +846,8 @@ declare class World extends SDKController implements WorldInterface {
778
846
  /**
779
847
  * Retrieve all landmark zone assets dropped in a world.
780
848
  *
849
+ * @keywords get, fetch, retrieve, list, landmark, zones, dropped assets
850
+ *
781
851
  * @category Dropped Assets
782
852
  *
783
853
  * @example
@@ -807,6 +877,8 @@ declare class World extends SDKController implements WorldInterface {
807
877
  /**
808
878
  * Fetch a list of all scene drop ids and dropped assets in a world
809
879
  *
880
+ * @keywords get, fetch, retrieve, list, scenes
881
+ *
810
882
  * @category Scenes
811
883
  *
812
884
  * @example
@@ -837,6 +909,8 @@ declare class World extends SDKController implements WorldInterface {
837
909
  /**
838
910
  * Drops a scene in a world and returns sceneDropId.
839
911
  *
912
+ * @keywords drop, add, place, scene
913
+ *
840
914
  * @category Scenes
841
915
  *
842
916
  * @example
@@ -866,6 +940,8 @@ declare class World extends SDKController implements WorldInterface {
866
940
  /**
867
941
  * Replace the current scene of a world.
868
942
  *
943
+ * @keywords replace, change, scene
944
+ *
869
945
  * @category Scenes
870
946
  *
871
947
  * @example
@@ -887,6 +963,8 @@ declare class World extends SDKController implements WorldInterface {
887
963
  /**
888
964
  * Get all particles available
889
965
  *
966
+ * @keywords get, fetch, retrieve, list, particles
967
+ *
890
968
  * @category Particles
891
969
  *
892
970
  * @example
@@ -900,6 +978,8 @@ declare class World extends SDKController implements WorldInterface {
900
978
  /**
901
979
  * Trigger a particle effect at a position in the world
902
980
  *
981
+ * @keywords trigger, start, play, particle, effect
982
+ *
903
983
  * @category Particles
904
984
  *
905
985
  * @example
@@ -921,6 +1001,8 @@ declare class World extends SDKController implements WorldInterface {
921
1001
  * Add an activity to a world
922
1002
  * excludeFromNotification is an array of visitorIds to exclude from the notification
923
1003
  *
1004
+ * @keywords start, trigger, activity
1005
+ *
924
1006
  * @example
925
1007
  * ```ts
926
1008
  * await world.triggerActivity({ type: "GAME_ON", assetId: "abc123" });
@@ -936,6 +1018,8 @@ declare class World extends SDKController implements WorldInterface {
936
1018
  /**
937
1019
  * Display a message via a toast to all visitors currently in a world.
938
1020
  *
1021
+ * @keywords send, display, show, toast, message, notification
1022
+ *
939
1023
  * @example
940
1024
  * ```ts
941
1025
  * await world.fireToast({
@@ -951,6 +1035,8 @@ declare class World extends SDKController implements WorldInterface {
951
1035
  /**
952
1036
  * Retrieves the data object for a world. Must have valid interactive credentials from a visitor in the world.
953
1037
  *
1038
+ * @keywords get, fetch, retrieve, load, data, object, state
1039
+ *
954
1040
  * @category Data Objects
955
1041
  *
956
1042
  * @example
@@ -966,6 +1052,8 @@ declare class World extends SDKController implements WorldInterface {
966
1052
  * @remarks
967
1053
  * Optionally, a lock can be provided with this request to ensure only one update happens at a time between all updates that share the same lock id
968
1054
  *
1055
+ * @keywords set, assign, store, save, data, object, state
1056
+ *
969
1057
  * @category Data Objects
970
1058
  *
971
1059
  * @example
@@ -997,6 +1085,8 @@ declare class World extends SDKController implements WorldInterface {
997
1085
  * @remarks
998
1086
  * Optionally, a lock can be provided with this request to ensure only one update happens at a time between all updates that share the same lock id
999
1087
  *
1088
+ * @keywords update, modify, change, edit, alter, data, object, state
1089
+ *
1000
1090
  * @category Data Objects
1001
1091
  *
1002
1092
  * @example
@@ -1025,6 +1115,8 @@ declare class World extends SDKController implements WorldInterface {
1025
1115
  * @remarks
1026
1116
  * Optionally, a lock can be provided with this request to ensure only one update happens at a time between all updates that share the same lock id
1027
1117
  *
1118
+ * @keywords increment, increase, add, count, data, object, state
1119
+ *
1028
1120
  * @category Data Objects
1029
1121
  *
1030
1122
  * @example
@@ -1046,6 +1138,8 @@ declare class World extends SDKController implements WorldInterface {
1046
1138
  /**
1047
1139
  * Retrieve all webhooks in a world.
1048
1140
  *
1141
+ * @keywords get, fetch, retrieve, list, current, webhooks
1142
+ *
1049
1143
  * @category Webhooks
1050
1144
  *
1051
1145
  * @example
@@ -1058,6 +1152,8 @@ declare class World extends SDKController implements WorldInterface {
1058
1152
  /**
1059
1153
  * Retrieve world analytics by day, week, month, quarter, or year
1060
1154
  *
1155
+ * @keywords get, fetch, retrieve, analytics, stats, statistics, data, metrics
1156
+ *
1061
1157
  * @category Analytics
1062
1158
  *
1063
1159
  * @example
@@ -1111,6 +1207,8 @@ declare class User extends SDKController implements UserInterface {
1111
1207
  /**
1112
1208
  * Returns all avatars owned by User
1113
1209
  *
1210
+ * @keywords get, fetch, retrieve, list, avatars, characters
1211
+ *
1114
1212
  * @category Avatars
1115
1213
  *
1116
1214
  * @example
@@ -1124,6 +1222,8 @@ declare class User extends SDKController implements UserInterface {
1124
1222
  /**
1125
1223
  * Add a new avatar
1126
1224
  *
1225
+ * @keywords add, create, upload, avatar, character
1226
+ *
1127
1227
  * @category Avatars
1128
1228
  *
1129
1229
  * @example
@@ -1196,6 +1296,8 @@ declare class User extends SDKController implements UserInterface {
1196
1296
  /**
1197
1297
  * Update avatar and sprite sheet records and upload files to existing sprite sheet and avatar storage buckets
1198
1298
  *
1299
+ * @keywords update, modify, change, edit, avatar, character
1300
+ *
1199
1301
  * @category Avatars
1200
1302
  *
1201
1303
  * @example
@@ -1268,6 +1370,8 @@ declare class User extends SDKController implements UserInterface {
1268
1370
  /**
1269
1371
  * Update avatar and sprite sheet records and upload files to existing sprite sheet and avatar storage buckets
1270
1372
  *
1373
+ * @keywords delete, remove, erase, destroy, eliminate, avatar
1374
+ *
1271
1375
  * @category Avatars
1272
1376
  *
1273
1377
  * @example
@@ -1279,6 +1383,8 @@ declare class User extends SDKController implements UserInterface {
1279
1383
  /**
1280
1384
  * Returns all assets owned by User when an email address is provided.
1281
1385
  *
1386
+ * @keywords get, fetch, retrieve, list, user assets, objects
1387
+ *
1282
1388
  * @category Assets
1283
1389
  *
1284
1390
  * @example
@@ -1291,6 +1397,8 @@ declare class User extends SDKController implements UserInterface {
1291
1397
  /**
1292
1398
  * Returns all platform assets.
1293
1399
  *
1400
+ * @keywords get, fetch, retrieve, list, platform assets, objects
1401
+ *
1294
1402
  * @category Assets
1295
1403
  *
1296
1404
  * @example
@@ -1304,6 +1412,8 @@ declare class User extends SDKController implements UserInterface {
1304
1412
  /**
1305
1413
  * Returns all scenes owned by User.
1306
1414
  *
1415
+ * @keywords get, fetch, retrieve, list, user scenes
1416
+ *
1307
1417
  * @category Scenes
1308
1418
  *
1309
1419
  * @example
@@ -1316,6 +1426,8 @@ declare class User extends SDKController implements UserInterface {
1316
1426
  /**
1317
1427
  * Retrieves all worlds owned by user with matching API Key, creates a new World object for each, and creates new map of Worlds accessible via user.worlds.
1318
1428
  *
1429
+ * @keywords get, fetch, retrieve, list, user worlds
1430
+ *
1319
1431
  * @category Worlds
1320
1432
  *
1321
1433
  * @example
@@ -1333,6 +1445,8 @@ declare class User extends SDKController implements UserInterface {
1333
1445
  /**
1334
1446
  * Retrieves all worlds a user with matching API Key is an admin in, creates a new World object for each, and creates new map of Worlds accessible via user.adminWorlds.
1335
1447
  *
1448
+ * @keywords get, fetch, retrieve, list, admin worlds, user worlds
1449
+ *
1336
1450
  * @category Worlds
1337
1451
  *
1338
1452
  * @example
@@ -1345,6 +1459,8 @@ declare class User extends SDKController implements UserInterface {
1345
1459
  /**
1346
1460
  * Retrieves ids of all dropped assets in all worlds with a matching interactivePublicKey.
1347
1461
  *
1462
+ * @keywords get, fetch, retrieve, list, interactive worlds, public key
1463
+ *
1348
1464
  * @category Dropped Assets
1349
1465
  *
1350
1466
  * @example
@@ -1359,6 +1475,8 @@ declare class User extends SDKController implements UserInterface {
1359
1475
  /**
1360
1476
  * Send an email
1361
1477
  *
1478
+ * @keywords send, email, message, notify
1479
+ *
1362
1480
  * @example
1363
1481
  * ```ts
1364
1482
  * const html = `<p><b>Hello World!</b></p><p>This email is being sent from via SDK.</p>`
@@ -1375,6 +1493,8 @@ declare class User extends SDKController implements UserInterface {
1375
1493
  /**
1376
1494
  * Get expressions
1377
1495
  *
1496
+ * @keywords get, fetch, retrieve, list, expressions, emotes
1497
+ *
1378
1498
  * @category Expressions
1379
1499
  *
1380
1500
  * @example
@@ -1391,6 +1511,8 @@ declare class User extends SDKController implements UserInterface {
1391
1511
  /**
1392
1512
  * Retrieves the data object for a user.
1393
1513
  *
1514
+ * @keywords get, fetch, retrieve, load, data, object, state
1515
+ *
1394
1516
  * @category Data Objects
1395
1517
  *
1396
1518
  * @example
@@ -1404,6 +1526,8 @@ declare class User extends SDKController implements UserInterface {
1404
1526
  /**
1405
1527
  * Sets the data object for a user.
1406
1528
  *
1529
+ * @keywords set, assign, store, save, data, object, state
1530
+ *
1407
1531
  * @remarks
1408
1532
  * Optionally, a lock can be provided with this request to ensure only one update happens at a time between all updates that share the same lock id
1409
1533
  *
@@ -1436,6 +1560,8 @@ declare class User extends SDKController implements UserInterface {
1436
1560
  /**
1437
1561
  * Updates the data object for a user.
1438
1562
  *
1563
+ * @keywords update, modify, change, edit, alter, data, object, state
1564
+ *
1439
1565
  * @remarks
1440
1566
  * Optionally, a lock can be provided with this request to ensure only one update happens at a time between all updates that share the same lock id
1441
1567
  *
@@ -1466,6 +1592,8 @@ declare class User extends SDKController implements UserInterface {
1466
1592
  /**
1467
1593
  * Increments a specific value in the data object for a user by the amount specified. Must have valid interactive credentials from a visitor in the world.
1468
1594
  *
1595
+ * @keywords increment, increase, add, count, data, object, state
1596
+ *
1469
1597
  * @remarks
1470
1598
  * Optionally, a lock can be provided with this request to ensure only one update happens at a time between all updates that share the same lock id
1471
1599
  *
@@ -1507,6 +1635,8 @@ declare class Visitor extends User implements VisitorInterface {
1507
1635
  /**
1508
1636
  * Get a single visitor from a world
1509
1637
  *
1638
+ * @keywords get, fetch, retrieve, load, visitor, details
1639
+ *
1510
1640
  * @example
1511
1641
  * ```ts
1512
1642
  * await visitor.fetchVisitor();
@@ -1519,6 +1649,8 @@ declare class Visitor extends User implements VisitorInterface {
1519
1649
  /**
1520
1650
  * Teleport or walk a visitor currently in a world to a single set of coordinates.
1521
1651
  *
1652
+ * @keywords move, teleport, walk, position, coordinate, location, place
1653
+ *
1522
1654
  * @example
1523
1655
  * ```ts
1524
1656
  * await visitor.moveVisitor({
@@ -1535,6 +1667,8 @@ declare class Visitor extends User implements VisitorInterface {
1535
1667
  /**
1536
1668
  * Display a message via a toast to a visitor currently in a world.
1537
1669
  *
1670
+ * @keywords toast, message, notification, alert, display, show, popup
1671
+ *
1538
1672
  * @example
1539
1673
  * ```ts
1540
1674
  * await visitor.fireToast({
@@ -1550,6 +1684,8 @@ declare class Visitor extends User implements VisitorInterface {
1550
1684
  /**
1551
1685
  * Open an iframe in a drawer or modal for a visitor currently in a world.
1552
1686
  *
1687
+ * @keywords open, iframe, drawer, modal, link, url, website, web page
1688
+ *
1553
1689
  * @category iframes
1554
1690
  *
1555
1691
  * @example
@@ -1568,6 +1704,8 @@ declare class Visitor extends User implements VisitorInterface {
1568
1704
  /**
1569
1705
  * Reload an iframe for a visitor currently in a world.
1570
1706
  *
1707
+ * @keywords reload, iframe, drawer, modal, link, url, website, web page
1708
+ *
1571
1709
  * @category iframes
1572
1710
  *
1573
1711
  * @example
@@ -1581,6 +1719,8 @@ declare class Visitor extends User implements VisitorInterface {
1581
1719
  /**
1582
1720
  * Close an iframe for a visitor currently in a world.
1583
1721
  *
1722
+ * @keywords close, iframe, drawer, modal
1723
+ *
1584
1724
  * @category iframes
1585
1725
  *
1586
1726
  * @example
@@ -1594,6 +1734,8 @@ declare class Visitor extends User implements VisitorInterface {
1594
1734
  /**
1595
1735
  * Mute and turn video off for a visitor currently in a world.
1596
1736
  *
1737
+ * @keywords mute, video, av, turn off, disable
1738
+ *
1597
1739
  * @example
1598
1740
  * ```ts
1599
1741
  * await visitor.turnAVOff();
@@ -1605,6 +1747,8 @@ declare class Visitor extends User implements VisitorInterface {
1605
1747
  /**
1606
1748
  * Get expressions
1607
1749
  *
1750
+ * @keywords get, fetch, retrieve, list, expressions, emotes
1751
+ *
1608
1752
  * @category Expressions
1609
1753
  *
1610
1754
  * @example
@@ -1620,6 +1764,8 @@ declare class Visitor extends User implements VisitorInterface {
1620
1764
  /**
1621
1765
  * Grant expression to a visitor by id or name.
1622
1766
  *
1767
+ * @keywords grant, give, add, expression, emote
1768
+ *
1623
1769
  * @category Expressions
1624
1770
  *
1625
1771
  * @example
@@ -1637,6 +1783,8 @@ declare class Visitor extends User implements VisitorInterface {
1637
1783
  /**
1638
1784
  * Get all particles available
1639
1785
  *
1786
+ * @keywords get, fetch, retrieve, list, particles, effects
1787
+ *
1640
1788
  * @category Particle Effects
1641
1789
  *
1642
1790
  * @example
@@ -1650,6 +1798,8 @@ declare class Visitor extends User implements VisitorInterface {
1650
1798
  /**
1651
1799
  * Trigger a particle effect on a visitor
1652
1800
  *
1801
+ * @keywords trigger, particle, effect, spawn, start, play
1802
+ *
1653
1803
  * @category Particle Effects
1654
1804
  *
1655
1805
  * @example
@@ -1667,6 +1817,8 @@ declare class Visitor extends User implements VisitorInterface {
1667
1817
  /**
1668
1818
  * Retrieves the data object for a visitor.
1669
1819
  *
1820
+ * @keywords get, fetch, retrieve, load, data, object, state
1821
+ *
1670
1822
  * @category Data Objects
1671
1823
  *
1672
1824
  * @example
@@ -1680,6 +1832,8 @@ declare class Visitor extends User implements VisitorInterface {
1680
1832
  /**
1681
1833
  * Sets the data object for a visitor.
1682
1834
  *
1835
+ * @keywords set, assign, store, save, data, object, state
1836
+ *
1683
1837
  * @remarks
1684
1838
  * Optionally, a lock can be provided with this request to ensure only one update happens at a time between all updates that share the same lock id
1685
1839
  *
@@ -1715,6 +1869,8 @@ declare class Visitor extends User implements VisitorInterface {
1715
1869
  * @remarks
1716
1870
  * Optionally, a lock can be provided with this request to ensure only one update happens at a time between all updates that share the same lock id
1717
1871
  *
1872
+ * @keywords update, modify, change, edit, alter, data, object, state
1873
+ *
1718
1874
  * @category Data Objects
1719
1875
  *
1720
1876
  * @example
@@ -1745,6 +1901,8 @@ declare class Visitor extends User implements VisitorInterface {
1745
1901
  * @remarks
1746
1902
  * Optionally, a lock can be provided with this request to ensure only one update happens at a time between all updates that share the same lock id
1747
1903
  *
1904
+ * @keywords increment, increase, add, count, data, object, state
1905
+ *
1748
1906
  * @category Data Objects
1749
1907
  *
1750
1908
  * @example
@@ -1766,6 +1924,8 @@ declare class Visitor extends User implements VisitorInterface {
1766
1924
  /**
1767
1925
  * Update analytics for a given public key. Must have valid interactive credentials from a visitor in the world.
1768
1926
  *
1927
+ * @keywords update, modify, change, edit, analytics, analytic, stats, statistics, data
1928
+ *
1769
1929
  * @example
1770
1930
  * ```ts
1771
1931
  * await visitor.updatePublicKeyAnalytics([{ analyticName: "joins", profileId, uniqueKey: profileId, urlSlug }]);
@@ -1775,6 +1935,8 @@ declare class Visitor extends User implements VisitorInterface {
1775
1935
  /**
1776
1936
  * Setup signal to visitor
1777
1937
  *
1938
+ * @keywords signal, webrtc, answer, connect, p2p
1939
+ *
1778
1940
  * @example
1779
1941
  * ```ts
1780
1942
  * await visitor.sendSignalToVisitor(iceServers);
@@ -2444,6 +2606,8 @@ declare class Asset extends SDKController implements AssetInterface {
2444
2606
  /**
2445
2607
  * Retrieves platform asset details and assigns response data to the instance.
2446
2608
  *
2609
+ * @keywords get, fetch, retrieve, load, details, info, information
2610
+ *
2447
2611
  * @example
2448
2612
  * ```ts
2449
2613
  * await asset.fetchAssetById();
@@ -2456,6 +2620,8 @@ declare class Asset extends SDKController implements AssetInterface {
2456
2620
  /**
2457
2621
  * Updates platform asset details.
2458
2622
  *
2623
+ * @keywords update, modify, change, edit, alter, transform
2624
+ *
2459
2625
  * @example
2460
2626
  * ```ts
2461
2627
  * await asset.updateAsset({
@@ -2499,6 +2665,8 @@ declare class Ecosystem extends SDKController {
2499
2665
  /**
2500
2666
  * Retrieves the data object for a Topia ecosystem. Requires canUpdateEcosystemDataObjects permission to be set to true for the public key.
2501
2667
  *
2668
+ * @keywords get, fetch, retrieve, load, data, object, state
2669
+ *
2502
2670
  * @category Data Objects
2503
2671
  *
2504
2672
  * @example
@@ -2517,6 +2685,8 @@ declare class Ecosystem extends SDKController {
2517
2685
  *
2518
2686
  * Optionally, a lock can be provided with this request to ensure only one update happens at a time between all updates that share the same lock id
2519
2687
  *
2688
+ * @keywords set, assign, store, save, data, object, state
2689
+ *
2520
2690
  * @category Data Objects
2521
2691
  *
2522
2692
  * @example
@@ -2547,6 +2717,8 @@ declare class Ecosystem extends SDKController {
2547
2717
  *
2548
2718
  * Optionally, a lock can be provided with this request to ensure only one update happens at a time between all updates that share the same lock id
2549
2719
  *
2720
+ * @keywords update, modify, change, edit, alter, data, object, state
2721
+ *
2550
2722
  * @category Data Objects
2551
2723
  *
2552
2724
  * @example
@@ -2583,6 +2755,8 @@ declare class Ecosystem extends SDKController {
2583
2755
  *
2584
2756
  * Optionally, a lock can be provided with this request to ensure only one update happens at a time between all updates that share the same lock id
2585
2757
  *
2758
+ * @keywords increment, increase, add, count, data, object, state
2759
+ *
2586
2760
  * @category Data Objects
2587
2761
  *
2588
2762
  * @example
@@ -2658,6 +2832,8 @@ declare class WorldActivity extends SDKController {
2658
2832
  /**
2659
2833
  * Retrieve all visitors currently in a world.
2660
2834
  *
2835
+ * @keywords get, fetch, retrieve, list, current, visitors, users, players
2836
+ *
2661
2837
  * @category Visitors
2662
2838
  *
2663
2839
  * @example
@@ -2673,6 +2849,8 @@ declare class WorldActivity extends SDKController {
2673
2849
  /**
2674
2850
  * Retrieve all visitors currently in a Landmark Zone.
2675
2851
  *
2852
+ * @keywords get, fetch, retrieve, list, zone, area, landmark, visitors, users
2853
+ *
2676
2854
  * @category Visitors
2677
2855
  *
2678
2856
  * @example
@@ -2695,6 +2873,8 @@ declare class WorldActivity extends SDKController {
2695
2873
  * Optionally refetch visitors, teleport or walk visitors to new location,
2696
2874
  * and scatter visitors by any number so that they don't all move to the exact same location.
2697
2875
  *
2876
+ * @keywords move, teleport, position, coordinate, visitors, users, relocate
2877
+ *
2698
2878
  * @category Visitors
2699
2879
  *
2700
2880
  * @example
@@ -2715,6 +2895,8 @@ declare class WorldActivity extends SDKController {
2715
2895
  /**
2716
2896
  * Teleport or walk a list of visitors currently in a world to various coordinates.
2717
2897
  *
2898
+ * @keywords move, teleport, position, coordinate, visitor, user, relocate
2899
+ *
2718
2900
  * @category Visitors
2719
2901
  *
2720
2902
  * @example
@@ -2742,109 +2924,270 @@ declare class WorldActivity extends SDKController {
2742
2924
  }
2743
2925
 
2744
2926
  /**
2927
+ * Factory for creating Asset instances. Use this factory to create or upload assets in the Topia platform.
2928
+ *
2929
+ * @remarks
2930
+ * This factory should be instantiated once per application and reused across your codebase.
2931
+ *
2932
+ * @keywords asset, factory, create, upload, instantiate, topia
2933
+ *
2745
2934
  * @example
2746
2935
  * ```ts
2747
- * const Asset = new AssetFactory(myTopiaInstance);
2936
+ * // In your initialization file (e.g., utils/topiaInit.ts)
2937
+ * import { Topia, AssetFactory } from "@rtsdk/topia";
2938
+ * const topia = new Topia({ config });
2939
+ * export const Asset = new AssetFactory(topia);
2748
2940
  * ```
2749
2941
  */
2750
2942
  declare class AssetFactory extends SDKController {
2751
2943
  constructor(topia: Topia);
2752
2944
  /**
2753
- * Instantiate a new instance of Asset class.
2945
+ * Instantiate a new instance of Asset class with the specified asset ID.
2946
+ *
2947
+ * @remarks
2948
+ * This method creates a new Asset controller instance that can be used to interact with an existing asset.
2949
+ * It does not create a new asset in the database.
2950
+ *
2951
+ * @keywords create, instantiate, asset, initialize, get, instance
2754
2952
  *
2755
2953
  * @example
2756
- * ```
2757
- * const assetInstance = await Asset.create(id, { credentials: { interactiveNonce, interactivePublicKey, assetId, urlSlug, visitorId } });
2954
+ * ```ts
2955
+ * // Import the pre-initialized factory from your app's initialization file
2956
+ * import { Asset } from "utils/topiaInit.ts";
2957
+ *
2958
+ * // Create an Asset instance with credentials
2959
+ * const assetInstance = await Asset.create(assetId, {
2960
+ * credentials: {
2961
+ * interactiveNonce,
2962
+ * interactivePublicKey,
2963
+ * assetId,
2964
+ * urlSlug,
2965
+ * visitorId
2966
+ * }
2967
+ * });
2968
+ *
2969
+ * // Use the instance to interact with the asset
2970
+ * await assetInstance.fetchAssetById();
2758
2971
  * ```
2759
2972
  *
2760
2973
  * @returns {Asset} Returns a new Asset object with the asset id.
2761
2974
  */
2762
2975
  create(id: string, options?: AssetOptionalInterface): Asset;
2763
2976
  /**
2764
- * Upload a new Asset and return a new instance of Asset class.
2977
+ * Upload a new Asset to the Topia platform and return a new instance of Asset class.
2978
+ *
2979
+ * @remarks
2980
+ * This method both creates a new asset in the database and returns an Asset controller instance.
2981
+ * A valid API key with appropriate permissions is required.
2982
+ *
2983
+ * @keywords upload, create, new, asset, add, store
2765
2984
  *
2766
2985
  * @example
2767
- * ```
2986
+ * ```ts
2987
+ * // Import the pre-initialized factory from your app's initialization file
2988
+ * import { Asset } from "utils/topiaInit.ts";
2989
+ *
2990
+ * // Prepare the asset payload
2768
2991
  * const assetPayload = {
2769
- * assetName: "exampleAssetName"
2770
- * bottomLayerURL: "https://example.bottomLayerURL"
2992
+ * assetName: "My Decorative Asset",
2993
+ * bottomLayerURL: "https://example.com/bottom-layer.png",
2771
2994
  * creatorTags: { "decorations": true },
2772
2995
  * tagJson: "[{"label":"decorations","value":"decorations"}]",
2773
2996
  * isPublic: true,
2774
- * topLayerURL: "https://example.topLayerURL"
2775
- * }
2997
+ * topLayerURL: "https://example.com/top-layer.png"
2998
+ * };
2999
+ *
3000
+ * // Upload the asset using your API key
2776
3001
  * const asset = await Asset.upload(assetPayload, apiKey);
3002
+ *
3003
+ * // Access the new asset's properties
3004
+ * console.log(asset.id);
2777
3005
  * ```
2778
3006
  *
2779
- * @returns {AssetType} Returns a new Asset object with the asset details.
3007
+ * @returns {Asset} Returns a new Asset object with the asset details.
2780
3008
  */
2781
3009
  upload(assetPayload: AssetType, apiKey: string): Promise<Asset>;
2782
3010
  }
2783
3011
 
2784
3012
  /**
3013
+ * Factory for creating and retrieving DroppedAsset instances. Use this factory to work with assets that have been placed in a Topia world.
3014
+ *
3015
+ * @remarks
3016
+ * This factory should be instantiated once per application and reused across your codebase.
3017
+ *
3018
+ * @keywords dropped asset, factory, create, get, retrieve, instantiate, topia
3019
+ *
2785
3020
  * @example
2786
3021
  * ```ts
2787
- * const DroppedAsset = new DroppedAssetFactory(myTopiaInstance);
3022
+ * // In your initialization file (e.g., utils/topiaInit.ts)
3023
+ * import { Topia, DroppedAssetFactory } from "@rtsdk/topia";
3024
+ * const topia = new Topia({ config });
3025
+ * export const DroppedAsset = new DroppedAssetFactory(topia);
2788
3026
  * ```
2789
3027
  */
2790
3028
  declare class DroppedAssetFactory extends SDKController {
2791
3029
  constructor(topia: Topia);
2792
3030
  /**
2793
- * Instantiate a new instance of DroppedAsset class.
3031
+ * Instantiate a new instance of DroppedAsset class for an existing dropped asset in a world.
3032
+ *
3033
+ * @remarks
3034
+ * This method creates a controller instance for an existing dropped asset but does not fetch its properties.
3035
+ * Use this when you need a lightweight instance and will fetch properties separately if needed or when you already have the properties.
3036
+ *
3037
+ * @keywords create, instantiate, dropped asset, initialize, instance
2794
3038
  *
2795
3039
  * @example
2796
- * ```
2797
- * const droppedAssetInstance = await DroppedAsset.create(assetId, urlSlug, { credentials: { interactiveNonce, interactivePublicKey, assetId, urlSlug, visitorId } });
3040
+ * ```ts
3041
+ * // Import the pre-initialized factory from your app's initialization file
3042
+ * import { DroppedAsset } from "utils/topiaInit.ts";
3043
+ *
3044
+ * // Create a DroppedAsset instance with credentials
3045
+ * const droppedAssetInstance = DroppedAsset.create(
3046
+ * assetId,
3047
+ * urlSlug,
3048
+ * {
3049
+ * credentials: {
3050
+ * interactiveNonce,
3051
+ * interactivePublicKey,
3052
+ * assetId,
3053
+ * urlSlug,
3054
+ * visitorId
3055
+ * }
3056
+ * }
3057
+ * );
3058
+ *
3059
+ * // Later fetch its properties if needed
3060
+ * await droppedAssetInstance.fetchDroppedAssetById();
2798
3061
  * ```
2799
3062
  *
2800
- * @returns {DroppedAsset} Returns a new DroppedAsset object.
3063
+ * @returns {DroppedAsset} Returns a new DroppedAsset object without fetching its properties.
2801
3064
  */
2802
3065
  create(id: string, urlSlug: string, options?: DroppedAssetOptionalInterface): DroppedAsset;
2803
3066
  /**
2804
- * Instantiate a new instance of DroppedAsset class and retrieve all properties.
3067
+ * Instantiate a new instance of DroppedAsset class and automatically fetch all its properties.
3068
+ *
3069
+ * @remarks
3070
+ * This method creates a controller instance and immediately fetches all properties of the dropped asset.
3071
+ * It's a convenience method that combines creating an instance and calling fetchDroppedAssetById().
3072
+ *
3073
+ * @keywords get, fetch, retrieve, dropped asset, load, instance
2805
3074
  *
2806
3075
  * @example
2807
- * ```
2808
- * const droppedAssetInstance = await DroppedAsset.get(assetId, urlSlug, { credentials: { interactiveNonce, interactivePublicKey, assetId, urlSlug, visitorId } });
3076
+ * ```ts
3077
+ * // Import the pre-initialized factory from your app's initialization file
3078
+ * import { DroppedAsset } from "utils/topiaInit.ts";
3079
+ *
3080
+ * // Get a fully populated DroppedAsset instance
3081
+ * const droppedAssetInstance = await DroppedAsset.get(
3082
+ * assetId,
3083
+ * urlSlug,
3084
+ * {
3085
+ * credentials: {
3086
+ * interactiveNonce,
3087
+ * interactivePublicKey,
3088
+ * assetId,
3089
+ * urlSlug,
3090
+ * visitorId
3091
+ * }
3092
+ * }
3093
+ * );
3094
+ *
3095
+ * // The properties are already loaded, so you can use them immediately
3096
+ * console.log(droppedAssetInstance.position);
2809
3097
  * ```
2810
3098
  *
2811
- * @returns {Promise<DroppedAsset>} Returns a new DroppedAsset object with all properties.
3099
+ * @returns {Promise<DroppedAsset>} Returns a new DroppedAsset object with all properties already fetched.
2812
3100
  */
2813
3101
  get(id: string, urlSlug: string, options?: DroppedAssetOptionalInterface): Promise<DroppedAsset>;
2814
3102
  /**
2815
- * Searches dropped assets within a world by a provide `uniqueName`. If a single match is found, a new instance of DroppedAsset class is returned all properties.
3103
+ * Searches for and retrieves a dropped asset by its unique name within a world.
2816
3104
  *
2817
3105
  * @remarks
2818
- * This method leverages the handleGetDroppedAssetByUniqueName endpoint in the Public API and assumes there is exactly one dropped asset with matching uniqueName for the given urlSlug.
3106
+ * This method leverages the handleGetDroppedAssetByUniqueName endpoint in the Public API and assumes there is exactly one dropped asset with the matching uniqueName for the given urlSlug.
3107
+ * Use this when you need to find a dropped asset by its uniqueName rather than its ID.
3108
+ *
3109
+ * @keywords find, search, unique name, retrieve, locate, lookup, dropped asset
2819
3110
  *
2820
3111
  * @example
2821
- * ```
2822
- * const droppedAssetInstance = await DroppedAsset.getWithUniqueName("exampleUniqueName", urlSlug, interactiveSecret, credentials);
3112
+ * ```ts
3113
+ * // Import the pre-initialized factory from your app's initialization file
3114
+ * import { DroppedAsset } from "utils/topiaInit.ts";
3115
+ *
3116
+ * // Find and retrieve a dropped asset by its unique name
3117
+ * const droppedAssetInstance = await DroppedAsset.getWithUniqueName(
3118
+ * "banner-sign-northeast",
3119
+ * "my-world-slug",
3120
+ * "your-interactive-secret",
3121
+ * {
3122
+ * apiKey: "your-api-key",
3123
+ * interactivePublicKey: "your-public-key",
3124
+ * // other credentials...
3125
+ * }
3126
+ * );
3127
+ *
3128
+ * // The properties are already loaded, so you can use them immediately
3129
+ * console.log(droppedAssetInstance.position);
2823
3130
  * ```
2824
3131
  *
2825
- * @returns {Promise<DroppedAsset>} Returns a new DroppedAsset object with all properties.
3132
+ * @returns {Promise<DroppedAsset>} Returns a new DroppedAsset object with all properties already fetched.
2826
3133
  */
2827
3134
  getWithUniqueName(uniqueName: string, urlSlug: string, interactiveSecret: string, credentials: InteractiveCredentials): Promise<DroppedAsset>;
2828
3135
  /**
2829
3136
  * Drops an asset in a world and returns a new instance of DroppedAsset class with all properties.
2830
3137
  *
3138
+ * @remarks
3139
+ * This method places an existing Asset into a world at specified coordinates, effectively "dropping" it into the environment.
3140
+ * You can customize various properties of the dropped asset during placement, such as scale, position, interactive settings, and visual layers.
3141
+ *
3142
+ * @keywords drop, place, add, create, position, asset, deploy
3143
+ *
2831
3144
  * @example
2832
- * ```
2833
- * const assetInstance = await Asset.create(id, { credentials: { interactiveNonce, interactivePublicKey, assetId, urlSlug, visitorId } });
2834
- * const droppedAssetInstance = await DroppedAsset.get(assetInstance, {
2835
- assetScale: 1.5,
2836
- flipped: true,
2837
- layer0: "",
2838
- layer1: "https://pathtoimage.png",
2839
- interactivePublicKey,
2840
- isInteractive: true,
2841
- position: { x: 0, y: 0 },
2842
- uniqueName: "exampleUniqueName",
2843
- urlSlug,
2844
- });
3145
+ * ```ts
3146
+ * // Import the pre-initialized factories from your app's initialization file
3147
+ * import { Asset, DroppedAsset } from "utils/topiaInit.ts";
3148
+ *
3149
+ * // First get an asset instance
3150
+ * const assetInstance = Asset.create("asset-id-123", {
3151
+ * credentials: {
3152
+ * interactiveNonce,
3153
+ * interactivePublicKey,
3154
+ * assetId,
3155
+ * urlSlug,
3156
+ * visitorId
3157
+ * }
3158
+ * });
3159
+ *
3160
+ * // Then drop (place) the asset in a world
3161
+ * const droppedAssetInstance = await DroppedAsset.drop(
3162
+ * assetInstance,
3163
+ * {
3164
+ * // Basic positioning and appearance
3165
+ * position: { x: 250, y: 350 },
3166
+ * assetScale: 1.5,
3167
+ * flipped: true,
3168
+ * uniqueName: "welcome-sign",
3169
+ * urlSlug: "my-world-slug",
3170
+ *
3171
+ * // For web images (optional)
3172
+ * layer0: "https://example.com/background.png",
3173
+ * layer1: "https://example.com/foreground.png",
3174
+ *
3175
+ * // For interactive assets (optional)
3176
+ * interactivePublicKey: "your-public-key",
3177
+ * isInteractive: true,
3178
+ *
3179
+ * // For clickable assets (optional)
3180
+ * clickType: "link",
3181
+ * clickableLink: "https://example.com",
3182
+ * clickableLinkTitle: "Visit Example"
3183
+ * }
3184
+ * );
3185
+ *
3186
+ * // The dropped asset is ready to use
3187
+ * console.log(droppedAssetInstance.id);
2845
3188
  * ```
2846
3189
  *
2847
- * @returns {Promise<DroppedAsset>} Returns a new DroppedAsset object with all properties.
3190
+ * @returns {Promise<DroppedAsset>} Returns a new DroppedAsset object representing the placed asset in the world.
2848
3191
  */
2849
3192
  drop(asset: Asset, { assetScale, clickType, clickableDisplayTextDescription, clickableDisplayTextHeadline, clickableLink, clickableLinkTitle, flipped, interactivePublicKey, isInteractive, isForceLinkInIframe, isOpenLinkInDrawer, isTextTopLayer, layer0, layer1, position: { x, y }, sceneDropId, text, textColor, textFontFamily, textSize, textWeight, textWidth, uniqueName, urlSlug, yOrderAdjust, }: {
2850
3193
  assetScale?: number;
@@ -2879,45 +3222,113 @@ declare class DroppedAssetFactory extends SDKController {
2879
3222
  }
2880
3223
 
2881
3224
  /**
3225
+ * Factory for creating Ecosystem instances. Use this factory to work with ecosystem-wide data and operations.
3226
+ *
3227
+ * @remarks
3228
+ * This factory should be instantiated once per application and reused across your codebase.
3229
+ * The Ecosystem controller provides methods to interact with data shared across multiple worlds.
3230
+ *
3231
+ * @keywords ecosystem, factory, create, multi-world, global, shared data, platform
3232
+ *
2882
3233
  * @example
2883
3234
  * ```ts
2884
- * const Ecosystem = new EcosystemFactory(myTopiaInstance);
3235
+ * // In your initialization file (e.g., utils/topiaInit.ts)
3236
+ * import { Topia, EcosystemFactory } from "@rtsdk/topia";
3237
+ * const topia = new Topia({ config });
3238
+ * export const Ecosystem = new EcosystemFactory(topia);
2885
3239
  * ```
2886
3240
  */
2887
3241
  declare class EcosystemFactory {
2888
3242
  topia: Topia;
2889
3243
  constructor(topia: Topia);
2890
3244
  /**
2891
- * Instantiate a new instance of Ecosystem class.
3245
+ * Instantiate a new instance of Ecosystem class for interacting with ecosystem-wide data.
3246
+ *
3247
+ * @remarks
3248
+ * This method creates a controller instance for accessing and managing data that spans multiple worlds.
3249
+ * Use this for cross-world data sharing, global data objects, and ecosystem-wide operations.
3250
+ *
3251
+ * @keywords create, instantiate, ecosystem, initialize, global, shared data, platform
2892
3252
  *
2893
3253
  * @example
2894
- * ```
2895
- * const ecosystemInstance = await Ecosystem.create({ credentials: { interactiveNonce, interactivePublicKey, assetId, urlSlug, visitorId }});
3254
+ * ```ts
3255
+ * // Import the pre-initialized factory from your app's initialization file
3256
+ * import { Ecosystem } from "utils/topiaInit.ts";
3257
+ *
3258
+ * // Create an Ecosystem instance with credentials
3259
+ * const ecosystemInstance = Ecosystem.create({
3260
+ * credentials: {
3261
+ * interactiveNonce,
3262
+ * interactivePublicKey,
3263
+ * assetId,
3264
+ * urlSlug,
3265
+ * visitorId
3266
+ * }
3267
+ * });
3268
+ *
3269
+ * // Work with ecosystem-wide data objects
3270
+ * await ecosystemInstance.fetchDataObject("global-leaderboard");
3271
+ * await ecosystemInstance.setDataObject("global-leaderboard", { scores: [...] });
2896
3272
  * ```
2897
3273
  *
2898
- * @returns {Ecosystem} Returns a new Ecosystem object.
3274
+ * @returns {Ecosystem} Returns a new Ecosystem object for interacting with ecosystem-wide data.
2899
3275
  */
2900
3276
  create(options?: EcosystemOptionalInterface): Ecosystem;
2901
3277
  }
2902
3278
 
2903
3279
  /**
3280
+ * Factory for creating Scene instances. Use this factory to work with scenes in the Topia platform.
3281
+ *
3282
+ * @remarks
3283
+ * This factory should be instantiated once per application and reused across your codebase.
3284
+ * Scenes represent the template or blueprint for a world's design and layout.
3285
+ *
3286
+ * @keywords scene, factory, create, template, blueprint, layout, design
3287
+ *
2904
3288
  * @example
2905
3289
  * ```ts
2906
- * const Scene = new SceneFactory(myTopiaInstance);
3290
+ * // In your initialization file (e.g., utils/topiaInit.ts)
3291
+ * import { Topia, SceneFactory } from "@rtsdk/topia";
3292
+ * const topia = new Topia({ config });
3293
+ * export const Scene = new SceneFactory(topia);
2907
3294
  * ```
2908
3295
  */
2909
3296
  declare class SceneFactory {
2910
3297
  topia: Topia;
2911
3298
  constructor(topia: Topia);
2912
3299
  /**
2913
- * Instantiate a new instance of Scene class.
3300
+ * Instantiate a new instance of Scene class for an existing scene in the platform.
3301
+ *
3302
+ * @remarks
3303
+ * This method creates a controller instance for working with a scene but does not fetch its properties.
3304
+ * Use this when you need to interact with a specific scene by its ID.
3305
+ *
3306
+ * @keywords create, instantiate, scene, initialize, instance, template
2914
3307
  *
2915
3308
  * @example
2916
- * ```
2917
- * const sceneInstance = await Scene.create(id, { credentials: { interactiveNonce, interactivePublicKey, assetId, urlSlug, visitorId } });
3309
+ * ```ts
3310
+ * // Import the pre-initialized factory from your app's initialization file
3311
+ * import { Scene } from "utils/topiaInit.ts";
3312
+ *
3313
+ * // Create a Scene instance with credentials
3314
+ * const sceneInstance = Scene.create(
3315
+ * "scene-id-123",
3316
+ * {
3317
+ * credentials: {
3318
+ * interactiveNonce,
3319
+ * interactivePublicKey,
3320
+ * assetId,
3321
+ * urlSlug,
3322
+ * visitorId
3323
+ * }
3324
+ * }
3325
+ * );
3326
+ *
3327
+ * // Fetch scene details if needed
3328
+ * await sceneInstance.fetchSceneById();
2918
3329
  * ```
2919
3330
  *
2920
- * @returns {Scene} Returns a new Scene object.
3331
+ * @returns {Scene} Returns a new Scene object for interacting with the specified scene.
2921
3332
  */
2922
3333
  create(id: string, options?: SceneOptionalInterface): Scene;
2923
3334
  /**
@@ -2934,132 +3345,363 @@ declare class SceneFactory {
2934
3345
  }
2935
3346
 
2936
3347
  /**
3348
+ * Factory for creating User instances. Use this factory to work with user data in the Topia platform.
3349
+ *
3350
+ * @remarks
3351
+ * This factory should be instantiated once per application and reused across your codebase.
3352
+ * The User controller allows you to interact with user-specific information and operations.
3353
+ *
3354
+ * @keywords user, factory, create, account, profile, member, visitor
3355
+ *
2937
3356
  * @example
2938
3357
  * ```ts
2939
- * const User = new UserFactory(myTopiaInstance);
3358
+ * // In your initialization file (e.g., utils/topiaInit.ts)
3359
+ * import { Topia, UserFactory } from "@rtsdk/topia";
3360
+ * const topia = new Topia({ config });
3361
+ * export const User = new UserFactory(topia);
2940
3362
  * ```
2941
3363
  */
2942
3364
  declare class UserFactory {
2943
3365
  topia: Topia;
2944
3366
  constructor(topia: Topia);
2945
3367
  /**
2946
- * Instantiate a new instance of User class.
3368
+ * Instantiate a new instance of User class for working with user data.
3369
+ *
3370
+ * @remarks
3371
+ * This method creates a controller instance for interacting with user-specific operations.
3372
+ * The User controller doesn't require an ID since it represents the currently authenticated user.
3373
+ *
3374
+ * @keywords create, instantiate, user, initialize, account, profile, member
2947
3375
  *
2948
3376
  * @example
2949
- * ```
2950
- * const userInstance = await User.create({ credentials: { interactiveNonce, interactivePublicKey, assetId, urlSlug, visitorId } });
3377
+ * ```ts
3378
+ * // Import the pre-initialized factory from your app's initialization file
3379
+ * import { User } from "utils/topiaInit.ts";
3380
+ *
3381
+ * // Create a User instance with credentials
3382
+ * const userInstance = User.create({
3383
+ * credentials: {
3384
+ * interactiveNonce,
3385
+ * interactivePublicKey,
3386
+ * assetId,
3387
+ * urlSlug,
3388
+ * visitorId
3389
+ * }
3390
+ * });
3391
+ *
3392
+ * // Use methods on the user instance
3393
+ * await userInstance.checkInteractiveCredentials();
3394
+ * const avatars = await userInstance.fetchAvatars();
2951
3395
  * ```
2952
3396
  *
2953
- * @returns {User} Returns a new User object.
3397
+ * @returns {User} Returns a new User object for interacting with user data.
2954
3398
  */
2955
3399
  create(options?: UserOptionalInterface): User;
2956
3400
  }
2957
3401
 
2958
3402
  /**
3403
+ * Factory for creating Visitor instances. Use this factory to work with visitors in Topia worlds.
3404
+ *
3405
+ * @remarks
3406
+ * This factory should be instantiated once per application and reused across your codebase.
3407
+ * The Visitor controller represents a specific visitor/avatar instance in a world.
3408
+ *
3409
+ * @keywords visitor, factory, create, get, avatar, user, participant
3410
+ *
2959
3411
  * @example
2960
3412
  * ```ts
2961
- * const Visitor = new VisitorFactory(myTopiaInstance);
3413
+ * // In your initialization file (e.g., utils/topiaInit.ts)
3414
+ * import { Topia, VisitorFactory } from "@rtsdk/topia";
3415
+ * const topia = new Topia({ config });
3416
+ * export const Visitor = new VisitorFactory(topia);
2962
3417
  * ```
2963
3418
  */
2964
3419
  declare class VisitorFactory {
2965
3420
  topia: Topia;
2966
3421
  constructor(topia: Topia);
2967
3422
  /**
2968
- * Instantiate a new instance of Visitor class.
3423
+ * Instantiate a new instance of Visitor class for an existing visitor in a world.
3424
+ *
3425
+ * @remarks
3426
+ * This method creates a controller instance for a visitor but does not fetch its properties.
3427
+ * Use this when you need a lightweight instance and will fetch properties separately or when you already have the properties.
3428
+ *
3429
+ * @keywords create, instantiate, visitor, initialize, avatar, instance
2969
3430
  *
2970
3431
  * @example
2971
- * ```
2972
- * const visitorInstance = await Visitor.create(id, urlSlug, { credentials: { interactiveNonce, interactivePublicKey, assetId, urlSlug, visitorId } });
3432
+ * ```ts
3433
+ * // Import the pre-initialized factory from your app's initialization file
3434
+ * import { Visitor } from "utils/topiaInit.ts";
3435
+ *
3436
+ * // Create a Visitor instance with credentials
3437
+ * const visitorInstance = Visitor.create(
3438
+ * 12345, // visitor ID
3439
+ * "my-world-slug",
3440
+ * {
3441
+ * credentials: {
3442
+ * interactiveNonce,
3443
+ * interactivePublicKey,
3444
+ * assetId,
3445
+ * urlSlug,
3446
+ * visitorId
3447
+ * }
3448
+ * }
3449
+ * );
3450
+ *
3451
+ * // Later fetch visitor properties if needed
3452
+ * await visitorInstance.fetchVisitor();
2973
3453
  * ```
2974
3454
  *
2975
- * @returns {Visitor} Returns a new Visitor object.
3455
+ * @returns {Visitor} Returns a new Visitor object without fetching its properties.
2976
3456
  */
2977
3457
  create(id: number, urlSlug: string, options?: VisitorOptionalInterface): Visitor;
2978
3458
  /**
2979
- * Instantiate a new instance of Visitor class and retrieve all properties.
3459
+ * Instantiate a new instance of Visitor class and automatically fetch all its properties.
3460
+ *
3461
+ * @remarks
3462
+ * This method creates a controller instance and immediately fetches all properties of the visitor.
3463
+ * It's a convenience method that combines creating an instance and calling fetchVisitor().
3464
+ *
3465
+ * @keywords get, fetch, retrieve, visitor, load, avatar, instance
2980
3466
  *
2981
3467
  * @example
2982
- * ```
2983
- * const visitorInstance = await Visitor.get(id, urlSlug, { credentials: { interactiveNonce, interactivePublicKey, assetId, urlSlug, visitorId } });
3468
+ * ```ts
3469
+ * // Import the pre-initialized factory from your app's initialization file
3470
+ * import { Visitor } from "utils/topiaInit.ts";
3471
+ *
3472
+ * // Get a fully populated Visitor instance
3473
+ * const visitorInstance = await Visitor.get(
3474
+ * 12345, // visitor ID
3475
+ * "my-world-slug",
3476
+ * {
3477
+ * credentials: {
3478
+ * interactiveNonce,
3479
+ * interactivePublicKey,
3480
+ * assetId,
3481
+ * urlSlug,
3482
+ * visitorId
3483
+ * }
3484
+ * }
3485
+ * );
3486
+ *
3487
+ * // The properties are already loaded, so you can use them immediately
3488
+ * console.log(visitorInstance.username);
3489
+ * console.log(visitorInstance.position);
2984
3490
  * ```
2985
3491
  *
2986
- * @returns {Promise<Visitor>} Returns a new Visitor object with all properties.
3492
+ * @returns {Promise<Visitor>} Returns a new Visitor object with all properties already fetched.
2987
3493
  */
2988
3494
  get(id: number, urlSlug: string, options?: VisitorOptionalInterface): Promise<Visitor>;
2989
3495
  }
2990
3496
 
2991
3497
  /**
3498
+ * Factory for creating WebRTCConnector instances. Use this factory to establish WebRTC connections for audio/video in Topia worlds.
3499
+ *
3500
+ * @remarks
3501
+ * This factory should be instantiated once per application and reused across your codebase.
3502
+ * The WebRTCConnector provides methods to set up and manage real-time audio/video communication.
3503
+ *
3504
+ * @keywords webrtc, factory, create, audio, video, communication, real-time, conference
3505
+ *
2992
3506
  * @example
2993
3507
  * ```ts
2994
- * const WebRTCConnector = new WebRTCConnectorFactory(myTopiaInstance);
3508
+ * // In your initialization file (e.g., utils/topiaInit.ts)
3509
+ * import { Topia, WebRTCConnectorFactory } from "@rtsdk/topia";
3510
+ * const topia = new Topia({ config });
3511
+ * export const WebRTCConnector = new WebRTCConnectorFactory(topia);
2995
3512
  * ```
2996
3513
  */
2997
3514
  declare class WebRTCConnectorFactory {
2998
3515
  topia: Topia;
2999
3516
  constructor(topia: Topia);
3000
3517
  /**
3001
- * Instantiate a new instance of WebRTCConnector class.
3518
+ * Instantiate a new instance of WebRTCConnector class for managing audio/video communication.
3519
+ *
3520
+ * @remarks
3521
+ * This method creates a controller instance for establishing and managing WebRTC connections.
3522
+ * Use this for implementing real-time audio/video communication features in Topia worlds.
3523
+ *
3524
+ * @keywords create, instantiate, webrtc, initialize, audio, video, communication, stream
3002
3525
  *
3003
3526
  * @example
3004
- * ```
3005
- * const webRTCInstance = await WebRTCConnector.create({ credentials: { interactiveNonce, interactivePublicKey, assetId, urlSlug, visitorId }, twilioConfig: {} });
3527
+ * ```ts
3528
+ * // Import the pre-initialized factory from your app's initialization file
3529
+ * import { WebRTCConnector } from "utils/topiaInit.ts";
3530
+ *
3531
+ * // Create a WebRTCConnector instance with credentials and configuration
3532
+ * const webRTCInstance = WebRTCConnector.create(
3533
+ * "my-world-slug",
3534
+ * {
3535
+ * credentials: {
3536
+ * interactiveNonce,
3537
+ * interactivePublicKey,
3538
+ * assetId,
3539
+ * urlSlug,
3540
+ * visitorId
3541
+ * },
3542
+ * twilioConfig: {
3543
+ * // Twilio configuration options
3544
+ * }
3545
+ * }
3546
+ * );
3547
+ *
3548
+ * // Use the instance to establish connections
3549
+ * await webRTCInstance.connect();
3006
3550
  * ```
3007
3551
  *
3008
- * @returns {WebRTCConnector} Returns a new WebRTCConnector object.
3552
+ * @returns {WebRTCConnector} Returns a new WebRTCConnector object for managing audio/video communication.
3009
3553
  */
3010
3554
  create(urlSlug: string, options?: WebRTCConnectorOptionalInterface): WebRTCConnector;
3011
3555
  }
3012
3556
 
3013
3557
  /**
3558
+ * Factory for creating WorldActivity instances. Use this factory to monitor and manage visitor activity in Topia worlds.
3559
+ *
3560
+ * @remarks
3561
+ * This factory should be instantiated once per application and reused across your codebase.
3562
+ * The WorldActivity controller provides methods to interact with real-time visitor activities and movements.
3563
+ *
3564
+ * @keywords world activity, factory, create, visitors, movement, tracking, presence, real-time
3565
+ *
3014
3566
  * @example
3015
3567
  * ```ts
3016
- * const WorldActivity = new WorldActivityFactory(myTopiaInstance);
3568
+ * // In your initialization file (e.g., utils/topiaInit.ts)
3569
+ * import { Topia, WorldActivityFactory } from "@rtsdk/topia";
3570
+ * const topia = new Topia({ config });
3571
+ * export const WorldActivity = new WorldActivityFactory(topia);
3017
3572
  * ```
3018
3573
  */
3019
3574
  declare class WorldActivityFactory {
3020
3575
  topia: Topia;
3021
3576
  constructor(topia: Topia);
3022
3577
  /**
3023
- * Instantiate a new instance of WorldActivity class.
3578
+ * Instantiate a new instance of WorldActivity class for monitoring visitor activity in a specific world.
3579
+ *
3580
+ * @remarks
3581
+ * This method creates a controller instance for tracking and managing visitor activity in a world.
3582
+ * Use this to fetch current visitors, move visitors, or monitor specific zones within a world.
3583
+ *
3584
+ * @keywords create, instantiate, world activity, initialize, visitors, tracking, presence
3024
3585
  *
3025
3586
  * @example
3026
- * ```
3027
- * const worldActivityInstance = await WorldActivity.create(urlSlug, { credentials: { interactiveNonce, interactivePublicKey, assetId, urlSlug, visitorId } });
3587
+ * ```ts
3588
+ * // Import the pre-initialized factory from your app's initialization file
3589
+ * import { WorldActivity } from "utils/topiaInit.ts";
3590
+ *
3591
+ * // Create a WorldActivity instance with credentials
3592
+ * const worldActivityInstance = WorldActivity.create(
3593
+ * "my-world-slug",
3594
+ * {
3595
+ * credentials: {
3596
+ * interactiveNonce,
3597
+ * interactivePublicKey,
3598
+ * assetId,
3599
+ * urlSlug,
3600
+ * visitorId
3601
+ * }
3602
+ * }
3603
+ * );
3604
+ *
3605
+ * // Get current visitors in the world
3606
+ * const visitors = await worldActivityInstance.currentVisitors();
3607
+ * console.log(`There are ${visitors.length} visitors in the world`);
3608
+ *
3609
+ * // Check visitors in a specific zone
3610
+ * const zoneVisitors = await worldActivityInstance.fetchVisitorsInZone("stage-area");
3028
3611
  * ```
3029
3612
  *
3030
- * @returns {WorldActivity} Returns a new WorldActivity object.
3613
+ * @returns {WorldActivity} Returns a new WorldActivity object for tracking and managing visitor activity.
3031
3614
  */
3032
3615
  create(urlSlug: string, options?: WorldOptionalInterface): WorldActivity;
3033
3616
  }
3034
3617
 
3035
3618
  /**
3619
+ * Factory for creating World instances. Use this factory to interact with Topia worlds.
3620
+ *
3621
+ * @remarks
3622
+ * This factory should be instantiated once per application and reused across your codebase.
3623
+ * The World controller provides methods to manage world settings, retrieve world details, and perform world-level operations.
3624
+ *
3625
+ * @keywords world, factory, create, virtual space, environment, room, topia
3626
+ *
3036
3627
  * @example
3037
3628
  * ```ts
3038
- * const World = new WorldFactory(myTopiaInstance);
3629
+ * // In your initialization file (e.g., utils/topiaInit.ts)
3630
+ * import { Topia, WorldFactory } from "@rtsdk/topia";
3631
+ * const topia = new Topia({ config });
3632
+ * export const World = new WorldFactory(topia);
3039
3633
  * ```
3040
3634
  */
3041
3635
  declare class WorldFactory extends SDKController {
3042
3636
  constructor(topia: Topia);
3043
3637
  /**
3044
- * Instantiate a new instance of World class.
3638
+ * Instantiate a new instance of World class for interacting with a specific Topia world.
3639
+ *
3640
+ * @remarks
3641
+ * This method creates a controller instance for a world identified by its URL slug.
3642
+ * The world controller can be used to fetch details, update world settings, and perform other world-level operations.
3643
+ *
3644
+ * @keywords create, instantiate, world, initialize, virtual space, environment, room
3045
3645
  *
3046
3646
  * @example
3047
- * ```
3048
- * const worldInstance = await World.create(urlSlug, { credentials: { interactiveNonce, interactivePublicKey, assetId, urlSlug, visitorId } });
3647
+ * ```ts
3648
+ * // Import the pre-initialized factory from your app's initialization file
3649
+ * import { World } from "utils/topiaInit.ts";
3650
+ *
3651
+ * // Create a World instance with credentials
3652
+ * const worldInstance = World.create(
3653
+ * "my-world-slug",
3654
+ * {
3655
+ * credentials: {
3656
+ * interactiveNonce,
3657
+ * interactivePublicKey,
3658
+ * assetId,
3659
+ * urlSlug,
3660
+ * visitorId
3661
+ * }
3662
+ * }
3663
+ * );
3664
+ *
3665
+ * // Fetch world details
3666
+ * await worldInstance.fetchDetails();
3667
+ * console.log(worldInstance.name);
3049
3668
  * ```
3050
3669
  *
3051
- * @returns {World} Returns a new World object.
3670
+ * @returns {World} Returns a new World object for interacting with the specified world.
3052
3671
  */
3053
3672
  create(urlSlug: string, options?: WorldOptionalInterface): World;
3054
3673
  /**
3055
- * Deletes an array of Dropped Assets from within a world and returns success: true
3674
+ * Deletes multiple dropped assets from a world in a single operation.
3675
+ *
3676
+ * @remarks
3677
+ * This method provides a convenient way to delete multiple dropped assets at once rather than
3678
+ * deleting them one by one. Requires appropriate permissions via interactive credentials.
3679
+ *
3680
+ * @keywords delete, remove, dropped assets, multiple, batch, cleanup, world
3056
3681
  *
3057
3682
  * @example
3058
- * ```
3059
- * await World.deleteDroppedAssets(urlSlug, ["exampleDroppedAssetId1", "exampleDroppedAssetId2"], interactiveSecret, credentials);
3683
+ * ```ts
3684
+ * // Import the pre-initialized factory from your app's initialization file
3685
+ * import { World } from "utils/topiaInit.ts";
3686
+ *
3687
+ * // Delete multiple dropped assets from a world
3688
+ * const result = await World.deleteDroppedAssets(
3689
+ * "my-world-slug",
3690
+ * ["asset-id-123", "asset-id-456", "asset-id-789"],
3691
+ * "your-interactive-secret",
3692
+ * {
3693
+ * apiKey: "your-api-key",
3694
+ * interactivePublicKey: "your-public-key",
3695
+ * visitorId: 12345
3696
+ * }
3697
+ * );
3698
+ *
3699
+ * if (result.success) {
3700
+ * console.log("Assets successfully deleted");
3701
+ * }
3060
3702
  * ```
3061
3703
  *
3062
- * @returns {Promise<{ success: boolean }>} Returns `{ success: true }` or an error.
3704
+ * @returns {Promise<{ success: boolean }>} Returns `{ success: true }` if all assets were deleted successfully.
3063
3705
  */
3064
3706
  deleteDroppedAssets(urlSlug: string, droppedAssetIds: string[], interactiveSecret: string, credentials: {
3065
3707
  apiKey?: string;