@zylem/game-lib 0.8.9 → 0.9.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.
Files changed (69) hide show
  1. package/README.md +7 -1
  2. package/dist/api/game-lib.api.json +37952 -19547
  3. package/dist/api/game-lib.api.md +1302 -7
  4. package/dist/api/game-lib.d.ts +1696 -3
  5. package/dist/api/game-lib.typedoc.json +174596 -76562
  6. package/dist/audio.d.ts +193 -1
  7. package/dist/audio.js +1 -1
  8. package/dist/bridge.d.ts +17 -2
  9. package/dist/bridge.js +1 -1
  10. package/dist/catalog.js +1 -1
  11. package/dist/chunk-2PFNNGTV.js +1 -0
  12. package/dist/chunk-2XMG3NJS.js +1 -0
  13. package/dist/chunk-4CZZZCFB.js +9 -0
  14. package/dist/chunk-7CBJKE42.js +1 -0
  15. package/dist/{chunk-CBUQBP2U.js → chunk-BQRMYLYD.js} +1 -1
  16. package/dist/chunk-FZNEWOC5.js +1 -0
  17. package/dist/chunk-GPCSX3M6.js +1 -0
  18. package/dist/chunk-K3NNXZIJ.js +1 -0
  19. package/dist/{chunk-JNFFTNMH.js → chunk-KSEP7AUF.js} +1 -1
  20. package/dist/{chunk-7JSZEEAE.js → chunk-LI43BZQN.js} +1 -1
  21. package/dist/chunk-NVVLLWIM.js +1 -0
  22. package/dist/chunk-QGIYILYI.js +1 -0
  23. package/dist/chunk-SHDHPDOV.js +24 -0
  24. package/dist/chunk-STVEILJJ.js +1 -0
  25. package/dist/chunk-SWDNK4GG.js +1 -0
  26. package/dist/chunk-UUOPT2N4.js +1 -0
  27. package/dist/chunk-VMXSE3EC.js +0 -0
  28. package/dist/{chunk-EYDC2PMO.js → chunk-VSFULLND.js} +1 -1
  29. package/dist/chunk-YNX3Q3CL.js +1 -0
  30. package/dist/chunk-ZZO4CKRU.js +1 -0
  31. package/dist/cinematics.d.ts +279 -0
  32. package/dist/cinematics.js +1 -0
  33. package/dist/core.d.ts +124 -10
  34. package/dist/core.js +1 -1
  35. package/dist/cutscene-definition-C479fkei.d.ts +509 -0
  36. package/dist/debug.d.ts +1 -0
  37. package/dist/debug.js +1 -1
  38. package/dist/{entity-type-map-D6BeAdvg.d.ts → entity-type-map-CrsrKT8c.d.ts} +12 -3
  39. package/dist/entity.d.ts +2 -1
  40. package/dist/entity.js +1 -1
  41. package/dist/game-D8KTP3fD.d.ts +652 -0
  42. package/dist/game-default-JV3Q6JAL.js +1 -0
  43. package/dist/graphics.d.ts +1 -1
  44. package/dist/graphics.js +1 -1
  45. package/dist/public.d.ts +12 -6
  46. package/dist/public.js +1 -1
  47. package/dist/schema/cutscene.schema.json +782 -0
  48. package/dist/schema/song.schema.json +430 -0
  49. package/dist/schema.d.ts +2 -0
  50. package/dist/schema.js +1 -1
  51. package/dist/selection-bounds-BKmSo9aG.d.ts +50 -0
  52. package/dist/song-definition-rEKksP0B.d.ts +263 -0
  53. package/dist/song-player-7QPLFLAS.js +1 -0
  54. package/dist/{game-DyKbOeck.d.ts → stage-CAPlk_cN.d.ts} +146 -647
  55. package/dist/web-components.d.ts +5 -3
  56. package/dist/web-components.js +1 -1
  57. package/dist/{zylem-camera-DZTpPOiD.d.ts → zylem-camera-CYDtrVgi.d.ts} +134 -102
  58. package/package.json +11 -4
  59. package/dist/chunk-34MYRTRP.js +0 -9
  60. package/dist/chunk-AXJTUVGC.js +0 -24
  61. package/dist/chunk-BWOZF5YK.js +0 -1
  62. package/dist/chunk-EVMLNMGU.js +0 -1
  63. package/dist/chunk-G3TBBZUI.js +0 -1
  64. package/dist/chunk-J6KD2G6F.js +0 -1
  65. package/dist/chunk-X7T7QRYP.js +0 -1
  66. package/dist/chunk-YVWDCZNT.js +0 -1
  67. package/dist/chunk-ZRT3ZQVH.js +0 -1
  68. package/dist/game-default-6YXFFZ2Q.js +0 -1
  69. /package/dist/{chunk-MSCVL5OK.js → chunk-ELQN62PQ.js} +0 -0
@@ -28,6 +28,7 @@ import { BoundaryRicochet3DEntity } from '@zylem/behaviors';
28
28
  import { BoundaryRicochetCoordinator } from '@zylem/behaviors';
29
29
  import { BoundaryRicochetEntity } from '@zylem/behaviors';
30
30
  import { BoundaryRicochetUpdate } from '@zylem/behaviors';
31
+ import { Box3 } from 'three';
31
32
  import { BRIDGE_READY_EVENT } from '@zylem/bridge';
32
33
  import { BridgeChannel } from '@zylem/bridge';
33
34
  import { BridgeDebugTool } from '@zylem/bridge';
@@ -41,6 +42,7 @@ import { BridgeVec3 } from '@zylem/bridge';
41
42
  import { BufferGeometry } from 'three';
42
43
  import { BurstParticlePresetOptions } from '@zylem/behaviors';
43
44
  import { Camera } from 'three';
45
+ import { CameraPosePayload } from '@zylem/bridge';
44
46
  import { clamp } from 'three/tsl';
45
47
  import { Color } from 'three';
46
48
  import { ColorRepresentation } from 'three';
@@ -78,6 +80,10 @@ import { createTopDownMovementInputComponent } from '@zylem/behaviors';
78
80
  import { createTopDownMovementStateComponent } from '@zylem/behaviors';
79
81
  import { createTransformComponent } from '@zylem/behaviors';
80
82
  import { createTransformStore } from '@zylem/behaviors/core';
83
+ import { CutsceneLoadPayload } from '@zylem/bridge';
84
+ import { CutscenePlaybackState } from '@zylem/bridge';
85
+ import { CutsceneStatusPayload } from '@zylem/bridge';
86
+ import { CutsceneViewPayload } from '@zylem/bridge';
81
87
  import { defineBehavior } from '@zylem/behaviors';
82
88
  import { DefineBehaviorConfig } from '@zylem/behaviors';
83
89
  import { Destructible3DBehavior } from '@zylem/behaviors';
@@ -366,6 +372,7 @@ import { ThrusterState } from '@zylem/behaviors';
366
372
  import { ThrusterStateComponent } from '@zylem/behaviors';
367
373
  import { tickCooldowns } from '@zylem/behaviors';
368
374
  import { time } from 'three/tsl';
375
+ import * as ToneNs from 'tone';
369
376
  import { TopDownMovementBehavior } from '@zylem/behaviors';
370
377
  import { TopDownMovementBehaviorOptions } from '@zylem/behaviors';
371
378
  import { TopDownMovementComponent } from '@zylem/behaviors';
@@ -427,6 +434,9 @@ export interface Action {
427
434
  tick(entity: GameEntity<any>, delta: number): void;
428
435
  }
429
436
 
437
+ // @public
438
+ export function activeShot(definition: CutsceneDefinition, time: number): CameraShot | undefined;
439
+
430
440
  // @public (undocumented)
431
441
  export const ACTOR_TYPE: unique symbol;
432
442
 
@@ -471,6 +481,49 @@ export type AspectRatioValue = (typeof AspectRatio)[keyof typeof AspectRatio] |
471
481
 
472
482
  export { atan }
473
483
 
484
+ // @public
485
+ export function audibleTrackIds(tracks: readonly SongTrack[]): Set<string>;
486
+
487
+ // @public (undocumented)
488
+ export type AudioClip = Static<typeof AudioClipSchema>;
489
+
490
+ // @public (undocumented)
491
+ export const AudioClipSchema: _sinclair_typebox.TObject<{
492
+ kind: _sinclair_typebox.TLiteral<"audio">;
493
+ id: _sinclair_typebox.TString;
494
+ trackId: _sinclair_typebox.TString;
495
+ name: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
496
+ url: _sinclair_typebox.TString;
497
+ start: _sinclair_typebox.TNumber;
498
+ offset: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
499
+ length: _sinclair_typebox.TNumber;
500
+ gain: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
501
+ }>;
502
+
503
+ // @public (undocumented)
504
+ export type AudioItem = Static<typeof AudioItemSchema>;
505
+
506
+ // @public (undocumented)
507
+ export const AudioItemSchema: _sinclair_typebox.TObject<{
508
+ id: _sinclair_typebox.TString;
509
+ time: _sinclair_typebox.TNumber;
510
+ kind: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"song">, _sinclair_typebox.TLiteral<"sfx">]>;
511
+ ref: _sinclair_typebox.TString;
512
+ loop: _sinclair_typebox.TBoolean;
513
+ volume: _sinclair_typebox.TNumber;
514
+ }>;
515
+
516
+ // Warning: (ae-forgotten-export) The symbol "AudioTrackSchema" needs to be exported by the entry point public.d.ts
517
+ //
518
+ // @public (undocumented)
519
+ export type AudioTrack = Static<typeof AudioTrackSchema>;
520
+
521
+ // @public
522
+ export function beatsPerBar(signature: TimeSignature): number;
523
+
524
+ // @public (undocumented)
525
+ export function beatsToSeconds(beats: number, bpm: number): number;
526
+
474
527
  export { BehaviorDescriptor }
475
528
 
476
529
  export { BehaviorHandle }
@@ -605,6 +658,27 @@ export interface CameraFeedOptions {
605
658
  width?: number;
606
659
  }
607
660
 
661
+ // @public (undocumented)
662
+ export type CameraKeyframe = Static<typeof CameraKeyframeSchema>;
663
+
664
+ // @public (undocumented)
665
+ export const CameraKeyframeSchema: _sinclair_typebox.TObject<{
666
+ id: _sinclair_typebox.TString;
667
+ time: _sinclair_typebox.TNumber;
668
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
669
+ x: _sinclair_typebox.TNumber;
670
+ y: _sinclair_typebox.TNumber;
671
+ z: _sinclair_typebox.TNumber;
672
+ }>>;
673
+ lookAt: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
674
+ x: _sinclair_typebox.TNumber;
675
+ y: _sinclair_typebox.TNumber;
676
+ z: _sinclair_typebox.TNumber;
677
+ }>>;
678
+ fov: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
679
+ easing: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"linear">, _sinclair_typebox.TLiteral<"easeIn">, _sinclair_typebox.TLiteral<"easeOut">, _sinclair_typebox.TLiteral<"easeInOut">]>;
680
+ }>;
681
+
608
682
  // @public
609
683
  export class CameraManager {
610
684
  constructor();
@@ -662,6 +736,7 @@ export interface CameraPerspective {
662
736
  getBasePose(ctx: CameraContext): CameraPose;
663
737
  // (undocumented)
664
738
  id: string;
739
+ projection?: CameraProjection;
665
740
  }
666
741
 
667
742
  // @public
@@ -709,6 +784,39 @@ export interface CameraPose {
709
784
  zoom?: number;
710
785
  }
711
786
 
787
+ // Warning: (ae-forgotten-export) The symbol "CameraPoseDefSchema" needs to be exported by the entry point public.d.ts
788
+ //
789
+ // @public (undocumented)
790
+ export type CameraPoseDef = Static<typeof CameraPoseDefSchema>;
791
+
792
+ export { CameraPosePayload }
793
+
794
+ // @public
795
+ export type CameraProjection = 'perspective' | 'orthographic';
796
+
797
+ // @public (undocumented)
798
+ export type CameraShot = Static<typeof CameraShotSchema>;
799
+
800
+ // @public (undocumented)
801
+ export const CameraShotSchema: _sinclair_typebox.TObject<{
802
+ id: _sinclair_typebox.TString;
803
+ cameraId: _sinclair_typebox.TString;
804
+ start: _sinclair_typebox.TNumber;
805
+ end: _sinclair_typebox.TNumber;
806
+ blend: _sinclair_typebox.TObject<{
807
+ duration: _sinclair_typebox.TNumber;
808
+ easing: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"linear">, _sinclair_typebox.TLiteral<"easeIn">, _sinclair_typebox.TLiteral<"easeOut">, _sinclair_typebox.TLiteral<"easeInOut">]>;
809
+ }>;
810
+ }>;
811
+
812
+ // Warning: (ae-forgotten-export) The symbol "CameraTrackSchema" needs to be exported by the entry point public.d.ts
813
+ //
814
+ // @public (undocumented)
815
+ export type CameraTrack = Static<typeof CameraTrackSchema>;
816
+
817
+ // @public
818
+ export function cameraTracks(definition: CutsceneDefinition): CameraTrack[];
819
+
712
820
  // @public
713
821
  export class CameraWrapper {
714
822
  constructor(camera: ZylemCamera);
@@ -734,6 +842,9 @@ export { clamp }
734
842
  // @public
735
843
  export function clearGlobalSubscriptions(): void;
736
844
 
845
+ // @public
846
+ export function clipsAt(song: SongDefinition, trackId: string, beat: number): Array<NoteClip | AudioClip>;
847
+
737
848
  // @public
738
849
  export function closestAxisValue(ray: GizmoRay, origin: Vector3, axis: Vector3): number | null;
739
850
 
@@ -828,6 +939,9 @@ export function createCone(...args: Array<ConeOptions>): ZylemCone;
828
939
  // @public
829
940
  export function createCooldownIcon(...args: Array<CooldownIconOptions>): ZylemCooldownIcon;
830
941
 
942
+ // @public
943
+ export function createCutscenePlayer(initial: CutsceneDefinition, options: CutscenePlayerOptions): CutscenePlayer;
944
+
831
945
  // Warning: (ae-forgotten-export) The symbol "CylinderOptions" needs to be exported by the entry point public.d.ts
832
946
  //
833
947
  // @public
@@ -867,6 +981,9 @@ export function createGame<TGlobals extends BaseGlobals>(...options: GameOptions
867
981
  // @public
868
982
  export function createGlobal<T>(path: string, defaultValue: T): T;
869
983
 
984
+ // @public
985
+ export function createInstrument(Tone: ToneModule, def: InstrumentDefinition): Instrument;
986
+
870
987
  export { createJumpConfig2D }
871
988
 
872
989
  export { createJumpConfig3D }
@@ -920,6 +1037,9 @@ export { createPlatformer3DMovementComponent }
920
1037
 
921
1038
  export { createPlatformer3DStateComponent }
922
1039
 
1040
+ // @public
1041
+ export function createPlatformFollow(options?: PlatformFollowOptions): CameraBehavior;
1042
+
923
1043
  // Warning: (ae-forgotten-export) The symbol "PyramidOptions" needs to be exported by the entry point public.d.ts
924
1044
  //
925
1045
  // @public
@@ -934,6 +1054,9 @@ export { createShooter2DStateComponent }
934
1054
 
935
1055
  export { createSimulation }
936
1056
 
1057
+ // @public
1058
+ export function createSongPlayer(definition: SongDefinition, options?: SongPlayerOptions): SongPlayer;
1059
+
937
1060
  // Warning: (ae-forgotten-export) The symbol "SphereOptions" needs to be exported by the entry point public.d.ts
938
1061
  //
939
1062
  // @public (undocumented)
@@ -949,6 +1072,12 @@ export function createSprite(...args: Array<SpriteOptions>): ZylemSprite;
949
1072
  // @public
950
1073
  export function createStage(...options: StageOptions): Stage;
951
1074
 
1075
+ // @public (undocumented)
1076
+ export function createStageCutsceneHost(stageLike: CutsceneStageLike, options?: StageCutsceneHostOptions): CutsceneHost;
1077
+
1078
+ // @public
1079
+ export function createStrategyPan(options?: StrategyPanOptions): StrategyPanBehavior;
1080
+
952
1081
  // Warning: (ae-forgotten-export) The symbol "TextOptions" needs to be exported by the entry point public.d.ts
953
1082
  //
954
1083
  // @public (undocumented)
@@ -981,6 +1110,449 @@ export function createZone(...args: Array<ZoneOptions>): ZylemZone;
981
1110
  // @public
982
1111
  export const crossfadeTransitionShader: ZylemTransitionShader;
983
1112
 
1113
+ // @public
1114
+ export const CUTSCENE_BEHAVIOR_KEY = "cutscene";
1115
+
1116
+ // @public (undocumented)
1117
+ export type CutsceneCamera = Static<typeof CutsceneCameraSchema>;
1118
+
1119
+ // @public
1120
+ export class CutsceneCameraBehavior implements CameraBehavior {
1121
+ // (undocumented)
1122
+ enabled: boolean;
1123
+ // (undocumented)
1124
+ onDetach(): void;
1125
+ // (undocumented)
1126
+ priority: number;
1127
+ setPose(pose: EvaluatedPose | null, damping?: number): void;
1128
+ snap(): void;
1129
+ // (undocumented)
1130
+ update(ctx: CameraContext, pose: CameraPose): CameraPose;
1131
+ }
1132
+
1133
+ // Warning: (ae-forgotten-export) The symbol "CutsceneCameraKindSchema" needs to be exported by the entry point public.d.ts
1134
+ //
1135
+ // @public (undocumented)
1136
+ export type CutsceneCameraKind = Static<typeof CutsceneCameraKindSchema>;
1137
+
1138
+ // @public (undocumented)
1139
+ export const CutsceneCameraSchema: _sinclair_typebox.TObject<{
1140
+ id: _sinclair_typebox.TString;
1141
+ name: _sinclair_typebox.TString;
1142
+ kind: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"static">, _sinclair_typebox.TLiteral<"dolly">, _sinclair_typebox.TLiteral<"follow">]>;
1143
+ fov: _sinclair_typebox.TNumber;
1144
+ pose: _sinclair_typebox.TObject<{
1145
+ position: _sinclair_typebox.TObject<{
1146
+ x: _sinclair_typebox.TNumber;
1147
+ y: _sinclair_typebox.TNumber;
1148
+ z: _sinclair_typebox.TNumber;
1149
+ }>;
1150
+ lookAt: _sinclair_typebox.TObject<{
1151
+ x: _sinclair_typebox.TNumber;
1152
+ y: _sinclair_typebox.TNumber;
1153
+ z: _sinclair_typebox.TNumber;
1154
+ }>;
1155
+ }>;
1156
+ dollyId: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
1157
+ dollyEasing: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"linear">, _sinclair_typebox.TLiteral<"easeIn">, _sinclair_typebox.TLiteral<"easeOut">, _sinclair_typebox.TLiteral<"easeInOut">]>;
1158
+ target: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
1159
+ offset: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
1160
+ x: _sinclair_typebox.TNumber;
1161
+ y: _sinclair_typebox.TNumber;
1162
+ z: _sinclair_typebox.TNumber;
1163
+ }>>;
1164
+ damping: _sinclair_typebox.TNumber;
1165
+ keyframes: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
1166
+ id: _sinclair_typebox.TString;
1167
+ time: _sinclair_typebox.TNumber;
1168
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
1169
+ x: _sinclair_typebox.TNumber;
1170
+ y: _sinclair_typebox.TNumber;
1171
+ z: _sinclair_typebox.TNumber;
1172
+ }>>;
1173
+ lookAt: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
1174
+ x: _sinclair_typebox.TNumber;
1175
+ y: _sinclair_typebox.TNumber;
1176
+ z: _sinclair_typebox.TNumber;
1177
+ }>>;
1178
+ fov: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
1179
+ easing: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"linear">, _sinclair_typebox.TLiteral<"easeIn">, _sinclair_typebox.TLiteral<"easeOut">, _sinclair_typebox.TLiteral<"easeInOut">]>;
1180
+ }>>;
1181
+ }>;
1182
+
1183
+ // @public (undocumented)
1184
+ export type CutsceneDefinition = Static<typeof CutsceneDefinitionSchema>;
1185
+
1186
+ // @public (undocumented)
1187
+ export const CutsceneDefinitionSchema: _sinclair_typebox.TObject<{
1188
+ id: _sinclair_typebox.TString;
1189
+ name: _sinclair_typebox.TString;
1190
+ duration: _sinclair_typebox.TNumber;
1191
+ stage: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNull]>;
1192
+ skippable: _sinclair_typebox.TBoolean;
1193
+ scenes: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
1194
+ id: _sinclair_typebox.TString;
1195
+ name: _sinclair_typebox.TString;
1196
+ start: _sinclair_typebox.TNumber;
1197
+ end: _sinclair_typebox.TNumber;
1198
+ transitionIn: _sinclair_typebox.TObject<{
1199
+ type: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"cut">, _sinclair_typebox.TLiteral<"fade">, _sinclair_typebox.TLiteral<"wipe">, _sinclair_typebox.TLiteral<"radial">, _sinclair_typebox.TLiteral<"noise">, _sinclair_typebox.TLiteral<"cells">]>;
1200
+ duration: _sinclair_typebox.TNumber;
1201
+ easing: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"linear">, _sinclair_typebox.TLiteral<"easeIn">, _sinclair_typebox.TLiteral<"easeOut">, _sinclair_typebox.TLiteral<"easeInOut">]>;
1202
+ }>;
1203
+ }>>;
1204
+ cameras: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
1205
+ id: _sinclair_typebox.TString;
1206
+ name: _sinclair_typebox.TString;
1207
+ kind: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"static">, _sinclair_typebox.TLiteral<"dolly">, _sinclair_typebox.TLiteral<"follow">]>;
1208
+ fov: _sinclair_typebox.TNumber;
1209
+ pose: _sinclair_typebox.TObject<{
1210
+ position: _sinclair_typebox.TObject<{
1211
+ x: _sinclair_typebox.TNumber;
1212
+ y: _sinclair_typebox.TNumber;
1213
+ z: _sinclair_typebox.TNumber;
1214
+ }>;
1215
+ lookAt: _sinclair_typebox.TObject<{
1216
+ x: _sinclair_typebox.TNumber;
1217
+ y: _sinclair_typebox.TNumber;
1218
+ z: _sinclair_typebox.TNumber;
1219
+ }>;
1220
+ }>;
1221
+ dollyId: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
1222
+ dollyEasing: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"linear">, _sinclair_typebox.TLiteral<"easeIn">, _sinclair_typebox.TLiteral<"easeOut">, _sinclair_typebox.TLiteral<"easeInOut">]>;
1223
+ target: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
1224
+ offset: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
1225
+ x: _sinclair_typebox.TNumber;
1226
+ y: _sinclair_typebox.TNumber;
1227
+ z: _sinclair_typebox.TNumber;
1228
+ }>>;
1229
+ damping: _sinclair_typebox.TNumber;
1230
+ keyframes: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
1231
+ id: _sinclair_typebox.TString;
1232
+ time: _sinclair_typebox.TNumber;
1233
+ position: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
1234
+ x: _sinclair_typebox.TNumber;
1235
+ y: _sinclair_typebox.TNumber;
1236
+ z: _sinclair_typebox.TNumber;
1237
+ }>>;
1238
+ lookAt: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
1239
+ x: _sinclair_typebox.TNumber;
1240
+ y: _sinclair_typebox.TNumber;
1241
+ z: _sinclair_typebox.TNumber;
1242
+ }>>;
1243
+ fov: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
1244
+ easing: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"linear">, _sinclair_typebox.TLiteral<"easeIn">, _sinclair_typebox.TLiteral<"easeOut">, _sinclair_typebox.TLiteral<"easeInOut">]>;
1245
+ }>>;
1246
+ }>>;
1247
+ dollies: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
1248
+ id: _sinclair_typebox.TString;
1249
+ name: _sinclair_typebox.TString;
1250
+ points: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
1251
+ x: _sinclair_typebox.TNumber;
1252
+ y: _sinclair_typebox.TNumber;
1253
+ z: _sinclair_typebox.TNumber;
1254
+ }>>;
1255
+ closed: _sinclair_typebox.TBoolean;
1256
+ tension: _sinclair_typebox.TNumber;
1257
+ }>>;
1258
+ tracks: _sinclair_typebox.TArray<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
1259
+ kind: _sinclair_typebox.TLiteral<"camera">;
1260
+ id: _sinclair_typebox.TString;
1261
+ name: _sinclair_typebox.TString;
1262
+ items: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
1263
+ id: _sinclair_typebox.TString;
1264
+ cameraId: _sinclair_typebox.TString;
1265
+ start: _sinclair_typebox.TNumber;
1266
+ end: _sinclair_typebox.TNumber;
1267
+ blend: _sinclair_typebox.TObject<{
1268
+ duration: _sinclair_typebox.TNumber;
1269
+ easing: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"linear">, _sinclair_typebox.TLiteral<"easeIn">, _sinclair_typebox.TLiteral<"easeOut">, _sinclair_typebox.TLiteral<"easeInOut">]>;
1270
+ }>;
1271
+ }>>;
1272
+ }>, _sinclair_typebox.TObject<{
1273
+ kind: _sinclair_typebox.TLiteral<"event">;
1274
+ id: _sinclair_typebox.TString;
1275
+ name: _sinclair_typebox.TString;
1276
+ items: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
1277
+ id: _sinclair_typebox.TString;
1278
+ time: _sinclair_typebox.TNumber;
1279
+ event: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
1280
+ type: _sinclair_typebox.TLiteral<"emit">;
1281
+ name: _sinclair_typebox.TString;
1282
+ payload: _sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber, _sinclair_typebox.TBoolean]>>;
1283
+ }>, _sinclair_typebox.TObject<{
1284
+ type: _sinclair_typebox.TLiteral<"playAnimation">;
1285
+ entity: _sinclair_typebox.TString;
1286
+ key: _sinclair_typebox.TString;
1287
+ }>, _sinclair_typebox.TObject<{
1288
+ type: _sinclair_typebox.TLiteral<"playSong">;
1289
+ song: _sinclair_typebox.TString;
1290
+ loop: _sinclair_typebox.TBoolean;
1291
+ }>, _sinclair_typebox.TObject<{
1292
+ type: _sinclair_typebox.TLiteral<"stopSong">;
1293
+ song: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
1294
+ }>, _sinclair_typebox.TObject<{
1295
+ type: _sinclair_typebox.TLiteral<"setVariable">;
1296
+ name: _sinclair_typebox.TString;
1297
+ value: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber, _sinclair_typebox.TBoolean]>;
1298
+ }>]>;
1299
+ }>>;
1300
+ }>, _sinclair_typebox.TObject<{
1301
+ kind: _sinclair_typebox.TLiteral<"audio">;
1302
+ id: _sinclair_typebox.TString;
1303
+ name: _sinclair_typebox.TString;
1304
+ items: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
1305
+ id: _sinclair_typebox.TString;
1306
+ time: _sinclair_typebox.TNumber;
1307
+ kind: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"song">, _sinclair_typebox.TLiteral<"sfx">]>;
1308
+ ref: _sinclair_typebox.TString;
1309
+ loop: _sinclair_typebox.TBoolean;
1310
+ volume: _sinclair_typebox.TNumber;
1311
+ }>>;
1312
+ }>]>>;
1313
+ }>;
1314
+
1315
+ // Warning: (ae-forgotten-export) The symbol "CutsceneEasingSchema" needs to be exported by the entry point public.d.ts
1316
+ //
1317
+ // @public (undocumented)
1318
+ export type CutsceneEasing = Static<typeof CutsceneEasingSchema>;
1319
+
1320
+ // @public (undocumented)
1321
+ export type CutsceneEvent = Static<typeof CutsceneEventSchema>;
1322
+
1323
+ // @public (undocumented)
1324
+ export const CutsceneEventSchema: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
1325
+ type: _sinclair_typebox.TLiteral<"emit">;
1326
+ name: _sinclair_typebox.TString;
1327
+ payload: _sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber, _sinclair_typebox.TBoolean]>>;
1328
+ }>, _sinclair_typebox.TObject<{
1329
+ type: _sinclair_typebox.TLiteral<"playAnimation">;
1330
+ entity: _sinclair_typebox.TString;
1331
+ key: _sinclair_typebox.TString;
1332
+ }>, _sinclair_typebox.TObject<{
1333
+ type: _sinclair_typebox.TLiteral<"playSong">;
1334
+ song: _sinclair_typebox.TString;
1335
+ loop: _sinclair_typebox.TBoolean;
1336
+ }>, _sinclair_typebox.TObject<{
1337
+ type: _sinclair_typebox.TLiteral<"stopSong">;
1338
+ song: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
1339
+ }>, _sinclair_typebox.TObject<{
1340
+ type: _sinclair_typebox.TLiteral<"setVariable">;
1341
+ name: _sinclair_typebox.TString;
1342
+ value: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber, _sinclair_typebox.TBoolean]>;
1343
+ }>]>;
1344
+
1345
+ // @public (undocumented)
1346
+ export interface CutsceneFrame {
1347
+ blend: number;
1348
+ // (undocumented)
1349
+ camera: CutsceneCamera | undefined;
1350
+ // (undocumented)
1351
+ pose: EvaluatedPose | undefined;
1352
+ // (undocumented)
1353
+ scene: CutsceneScene | undefined;
1354
+ // (undocumented)
1355
+ shot: CameraShot | undefined;
1356
+ }
1357
+
1358
+ // @public
1359
+ export interface CutsceneHost {
1360
+ beginTransition?: (transition: SceneTransition, shader: ZylemTransitionShader | undefined) => void;
1361
+ camera: () => ZylemCamera | null;
1362
+ dispatch?: (name: string, payload: Record<string, unknown>) => void;
1363
+ entityPosition?: (name: string) => Vec3Def | undefined;
1364
+ // (undocumented)
1365
+ playAnimation?: (entity: string, key: string) => void;
1366
+ // (undocumented)
1367
+ playSfx?: (url: string, options: {
1368
+ volume: number;
1369
+ loop: boolean;
1370
+ }) => void;
1371
+ // (undocumented)
1372
+ playSong?: (ref: string, options: {
1373
+ loop: boolean;
1374
+ volume: number;
1375
+ }) => void;
1376
+ // (undocumented)
1377
+ setVariable?: (name: string, value: unknown) => void;
1378
+ // (undocumented)
1379
+ stopSong?: (ref?: string) => void;
1380
+ }
1381
+
1382
+ // @public
1383
+ export function cutsceneLength(definition: Pick<CutsceneDefinition, 'duration' | 'scenes'>): number;
1384
+
1385
+ export { CutsceneLoadPayload }
1386
+
1387
+ export { CutscenePlaybackState }
1388
+
1389
+ // @public (undocumented)
1390
+ export interface CutscenePlayer {
1391
+ // (undocumented)
1392
+ readonly definition: CutsceneDefinition;
1393
+ // (undocumented)
1394
+ dispose(): void;
1395
+ // (undocumented)
1396
+ readonly length: number;
1397
+ // (undocumented)
1398
+ on<K extends keyof CutscenePlayerEvents>(event: K, handler: CutscenePlayerEvents[K]): () => void;
1399
+ // (undocumented)
1400
+ pause(): void;
1401
+ // (undocumented)
1402
+ play(from?: number): void;
1403
+ readonly pose: EvaluatedPose | undefined;
1404
+ // (undocumented)
1405
+ seek(time: number): void;
1406
+ setDefinition(definition: CutsceneDefinition): void;
1407
+ skip(): boolean;
1408
+ // (undocumented)
1409
+ readonly state: CutscenePlayerState;
1410
+ stop(): void;
1411
+ readonly time: number;
1412
+ update(dt: number): void;
1413
+ }
1414
+
1415
+ // @public (undocumented)
1416
+ export interface CutscenePlayerEvents {
1417
+ // (undocumented)
1418
+ audio: (item: AudioItem) => void;
1419
+ // (undocumented)
1420
+ complete: () => void;
1421
+ // (undocumented)
1422
+ event: (item: EventItem) => void;
1423
+ // (undocumented)
1424
+ scene: (scene: CutsceneScene | undefined) => void;
1425
+ // (undocumented)
1426
+ shot: (shot: CameraShot | undefined) => void;
1427
+ // (undocumented)
1428
+ skip: () => void;
1429
+ // (undocumented)
1430
+ state: (state: CutscenePlayerState) => void;
1431
+ // (undocumented)
1432
+ time: (time: number) => void;
1433
+ }
1434
+
1435
+ // @public (undocumented)
1436
+ export interface CutscenePlayerOptions {
1437
+ fireEventsOnSeek?: boolean;
1438
+ // (undocumented)
1439
+ host: CutsceneHost;
1440
+ tick?: 'auto' | 'manual';
1441
+ // (undocumented)
1442
+ timeScale?: number;
1443
+ transitionShader?: (type: SceneTransitionType) => ZylemTransitionShader | undefined;
1444
+ }
1445
+
1446
+ // @public (undocumented)
1447
+ export type CutscenePlayerState = 'idle' | 'playing' | 'paused' | 'finished';
1448
+
1449
+ // @public
1450
+ export class CutscenePreviewController {
1451
+ // Warning: (ae-forgotten-export) The symbol "ZylemStage" needs to be exported by the entry point public.d.ts
1452
+ constructor(getStage: () => ZylemStage | null, publish: (status: CutsceneStatusPayload) => void, hostOptions?: StageCutsceneHostOptions, publishView?: ((view: CutsceneViewPayload) => void) | undefined);
1453
+ // (undocumented)
1454
+ get active(): boolean;
1455
+ cameraPose(): Omit<CameraPosePayload, 'requestId'> | null;
1456
+ frame(): void;
1457
+ // (undocumented)
1458
+ load(payload: CutsceneLoadPayload): void;
1459
+ // (undocumented)
1460
+ pause(): void;
1461
+ // (undocumented)
1462
+ play(from?: number): void;
1463
+ releaseStage(): void;
1464
+ // (undocumented)
1465
+ seek(time: number): void;
1466
+ stageReady(): void;
1467
+ // (undocumented)
1468
+ stop(): void;
1469
+ // (undocumented)
1470
+ unload(): void;
1471
+ }
1472
+
1473
+ // @public (undocumented)
1474
+ export type CutsceneScene = Static<typeof CutsceneSceneSchema>;
1475
+
1476
+ // @public (undocumented)
1477
+ export const CutsceneSceneSchema: _sinclair_typebox.TObject<{
1478
+ id: _sinclair_typebox.TString;
1479
+ name: _sinclair_typebox.TString;
1480
+ start: _sinclair_typebox.TNumber;
1481
+ end: _sinclair_typebox.TNumber;
1482
+ transitionIn: _sinclair_typebox.TObject<{
1483
+ type: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"cut">, _sinclair_typebox.TLiteral<"fade">, _sinclair_typebox.TLiteral<"wipe">, _sinclair_typebox.TLiteral<"radial">, _sinclair_typebox.TLiteral<"noise">, _sinclair_typebox.TLiteral<"cells">]>;
1484
+ duration: _sinclair_typebox.TNumber;
1485
+ easing: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"linear">, _sinclair_typebox.TLiteral<"easeIn">, _sinclair_typebox.TLiteral<"easeOut">, _sinclair_typebox.TLiteral<"easeInOut">]>;
1486
+ }>;
1487
+ }>;
1488
+
1489
+ // @public
1490
+ export type CutsceneStageLike = ZylemStage | Stage;
1491
+
1492
+ export { CutsceneStatusPayload }
1493
+
1494
+ // @public (undocumented)
1495
+ export type CutsceneTrack = Static<typeof CutsceneTrackSchema>;
1496
+
1497
+ // @public (undocumented)
1498
+ export const CutsceneTrackSchema: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
1499
+ kind: _sinclair_typebox.TLiteral<"camera">;
1500
+ id: _sinclair_typebox.TString;
1501
+ name: _sinclair_typebox.TString;
1502
+ items: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
1503
+ id: _sinclair_typebox.TString;
1504
+ cameraId: _sinclair_typebox.TString;
1505
+ start: _sinclair_typebox.TNumber;
1506
+ end: _sinclair_typebox.TNumber;
1507
+ blend: _sinclair_typebox.TObject<{
1508
+ duration: _sinclair_typebox.TNumber;
1509
+ easing: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"linear">, _sinclair_typebox.TLiteral<"easeIn">, _sinclair_typebox.TLiteral<"easeOut">, _sinclair_typebox.TLiteral<"easeInOut">]>;
1510
+ }>;
1511
+ }>>;
1512
+ }>, _sinclair_typebox.TObject<{
1513
+ kind: _sinclair_typebox.TLiteral<"event">;
1514
+ id: _sinclair_typebox.TString;
1515
+ name: _sinclair_typebox.TString;
1516
+ items: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
1517
+ id: _sinclair_typebox.TString;
1518
+ time: _sinclair_typebox.TNumber;
1519
+ event: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
1520
+ type: _sinclair_typebox.TLiteral<"emit">;
1521
+ name: _sinclair_typebox.TString;
1522
+ payload: _sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber, _sinclair_typebox.TBoolean]>>;
1523
+ }>, _sinclair_typebox.TObject<{
1524
+ type: _sinclair_typebox.TLiteral<"playAnimation">;
1525
+ entity: _sinclair_typebox.TString;
1526
+ key: _sinclair_typebox.TString;
1527
+ }>, _sinclair_typebox.TObject<{
1528
+ type: _sinclair_typebox.TLiteral<"playSong">;
1529
+ song: _sinclair_typebox.TString;
1530
+ loop: _sinclair_typebox.TBoolean;
1531
+ }>, _sinclair_typebox.TObject<{
1532
+ type: _sinclair_typebox.TLiteral<"stopSong">;
1533
+ song: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
1534
+ }>, _sinclair_typebox.TObject<{
1535
+ type: _sinclair_typebox.TLiteral<"setVariable">;
1536
+ name: _sinclair_typebox.TString;
1537
+ value: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber, _sinclair_typebox.TBoolean]>;
1538
+ }>]>;
1539
+ }>>;
1540
+ }>, _sinclair_typebox.TObject<{
1541
+ kind: _sinclair_typebox.TLiteral<"audio">;
1542
+ id: _sinclair_typebox.TString;
1543
+ name: _sinclair_typebox.TString;
1544
+ items: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
1545
+ id: _sinclair_typebox.TString;
1546
+ time: _sinclair_typebox.TNumber;
1547
+ kind: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"song">, _sinclair_typebox.TLiteral<"sfx">]>;
1548
+ ref: _sinclair_typebox.TString;
1549
+ loop: _sinclair_typebox.TBoolean;
1550
+ volume: _sinclair_typebox.TNumber;
1551
+ }>>;
1552
+ }>]>;
1553
+
1554
+ export { CutsceneViewPayload }
1555
+
984
1556
  // @public (undocumented)
985
1557
  export const CYLINDER_TYPE: unique symbol;
986
1558
 
@@ -994,6 +1566,9 @@ export function cylinderCollision(opts?: CylinderCollisionOptions): CollisionCom
994
1566
  // @public
995
1567
  export function cylinderMesh(opts?: CylinderMeshOptions): Mesh;
996
1568
 
1569
+ // @public (undocumented)
1570
+ export function dbToGain(db: number): number;
1571
+
997
1572
  // @public
998
1573
  export type DebugEntityResolver = (uuid: string) => GameEntity<any> | null;
999
1574
 
@@ -1070,16 +1645,52 @@ export const DISK_TYPE: unique symbol;
1070
1645
  // @public
1071
1646
  export function dispatchStageState(): void;
1072
1647
 
1648
+ // @public (undocumented)
1649
+ export type DollyPath = Static<typeof DollyPathSchema>;
1650
+
1651
+ // @public (undocumented)
1652
+ export const DollyPathSchema: _sinclair_typebox.TObject<{
1653
+ id: _sinclair_typebox.TString;
1654
+ name: _sinclair_typebox.TString;
1655
+ points: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
1656
+ x: _sinclair_typebox.TNumber;
1657
+ y: _sinclair_typebox.TNumber;
1658
+ z: _sinclair_typebox.TNumber;
1659
+ }>>;
1660
+ closed: _sinclair_typebox.TBoolean;
1661
+ tension: _sinclair_typebox.TNumber;
1662
+ }>;
1663
+
1664
+ // @public
1665
+ export function dollyPointAt(path: DollyPath, u: number): Vec3Def;
1666
+
1073
1667
  export { dot }
1074
1668
 
1669
+ // @public
1670
+ export function easeValue(easing: CutsceneEasing, t: number): number;
1671
+
1075
1672
  export { EditorToGameMessages }
1076
1673
 
1674
+ // Warning: (ae-forgotten-export) The symbol "EffectTypeSchema" needs to be exported by the entry point public.d.ts
1675
+ //
1676
+ // @public (undocumented)
1677
+ export type EffectType = Static<typeof EffectTypeSchema>;
1678
+
1077
1679
  export { emitRuntimeGoal }
1078
1680
 
1079
1681
  export { emitRuntimeRicochet }
1080
1682
 
1081
1683
  export { emitRuntimeTriggerRegionEnter }
1082
1684
 
1685
+ // @public (undocumented)
1686
+ export function encodeWav(buffer: PcmSource): ArrayBuffer;
1687
+
1688
+ // @public
1689
+ export function encodeWavBlob(buffer: PcmSource): Blob;
1690
+
1691
+ // @public
1692
+ export function ensureAudio(): Promise<ToneModule>;
1693
+
1083
1694
  export { EntityApplySwatchPayload }
1084
1695
 
1085
1696
  // @public (undocumented)
@@ -1273,9 +1884,30 @@ export interface EntityTypeMap {
1273
1884
  [ZONE_TYPE]: ZylemZone;
1274
1885
  }
1275
1886
 
1887
+ // Warning: (ae-forgotten-export) The symbol "EnvelopeSchema" needs to be exported by the entry point public.d.ts
1888
+ //
1889
+ // @public (undocumented)
1890
+ export type Envelope = Static<typeof EnvelopeSchema>;
1891
+
1276
1892
  // @public
1277
1893
  export function eulerToQuaternion(rotation: Vec3): Quat;
1278
1894
 
1895
+ // @public
1896
+ export function evaluateCameraPose(camera: CutsceneCamera, definition: Pick<CutsceneDefinition, 'dollies'>, shot: Pick<CameraShot, 'start' | 'end'>, time: number, lookup?: TargetLookup): EvaluatedPose;
1897
+
1898
+ // @public
1899
+ export function evaluateCutscene(definition: CutsceneDefinition, time: number, lookup?: TargetLookup): CutsceneFrame;
1900
+
1901
+ // @public (undocumented)
1902
+ export interface EvaluatedPose {
1903
+ // (undocumented)
1904
+ fov: number;
1905
+ // (undocumented)
1906
+ lookAt: Vec3Def;
1907
+ // (undocumented)
1908
+ position: Vec3Def;
1909
+ }
1910
+
1279
1911
  // @public
1280
1912
  export class EventEmitterDelegate<TEvents extends Record<string, unknown>> {
1281
1913
  constructor();
@@ -1285,6 +1917,40 @@ export class EventEmitterDelegate<TEvents extends Record<string, unknown>> {
1285
1917
  listenAll(handler: (type: keyof TEvents, payload: TEvents[keyof TEvents]) => void): () => void;
1286
1918
  }
1287
1919
 
1920
+ // @public (undocumented)
1921
+ export type EventItem = Static<typeof EventItemSchema>;
1922
+
1923
+ // @public (undocumented)
1924
+ export const EventItemSchema: _sinclair_typebox.TObject<{
1925
+ id: _sinclair_typebox.TString;
1926
+ time: _sinclair_typebox.TNumber;
1927
+ event: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
1928
+ type: _sinclair_typebox.TLiteral<"emit">;
1929
+ name: _sinclair_typebox.TString;
1930
+ payload: _sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber, _sinclair_typebox.TBoolean]>>;
1931
+ }>, _sinclair_typebox.TObject<{
1932
+ type: _sinclair_typebox.TLiteral<"playAnimation">;
1933
+ entity: _sinclair_typebox.TString;
1934
+ key: _sinclair_typebox.TString;
1935
+ }>, _sinclair_typebox.TObject<{
1936
+ type: _sinclair_typebox.TLiteral<"playSong">;
1937
+ song: _sinclair_typebox.TString;
1938
+ loop: _sinclair_typebox.TBoolean;
1939
+ }>, _sinclair_typebox.TObject<{
1940
+ type: _sinclair_typebox.TLiteral<"stopSong">;
1941
+ song: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
1942
+ }>, _sinclair_typebox.TObject<{
1943
+ type: _sinclair_typebox.TLiteral<"setVariable">;
1944
+ name: _sinclair_typebox.TString;
1945
+ value: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNumber, _sinclair_typebox.TBoolean]>;
1946
+ }>]>;
1947
+ }>;
1948
+
1949
+ // Warning: (ae-forgotten-export) The symbol "EventTrackSchema" needs to be exported by the entry point public.d.ts
1950
+ //
1951
+ // @public (undocumented)
1952
+ export type EventTrack = Static<typeof EventTrackSchema>;
1953
+
1288
1954
  export { exp }
1289
1955
 
1290
1956
  export { FacingAngle2DEntity }
@@ -1351,6 +2017,8 @@ export class FirstPersonPerspective implements CameraPerspective {
1351
2017
  look(deltaYaw: number, deltaPitch: number): void;
1352
2018
  lookAt(target: Vector3, lerpSpeed?: number): void;
1353
2019
  get pitch(): number;
2020
+ // (undocumented)
2021
+ readonly projection: "perspective";
1354
2022
  resetZoom(): void;
1355
2023
  setEyeHeight(height: number): void;
1356
2024
  setLook(yaw: number, pitch: number): void;
@@ -1387,6 +2055,8 @@ export class Fixed2DPerspective implements CameraPerspective {
1387
2055
  getBasePose(_ctx: CameraContext): CameraPose;
1388
2056
  // (undocumented)
1389
2057
  readonly id = "fixed-2d";
2058
+ // (undocumented)
2059
+ readonly projection: "orthographic";
1390
2060
  }
1391
2061
 
1392
2062
  export { float }
@@ -1414,6 +2084,9 @@ export { FractureOptions }
1414
2084
 
1415
2085
  export { FractureOptionsInput }
1416
2086
 
2087
+ // @public (undocumented)
2088
+ export function gainToDb(gain: number): number;
2089
+
1417
2090
  // Warning: (ae-forgotten-export) The symbol "IGame" needs to be exported by the entry point public.d.ts
1418
2091
  //
1419
2092
  // @public (undocumented)
@@ -1482,6 +2155,8 @@ export class GameBridge {
1482
2155
  publishCatalog(entities: EntityTypeDescriptor[]): void;
1483
2156
  // (undocumented)
1484
2157
  publishConfig(config: GameConfigPayload): void;
2158
+ publishCutsceneStatus(status: CutsceneStatusPayload): void;
2159
+ publishCutsceneView(view: CutsceneViewPayload): void;
1485
2160
  // (undocumented)
1486
2161
  publishLoading(payload: BridgeLoadingPayload): void;
1487
2162
  publishNotice(level: GameNoticePayload['level'], message: string): void;
@@ -1508,7 +2183,16 @@ export interface GameBridgeHost {
1508
2183
  applySwatches?(payload: EntityApplySwatchPayload & {
1509
2184
  opId: string;
1510
2185
  }): SwatchApplyOutcome;
2186
+ cameraPose?(): Omit<CameraPosePayload, 'requestId'> | null;
1511
2187
  createEntity?(typeId: string, props: Record<string, unknown> | undefined, pose: BridgePose | undefined): void;
2188
+ cutscene?: {
2189
+ load(payload: CutsceneLoadPayload): void;
2190
+ play(from?: number): void;
2191
+ pause(): void;
2192
+ stop(): void;
2193
+ seek(time: number): void;
2194
+ unload(): void;
2195
+ };
1512
2196
  pickEntity?(ndc: BridgeNdc): EntitySummaryPayload | null;
1513
2197
  resolveEntity(uuid: string): GameEntity<any> | null;
1514
2198
  setStageVariable?(key: string, value: unknown): void;
@@ -2141,6 +2825,9 @@ export { GameToEditorMessages }
2141
2825
 
2142
2826
  export { GameVariablePayload }
2143
2827
 
2828
+ // @public
2829
+ export function getActiveSongPlayer(): SongPlayer | null;
2830
+
2144
2831
  export { getCooldown }
2145
2832
 
2146
2833
  export { getCooldownStore }
@@ -2315,9 +3002,64 @@ export interface InputProvider {
2315
3002
  // @public (undocumented)
2316
3003
  export type Inputs = Record<InputPlayer, InputGamepad>;
2317
3004
 
3005
+ // @public
3006
+ export interface Instrument {
3007
+ // (undocumented)
3008
+ readonly definition: InstrumentDefinition;
3009
+ // (undocumented)
3010
+ dispose(): void;
3011
+ readonly output: ToneNs.ToneAudioNode;
3012
+ releaseAll(time?: number): void;
3013
+ trigger(pitch: number, duration: number, time?: number, velocity?: number): void;
3014
+ }
3015
+
3016
+ // @public (undocumented)
3017
+ export type InstrumentDefinition = Static<typeof InstrumentDefinitionSchema>;
3018
+
3019
+ // @public (undocumented)
3020
+ export const InstrumentDefinitionSchema: _sinclair_typebox.TObject<{
3021
+ id: _sinclair_typebox.TString;
3022
+ name: _sinclair_typebox.TString;
3023
+ preset: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"synth">, _sinclair_typebox.TLiteral<"polySynth">, _sinclair_typebox.TLiteral<"fmSynth">, _sinclair_typebox.TLiteral<"amSynth">, _sinclair_typebox.TLiteral<"membraneSynth">, _sinclair_typebox.TLiteral<"metalSynth">, _sinclair_typebox.TLiteral<"noiseSynth">, _sinclair_typebox.TLiteral<"pluckSynth">]>;
3024
+ oscillator: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"sine">, _sinclair_typebox.TLiteral<"square">, _sinclair_typebox.TLiteral<"sawtooth">, _sinclair_typebox.TLiteral<"triangle">]>>;
3025
+ envelope: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
3026
+ attack: _sinclair_typebox.TNumber;
3027
+ decay: _sinclair_typebox.TNumber;
3028
+ sustain: _sinclair_typebox.TNumber;
3029
+ release: _sinclair_typebox.TNumber;
3030
+ }>>;
3031
+ volume: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
3032
+ effects: _sinclair_typebox.TOptional<_sinclair_typebox.TArray<_sinclair_typebox.TObject<{
3033
+ id: _sinclair_typebox.TString;
3034
+ type: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"reverb">, _sinclair_typebox.TLiteral<"delay">, _sinclair_typebox.TLiteral<"distortion">, _sinclair_typebox.TLiteral<"filter">]>;
3035
+ wet: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
3036
+ options: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TString, _sinclair_typebox.TBoolean]>>>;
3037
+ }>>>;
3038
+ }>;
3039
+
3040
+ // @public (undocumented)
3041
+ export type InstrumentEffect = Static<typeof InstrumentEffectSchema>;
3042
+
3043
+ // @public (undocumented)
3044
+ export const InstrumentEffectSchema: _sinclair_typebox.TObject<{
3045
+ id: _sinclair_typebox.TString;
3046
+ type: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"reverb">, _sinclair_typebox.TLiteral<"delay">, _sinclair_typebox.TLiteral<"distortion">, _sinclair_typebox.TLiteral<"filter">]>;
3047
+ wet: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
3048
+ options: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TString, _sinclair_typebox.TBoolean]>>>;
3049
+ }>;
3050
+
3051
+ // @public (undocumented)
3052
+ export type InstrumentPreset = Static<typeof InstrumentPresetSchema>;
3053
+
3054
+ // @public
3055
+ export const InstrumentPresetSchema: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"synth">, _sinclair_typebox.TLiteral<"polySynth">, _sinclair_typebox.TLiteral<"fmSynth">, _sinclair_typebox.TLiteral<"amSynth">, _sinclair_typebox.TLiteral<"membraneSynth">, _sinclair_typebox.TLiteral<"metalSynth">, _sinclair_typebox.TLiteral<"noiseSynth">, _sinclair_typebox.TLiteral<"pluckSynth">]>;
3056
+
2318
3057
  // @public
2319
3058
  export function intersectPlane(ray: GizmoRay, origin: Vector3, normal: Vector3, target: Vector3): Vector3 | null;
2320
3059
 
3060
+ // @public
3061
+ export function isAudioReady(): boolean;
3062
+
2321
3063
  // @public
2322
3064
  export function isGLSLShader(shader: ZylemShader): shader is ZylemShaderObject;
2323
3065
 
@@ -2327,6 +3069,30 @@ export function isManagedRenderEntity(entity: {
2327
3069
  isBundled?: boolean;
2328
3070
  }): boolean;
2329
3071
 
3072
+ // @public
3073
+ export interface IsometricOptions {
3074
+ distance?: number;
3075
+ initialLookAt?: Vec3Input;
3076
+ initialPosition?: Vec3Input;
3077
+ targetKey?: string;
3078
+ zoom?: number;
3079
+ }
3080
+
3081
+ // @public
3082
+ export class IsometricPerspective implements CameraPerspective {
3083
+ constructor(options?: IsometricOptions);
3084
+ // (undocumented)
3085
+ readonly defaults: {
3086
+ damping: number;
3087
+ };
3088
+ // (undocumented)
3089
+ getBasePose(ctx: CameraContext): CameraPose;
3090
+ // (undocumented)
3091
+ readonly id = "isometric";
3092
+ // (undocumented)
3093
+ readonly projection: "orthographic";
3094
+ }
3095
+
2330
3096
  // @public (undocumented)
2331
3097
  export function isPickMode(): boolean;
2332
3098
 
@@ -2339,6 +3105,11 @@ export function isTSLShader(shader: ZylemShader): shader is ZylemTSLShader;
2339
3105
  // @public
2340
3106
  export function isWebGPUSupported(): Promise<boolean>;
2341
3107
 
3108
+ // @public
3109
+ export function itemsBetween<T extends {
3110
+ time: number;
3111
+ }>(items: readonly T[], from: number, to: number): T[];
3112
+
2342
3113
  // @public
2343
3114
  export function joystickBaseSvg(theme?: TouchThemeInput): string;
2344
3115
 
@@ -2396,6 +3167,12 @@ export const KeyboardMappingSchema: _sinclair_typebox.TRecord<_sinclair_typebox.
2396
3167
 
2397
3168
  export { length_2 as length }
2398
3169
 
3170
+ // @public (undocumented)
3171
+ export function lerpPose(a: EvaluatedPose, b: EvaluatedPose, t: number): EvaluatedPose;
3172
+
3173
+ // @public (undocumented)
3174
+ export function lerpVec3(a: Vec3Def, b: Vec3Def, t: number): Vec3Def;
3175
+
2399
3176
  // @public (undocumented)
2400
3177
  export const LIGHT_TYPE: unique symbol;
2401
3178
 
@@ -2455,11 +3232,23 @@ export type LoadingEvent = {
2455
3232
  current?: number;
2456
3233
  };
2457
3234
 
3235
+ // @public
3236
+ export function loadTone(): Promise<ToneModule>;
3237
+
2458
3238
  export { max }
2459
3239
 
3240
+ // @public
3241
+ export function measureObjectSelectionBounds(object: Object3D, target: Box3): Box3;
3242
+
2460
3243
  // @public
2461
3244
  export function mergeInputConfigs(...configs: GameInputConfig[]): GameInputConfig;
2462
3245
 
3246
+ // @public
3247
+ export function midiToFrequency(pitch: number): number;
3248
+
3249
+ // @public
3250
+ export function midiToNoteName(pitch: number): string;
3251
+
2463
3252
  export { min }
2464
3253
 
2465
3254
  export { mix }
@@ -2539,10 +3328,30 @@ export { MultidirectionalSpaceShooterInput }
2539
3328
  export { normalize }
2540
3329
 
2541
3330
  // @public (undocumented)
2542
- export function normalizeVec2(input?: Vec2Input | null, defaults?: Vec2Input | Partial<Vec2Components>): Vec2Components;
3331
+ export function normalizeVec2(input?: Vec2Input | null, defaults?: Vec2Input | Partial<Vec2Components>): Vec2Components;
3332
+
3333
+ // @public (undocumented)
3334
+ export function normalizeVec3(input?: Vec3Input | null, defaults?: Vec3Input | Partial<Vec3Components>): Vec3Components;
3335
+
3336
+ // @public (undocumented)
3337
+ export type NoteClip = Static<typeof NoteClipSchema>;
2543
3338
 
2544
3339
  // @public (undocumented)
2545
- export function normalizeVec3(input?: Vec3Input | null, defaults?: Vec3Input | Partial<Vec3Components>): Vec3Components;
3340
+ export const NoteClipSchema: _sinclair_typebox.TObject<{
3341
+ kind: _sinclair_typebox.TLiteral<"notes">;
3342
+ id: _sinclair_typebox.TString;
3343
+ trackId: _sinclair_typebox.TString;
3344
+ name: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
3345
+ start: _sinclair_typebox.TNumber;
3346
+ length: _sinclair_typebox.TNumber;
3347
+ notes: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
3348
+ id: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
3349
+ pitch: _sinclair_typebox.TInteger;
3350
+ start: _sinclair_typebox.TNumber;
3351
+ duration: _sinclair_typebox.TNumber;
3352
+ velocity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
3353
+ }>>;
3354
+ }>;
2546
3355
 
2547
3356
  // @public (undocumented)
2548
3357
  export const objectVertexShader = "\nuniform vec2 uvScale;\nvarying vec2 vUv;\n\nvoid main() {\n\tvUv = uv;\n\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\tgl_Position = projectionMatrix * mvPosition;\n}\n";
@@ -2590,9 +3399,18 @@ export type OpacityEntity = {
2590
3399
  mesh?: Object3D | null;
2591
3400
  };
2592
3401
 
3402
+ // Warning: (ae-forgotten-export) The symbol "OscillatorTypeSchema" needs to be exported by the entry point public.d.ts
3403
+ //
3404
+ // @public (undocumented)
3405
+ type OscillatorType_2 = Static<typeof OscillatorTypeSchema>;
3406
+ export { OscillatorType_2 as OscillatorType }
3407
+
2593
3408
  // @public
2594
3409
  export function packCollisionGroups(collisionType?: string, collisionFilter?: string[]): number;
2595
3410
 
3411
+ // @public
3412
+ export function padSelectionBounds(box: Box3): Box3;
3413
+
2596
3414
  // @public
2597
3415
  export function parallel(...actions: Action[]): Action;
2598
3416
 
@@ -2634,12 +3452,25 @@ export { ParticlePresetMaterialOptions }
2634
3452
  export { particlePresets }
2635
3453
 
2636
3454
  // @public
2637
- export type PerspectiveOptions = ThirdPersonOptions | Fixed2DOptions | FirstPersonOptions;
3455
+ export interface PcmSource {
3456
+ // (undocumented)
3457
+ getChannelData(channel: number): Float32Array;
3458
+ // (undocumented)
3459
+ length: number;
3460
+ // (undocumented)
3461
+ numberOfChannels: number;
3462
+ // (undocumented)
3463
+ sampleRate: number;
3464
+ }
3465
+
3466
+ // @public
3467
+ export type PerspectiveOptions = ThirdPersonOptions | Fixed2DOptions | FirstPersonOptions | IsometricOptions | TopDownOptions | SecondPersonOptions;
2638
3468
 
2639
3469
  // @public (undocumented)
2640
3470
  export const Perspectives: {
2641
3471
  readonly FirstPerson: "first-person";
2642
3472
  readonly ThirdPerson: "third-person";
3473
+ readonly SecondPerson: "second-person";
2643
3474
  readonly Isometric: "isometric";
2644
3475
  readonly Flat2D: "flat-2d";
2645
3476
  readonly Fixed2D: "fixed-2d";
@@ -2684,6 +3515,19 @@ export const PLANE_TYPE: unique symbol;
2684
3515
  // @public
2685
3516
  export function planeCollision(opts?: PlaneCollisionOptions): CollisionComponent;
2686
3517
 
3518
+ // @public
3519
+ export type PlatformAxisMode = 'delay' | 'settle' | 'off';
3520
+
3521
+ // @public (undocumented)
3522
+ export interface PlatformAxisModes {
3523
+ // (undocumented)
3524
+ x?: PlatformAxisMode;
3525
+ // (undocumented)
3526
+ y?: PlatformAxisMode;
3527
+ // (undocumented)
3528
+ z?: PlatformAxisMode;
3529
+ }
3530
+
2687
3531
  export { Platformer2DBehavior }
2688
3532
 
2689
3533
  export { Platformer2DBehaviorOptions }
@@ -2728,6 +3572,18 @@ export { Platformer3DStateComponent }
2728
3572
 
2729
3573
  export { PlatformerCollisionContext }
2730
3574
 
3575
+ // @public
3576
+ export interface PlatformFollowOptions {
3577
+ axes?: PlatformAxisModes;
3578
+ lerpFactor?: number;
3579
+ lookahead?: number;
3580
+ settleLerp?: number;
3581
+ settleSpeed?: number;
3582
+ settleTime?: number;
3583
+ targetKey?: string;
3584
+ window?: number;
3585
+ }
3586
+
2731
3587
  export { PlayerInput }
2732
3588
 
2733
3589
  // @public (undocumented)
@@ -2763,6 +3619,9 @@ export { PrebakeWorkerRequest }
2763
3619
 
2764
3620
  export { PrebakeWorkerResponse }
2765
3621
 
3622
+ // @public
3623
+ export function previousShot(definition: CutsceneDefinition, shot: CameraShot): CameraShot | undefined;
3624
+
2766
3625
  // @public (undocumented)
2767
3626
  export const PYRAMID_TYPE: unique symbol;
2768
3627
 
@@ -2824,6 +3683,19 @@ export class RenderBundleManager {
2824
3683
  // @public
2825
3684
  export type RenderCategory = 'none' | 'environment' | 'pack';
2826
3685
 
3686
+ // @public
3687
+ export function renderSong(song: SongDefinition, options?: RenderSongOptions): Promise<AudioBuffer>;
3688
+
3689
+ // @public (undocumented)
3690
+ export interface RenderSongOptions {
3691
+ // (undocumented)
3692
+ resolveUrl?: (url: string) => string;
3693
+ // (undocumented)
3694
+ sampleRate?: number;
3695
+ tail?: number;
3696
+ trackIds?: Iterable<string>;
3697
+ }
3698
+
2827
3699
  // @public
2828
3700
  export class RenderStrategyManager {
2829
3701
  // (undocumented)
@@ -2893,6 +3765,9 @@ export interface ResolveGameConfigRuntime {
2893
3765
  // @public
2894
3766
  export function resolveRenderCategory(options?: RenderCategoryOptions | null): RenderCategory;
2895
3767
 
3768
+ // @public
3769
+ export function resolveSelectionBounds(entity: unknown, target: Box3): Box3 | null;
3770
+
2896
3771
  // @public
2897
3772
  export function resolveTouchTheme(input?: TouchTheme | TouchThemeName): TouchTheme;
2898
3773
 
@@ -3081,6 +3956,66 @@ export { RuntimeTriggerRegion2DHandle }
3081
3956
 
3082
3957
  export { RuntimeTriggerRegion2DOptions }
3083
3958
 
3959
+ // @public
3960
+ export function sampleDollyPath(path: DollyPath, segments?: number): Vec3Def[];
3961
+
3962
+ // @public
3963
+ export function sceneAt(scenes: readonly CutsceneScene[], time: number): CutsceneScene | undefined;
3964
+
3965
+ // @public (undocumented)
3966
+ export type SceneTransition = Static<typeof SceneTransitionSchema>;
3967
+
3968
+ // @public (undocumented)
3969
+ export const SceneTransitionSchema: _sinclair_typebox.TObject<{
3970
+ type: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"cut">, _sinclair_typebox.TLiteral<"fade">, _sinclair_typebox.TLiteral<"wipe">, _sinclair_typebox.TLiteral<"radial">, _sinclair_typebox.TLiteral<"noise">, _sinclair_typebox.TLiteral<"cells">]>;
3971
+ duration: _sinclair_typebox.TNumber;
3972
+ easing: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"linear">, _sinclair_typebox.TLiteral<"easeIn">, _sinclair_typebox.TLiteral<"easeOut">, _sinclair_typebox.TLiteral<"easeInOut">]>;
3973
+ }>;
3974
+
3975
+ // Warning: (ae-forgotten-export) The symbol "SceneTransitionTypeSchema" needs to be exported by the entry point public.d.ts
3976
+ //
3977
+ // @public (undocumented)
3978
+ export type SceneTransitionType = Static<typeof SceneTransitionTypeSchema>;
3979
+
3980
+ // @public (undocumented)
3981
+ export interface ScheduledAudio {
3982
+ // (undocumented)
3983
+ clipId: string;
3984
+ duration: number;
3985
+ gain: number;
3986
+ offset: number;
3987
+ time: number;
3988
+ // (undocumented)
3989
+ trackId: string;
3990
+ // (undocumented)
3991
+ url: string;
3992
+ }
3993
+
3994
+ // @public (undocumented)
3995
+ export interface ScheduledNote {
3996
+ // (undocumented)
3997
+ clipId: string;
3998
+ duration: number;
3999
+ // (undocumented)
4000
+ instrumentId: string;
4001
+ // (undocumented)
4002
+ pitch: number;
4003
+ time: number;
4004
+ // (undocumented)
4005
+ trackId: string;
4006
+ // (undocumented)
4007
+ velocity: number;
4008
+ }
4009
+
4010
+ // @public (undocumented)
4011
+ export interface ScheduleOptions {
4012
+ ignoreMix?: boolean;
4013
+ trackIds?: Iterable<string>;
4014
+ }
4015
+
4016
+ // @public
4017
+ export function scheduleSong(song: SongDefinition, options?: ScheduleOptions): SongSchedule;
4018
+
3084
4019
  // @public
3085
4020
  export type ScreenAnchor = 'top-left' | 'top-center' | 'top-right' | 'center-left' | 'center' | 'center-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
3086
4021
 
@@ -3132,6 +4067,52 @@ export { ScreenWrapOptions }
3132
4067
 
3133
4068
  export { ScreenWrapState }
3134
4069
 
4070
+ // @public
4071
+ export interface SecondPersonOptions {
4072
+ anchorKey?: string;
4073
+ eyeHeight?: number;
4074
+ fov?: number;
4075
+ initialLookAt?: Vec3Input;
4076
+ initialPosition?: Vec3Input;
4077
+ subjectKey?: string;
4078
+ }
4079
+
4080
+ // @public
4081
+ export class SecondPersonPerspective implements CameraPerspective {
4082
+ constructor(options?: SecondPersonOptions);
4083
+ // (undocumented)
4084
+ readonly defaults: {
4085
+ damping: number;
4086
+ };
4087
+ // (undocumented)
4088
+ getBasePose(ctx: CameraContext): CameraPose;
4089
+ // (undocumented)
4090
+ readonly id = "second-person";
4091
+ // (undocumented)
4092
+ readonly projection: "perspective";
4093
+ }
4094
+
4095
+ // @public (undocumented)
4096
+ export function secondsToBeats(seconds: number, bpm: number): number;
4097
+
4098
+ // @public
4099
+ export const SELECTION_BOUNDS_MARGIN = 0.02;
4100
+
4101
+ // @public
4102
+ export const SELECTION_THIN_AXIS_FRACTION = 0.05;
4103
+
4104
+ // @public (undocumented)
4105
+ export const SELECTION_THIN_AXIS_MAX = 1;
4106
+
4107
+ // @public
4108
+ export const SELECTION_THIN_AXIS_MIN = 0.1;
4109
+
4110
+ // @public
4111
+ export interface SelectionBoundsProvider {
4112
+ // (undocumented)
4113
+ getSelectionBounds(target: Box3): Box3 | null;
4114
+ }
4115
+
3135
4116
  export { SemanticParticlePresetOptions }
3136
4117
 
3137
4118
  // @public
@@ -3143,6 +4124,9 @@ export function setAddType(typeId: string | null, props?: Record<string, unknown
3143
4124
  // @public
3144
4125
  export function setCameraFeed(entity: StageEntity, camera: CameraWrapper, options?: CameraFeedOptions): void;
3145
4126
 
4127
+ // @public
4128
+ export function setCutsceneTransitionShaders(resolver: ((type: SceneTransitionType) => ZylemTransitionShader | undefined) | null): void;
4129
+
3146
4130
  // @public (undocumented)
3147
4131
  export function setDebugTool(tool: DebugTools): void;
3148
4132
 
@@ -3256,6 +4240,14 @@ export { Shooter2DTarget }
3256
4240
  // @public
3257
4241
  export function shortestAngleDelta(from: number, to: number): number;
3258
4242
 
4243
+ // @public
4244
+ export function shotAt(shots: readonly CameraShot[], time: number): CameraShot | undefined;
4245
+
4246
+ // Warning: (ae-forgotten-export) The symbol "ShotBlendSchema" needs to be exported by the entry point public.d.ts
4247
+ //
4248
+ // @public (undocumented)
4249
+ export type ShotBlend = Static<typeof ShotBlendSchema>;
4250
+
3259
4251
  export { Simulation }
3260
4252
 
3261
4253
  // Warning: (ae-forgotten-export) The symbol "PhysicsRenderPoseProvider" needs to be exported by the entry point public.d.ts
@@ -3361,6 +4353,218 @@ export function snapToIncrement(value: number, increment: number): number;
3361
4353
  // @public
3362
4354
  export function snapVec3(value: Vec3, increment: number): Vec3;
3363
4355
 
4356
+ // @public (undocumented)
4357
+ export type SongClip = Static<typeof SongClipSchema>;
4358
+
4359
+ // @public (undocumented)
4360
+ export const SongClipSchema: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
4361
+ kind: _sinclair_typebox.TLiteral<"notes">;
4362
+ id: _sinclair_typebox.TString;
4363
+ trackId: _sinclair_typebox.TString;
4364
+ name: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
4365
+ start: _sinclair_typebox.TNumber;
4366
+ length: _sinclair_typebox.TNumber;
4367
+ notes: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
4368
+ id: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
4369
+ pitch: _sinclair_typebox.TInteger;
4370
+ start: _sinclair_typebox.TNumber;
4371
+ duration: _sinclair_typebox.TNumber;
4372
+ velocity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
4373
+ }>>;
4374
+ }>, _sinclair_typebox.TObject<{
4375
+ kind: _sinclair_typebox.TLiteral<"audio">;
4376
+ id: _sinclair_typebox.TString;
4377
+ trackId: _sinclair_typebox.TString;
4378
+ name: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
4379
+ url: _sinclair_typebox.TString;
4380
+ start: _sinclair_typebox.TNumber;
4381
+ offset: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
4382
+ length: _sinclair_typebox.TNumber;
4383
+ gain: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
4384
+ }>]>;
4385
+
4386
+ // @public (undocumented)
4387
+ export type SongDefinition = Static<typeof SongDefinitionSchema>;
4388
+
4389
+ // @public (undocumented)
4390
+ export const SongDefinitionSchema: _sinclair_typebox.TObject<{
4391
+ id: _sinclair_typebox.TString;
4392
+ name: _sinclair_typebox.TString;
4393
+ bpm: _sinclair_typebox.TNumber;
4394
+ timeSignature: _sinclair_typebox.TObject<{
4395
+ numerator: _sinclair_typebox.TInteger;
4396
+ denominator: _sinclair_typebox.TInteger;
4397
+ }>;
4398
+ lengthBars: _sinclair_typebox.TInteger;
4399
+ loop: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
4400
+ enabled: _sinclair_typebox.TBoolean;
4401
+ start: _sinclair_typebox.TNumber;
4402
+ end: _sinclair_typebox.TNumber;
4403
+ }>>;
4404
+ instruments: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
4405
+ id: _sinclair_typebox.TString;
4406
+ name: _sinclair_typebox.TString;
4407
+ preset: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"synth">, _sinclair_typebox.TLiteral<"polySynth">, _sinclair_typebox.TLiteral<"fmSynth">, _sinclair_typebox.TLiteral<"amSynth">, _sinclair_typebox.TLiteral<"membraneSynth">, _sinclair_typebox.TLiteral<"metalSynth">, _sinclair_typebox.TLiteral<"noiseSynth">, _sinclair_typebox.TLiteral<"pluckSynth">]>;
4408
+ oscillator: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"sine">, _sinclair_typebox.TLiteral<"square">, _sinclair_typebox.TLiteral<"sawtooth">, _sinclair_typebox.TLiteral<"triangle">]>>;
4409
+ envelope: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
4410
+ attack: _sinclair_typebox.TNumber;
4411
+ decay: _sinclair_typebox.TNumber;
4412
+ sustain: _sinclair_typebox.TNumber;
4413
+ release: _sinclair_typebox.TNumber;
4414
+ }>>;
4415
+ volume: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
4416
+ effects: _sinclair_typebox.TOptional<_sinclair_typebox.TArray<_sinclair_typebox.TObject<{
4417
+ id: _sinclair_typebox.TString;
4418
+ type: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"reverb">, _sinclair_typebox.TLiteral<"delay">, _sinclair_typebox.TLiteral<"distortion">, _sinclair_typebox.TLiteral<"filter">]>;
4419
+ wet: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
4420
+ options: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TString, _sinclair_typebox.TBoolean]>>>;
4421
+ }>>>;
4422
+ }>>;
4423
+ tracks: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
4424
+ id: _sinclair_typebox.TString;
4425
+ name: _sinclair_typebox.TString;
4426
+ kind: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"instrument">, _sinclair_typebox.TLiteral<"audio">]>;
4427
+ instrumentId: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
4428
+ color: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
4429
+ volume: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
4430
+ pan: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
4431
+ mute: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
4432
+ solo: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
4433
+ }>>;
4434
+ clips: _sinclair_typebox.TArray<_sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
4435
+ kind: _sinclair_typebox.TLiteral<"notes">;
4436
+ id: _sinclair_typebox.TString;
4437
+ trackId: _sinclair_typebox.TString;
4438
+ name: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
4439
+ start: _sinclair_typebox.TNumber;
4440
+ length: _sinclair_typebox.TNumber;
4441
+ notes: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
4442
+ id: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
4443
+ pitch: _sinclair_typebox.TInteger;
4444
+ start: _sinclair_typebox.TNumber;
4445
+ duration: _sinclair_typebox.TNumber;
4446
+ velocity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
4447
+ }>>;
4448
+ }>, _sinclair_typebox.TObject<{
4449
+ kind: _sinclair_typebox.TLiteral<"audio">;
4450
+ id: _sinclair_typebox.TString;
4451
+ trackId: _sinclair_typebox.TString;
4452
+ name: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
4453
+ url: _sinclair_typebox.TString;
4454
+ start: _sinclair_typebox.TNumber;
4455
+ offset: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
4456
+ length: _sinclair_typebox.TNumber;
4457
+ gain: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
4458
+ }>]>>;
4459
+ masterVolume: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
4460
+ }>;
4461
+
4462
+ // @public (undocumented)
4463
+ export function songLengthBeats(song: Pick<SongDefinition, 'lengthBars' | 'timeSignature'>): number;
4464
+
4465
+ // @public (undocumented)
4466
+ export function songLengthSeconds(song: Pick<SongDefinition, 'lengthBars' | 'timeSignature' | 'bpm'>): number;
4467
+
4468
+ // @public (undocumented)
4469
+ export type SongLoop = Static<typeof SongLoopSchema>;
4470
+
4471
+ // @public (undocumented)
4472
+ export const SongLoopSchema: _sinclair_typebox.TObject<{
4473
+ enabled: _sinclair_typebox.TBoolean;
4474
+ start: _sinclair_typebox.TNumber;
4475
+ end: _sinclair_typebox.TNumber;
4476
+ }>;
4477
+
4478
+ // @public (undocumented)
4479
+ export type SongNote = Static<typeof SongNoteSchema>;
4480
+
4481
+ // @public (undocumented)
4482
+ export const SongNoteSchema: _sinclair_typebox.TObject<{
4483
+ id: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
4484
+ pitch: _sinclair_typebox.TInteger;
4485
+ start: _sinclair_typebox.TNumber;
4486
+ duration: _sinclair_typebox.TNumber;
4487
+ velocity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
4488
+ }>;
4489
+
4490
+ // @public (undocumented)
4491
+ export interface SongPlayer {
4492
+ // (undocumented)
4493
+ readonly definition: SongDefinition;
4494
+ // (undocumented)
4495
+ dispose(): void;
4496
+ // (undocumented)
4497
+ on<K extends keyof SongPlayerEvents>(event: K, handler: SongPlayerEvents[K]): () => void;
4498
+ // (undocumented)
4499
+ pause(): void;
4500
+ play(fromBeat?: number): Promise<void>;
4501
+ position(): number;
4502
+ preview(trackId: string, pitch: number, duration?: number, velocity?: number): Promise<void>;
4503
+ readonly ready: Promise<void>;
4504
+ seconds(): number;
4505
+ // (undocumented)
4506
+ seek(beat: number): void;
4507
+ // (undocumented)
4508
+ setBpm(bpm: number): void;
4509
+ // (undocumented)
4510
+ setLoop(loop: SongLoop | null): void;
4511
+ setMasterVolume(volume: number): void;
4512
+ // (undocumented)
4513
+ setTrackMute(trackId: string, mute: boolean): void;
4514
+ // (undocumented)
4515
+ setTrackPan(trackId: string, pan: number): void;
4516
+ // (undocumented)
4517
+ setTrackSolo(trackId: string, solo: boolean): void;
4518
+ setTrackVolume(trackId: string, volume: number): void;
4519
+ // (undocumented)
4520
+ readonly state: SongPlayerState;
4521
+ stop(): void;
4522
+ update(definition: SongDefinition): Promise<void>;
4523
+ }
4524
+
4525
+ // @public (undocumented)
4526
+ export interface SongPlayerEvents {
4527
+ bar: (bar: number) => void;
4528
+ beat: (beat: number) => void;
4529
+ complete: () => void;
4530
+ // (undocumented)
4531
+ state: (state: SongPlayerState) => void;
4532
+ }
4533
+
4534
+ // @public (undocumented)
4535
+ export interface SongPlayerOptions {
4536
+ destination?: ToneNs.InputNode;
4537
+ resolveUrl?: (url: string) => string;
4538
+ }
4539
+
4540
+ // @public (undocumented)
4541
+ export type SongPlayerState = 'stopped' | 'playing' | 'paused';
4542
+
4543
+ // @public (undocumented)
4544
+ export interface SongSchedule {
4545
+ // (undocumented)
4546
+ audio: ScheduledAudio[];
4547
+ length: number;
4548
+ // (undocumented)
4549
+ notes: ScheduledNote[];
4550
+ }
4551
+
4552
+ // @public (undocumented)
4553
+ export type SongTrack = Static<typeof SongTrackSchema>;
4554
+
4555
+ // @public (undocumented)
4556
+ export const SongTrackSchema: _sinclair_typebox.TObject<{
4557
+ id: _sinclair_typebox.TString;
4558
+ name: _sinclair_typebox.TString;
4559
+ kind: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"instrument">, _sinclair_typebox.TLiteral<"audio">]>;
4560
+ instrumentId: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
4561
+ color: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
4562
+ volume: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
4563
+ pan: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
4564
+ mute: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
4565
+ solo: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
4566
+ }>;
4567
+
3364
4568
  // @public (undocumented)
3365
4569
  export const SPHERE_TYPE: unique symbol;
3366
4570
 
@@ -3491,6 +4695,13 @@ export type StageConfigLike = Partial<{
3491
4695
 
3492
4696
  export { StageConfigPayload }
3493
4697
 
4698
+ // @public (undocumented)
4699
+ export interface StageCutsceneHostOptions {
4700
+ onEvent?: (name: string, payload: Record<string, unknown>) => void;
4701
+ resolveSong?: (ref: string) => SongDefinition | Promise<SongDefinition | undefined> | undefined;
4702
+ transitionShader?: (type: SceneTransitionType) => ZylemTransitionShader | undefined;
4703
+ }
4704
+
3494
4705
  export { StageDebugRender }
3495
4706
 
3496
4707
  // Warning: (ae-forgotten-export) The symbol "Entity" needs to be exported by the entry point public.d.ts
@@ -3695,6 +4906,42 @@ export const standardShader: {
3695
4906
 
3696
4907
  export { step }
3697
4908
 
4909
+ // @public (undocumented)
4910
+ export interface StrategyPanBehavior extends CameraBehavior {
4911
+ setFollowKey(key: string | null): void;
4912
+ }
4913
+
4914
+ // @public
4915
+ export interface StrategyPanInput {
4916
+ pan?: {
4917
+ x: number;
4918
+ y: number;
4919
+ };
4920
+ // (undocumented)
4921
+ pointer?: StrategyPointer;
4922
+ }
4923
+
4924
+ // @public (undocumented)
4925
+ export interface StrategyPanOptions {
4926
+ breakFollowOnPan?: boolean;
4927
+ edgeMargin?: number;
4928
+ edgeSpeed?: number;
4929
+ followKey?: string | null;
4930
+ followLerp?: number;
4931
+ panSpeed?: number;
4932
+ sampleInput?: () => StrategyPanInput;
4933
+ }
4934
+
4935
+ // @public
4936
+ export interface StrategyPointer {
4937
+ // (undocumented)
4938
+ centered?: boolean;
4939
+ // (undocumented)
4940
+ x: number;
4941
+ // (undocumented)
4942
+ y: number;
4943
+ }
4944
+
3698
4945
  export { SwatchApplyFailureReason }
3699
4946
 
3700
4947
  // @public
@@ -3711,6 +4958,9 @@ export { SwatchKind }
3711
4958
 
3712
4959
  export { SwatchSpec }
3713
4960
 
4961
+ // @public
4962
+ export type TargetLookup = (name: string) => Vec3Def | undefined;
4963
+
3714
4964
  // @public
3715
4965
  export interface TemplateFactory<E extends GameEntity<O>, O extends GameEntityOptions = GameEntityOptions> {
3716
4966
  generate(count: number): E[];
@@ -3756,6 +5006,8 @@ export class ThirdPersonPerspective implements CameraPerspective {
3756
5006
  getBasePose(ctx: CameraContext): CameraPose;
3757
5007
  // (undocumented)
3758
5008
  readonly id = "third-person";
5009
+ // (undocumented)
5010
+ readonly projection: "perspective";
3759
5011
  }
3760
5012
 
3761
5013
  // Warning: (ae-forgotten-export) The symbol "ThrottleAction" needs to be exported by the entry point public.d.ts
@@ -3792,6 +5044,18 @@ export { tickCooldowns }
3792
5044
 
3793
5045
  export { time }
3794
5046
 
5047
+ // @public (undocumented)
5048
+ export type TimeSignature = Static<typeof TimeSignatureSchema>;
5049
+
5050
+ // @public (undocumented)
5051
+ export const TimeSignatureSchema: _sinclair_typebox.TObject<{
5052
+ numerator: _sinclair_typebox.TInteger;
5053
+ denominator: _sinclair_typebox.TInteger;
5054
+ }>;
5055
+
5056
+ // @public
5057
+ export type ToneModule = typeof ToneNs;
5058
+
3795
5059
  export { TopDownMovementBehavior }
3796
5060
 
3797
5061
  export { TopDownMovementBehaviorOptions }
@@ -3806,6 +5070,30 @@ export { TopDownMovementInputComponent }
3806
5070
 
3807
5071
  export { TopDownMovementStateComponent }
3808
5072
 
5073
+ // @public
5074
+ export interface TopDownOptions {
5075
+ height?: number;
5076
+ initialLookAt?: Vec3Input;
5077
+ initialPosition?: Vec3Input;
5078
+ targetKey?: string;
5079
+ zoom?: number;
5080
+ }
5081
+
5082
+ // @public
5083
+ export class TopDownPerspective implements CameraPerspective {
5084
+ constructor(options?: TopDownOptions);
5085
+ // (undocumented)
5086
+ readonly defaults: {
5087
+ damping: number;
5088
+ };
5089
+ // (undocumented)
5090
+ getBasePose(ctx: CameraContext): CameraPose;
5091
+ // (undocumented)
5092
+ readonly id = "top-down";
5093
+ // (undocumented)
5094
+ readonly projection: "orthographic";
5095
+ }
5096
+
3809
5097
  export { TopDownShooterCoordinator }
3810
5098
 
3811
5099
  export { TopDownShooterEntity }
@@ -4019,6 +5307,11 @@ export type Vec3Components = {
4019
5307
  // @public
4020
5308
  export const Vec3ComponentsSchema: _sinclair_typebox.TTuple<[_sinclair_typebox.TNumber, _sinclair_typebox.TNumber, _sinclair_typebox.TNumber]>;
4021
5309
 
5310
+ // Warning: (ae-forgotten-export) The symbol "Vec3Schema" needs to be exported by the entry point public.d.ts
5311
+ //
5312
+ // @public (undocumented)
5313
+ export type Vec3Def = Static<typeof Vec3Schema>;
5314
+
4022
5315
  // Warning: (ae-forgotten-export) The symbol "Vec3Tuple" needs to be exported by the entry point public.d.ts
4023
5316
  //
4024
5317
  // @public (undocumented)
@@ -4653,7 +5946,7 @@ export type ZylemLineOptions = GameEntityOptions & {
4653
5946
  };
4654
5947
 
4655
5948
  // @public (undocumented)
4656
- export class ZylemParticleSystem extends GameEntity<ZylemParticleSystemOptions> {
5949
+ export class ZylemParticleSystem extends GameEntity<ZylemParticleSystemOptions> implements SelectionBoundsProvider {
4657
5950
  constructor(options?: Partial<ZylemParticleSystemOptions>, initializeBehavior?: boolean);
4658
5951
  // (undocumented)
4659
5952
  __zylemParticleSystemEntity: true;
@@ -4661,6 +5954,7 @@ export class ZylemParticleSystem extends GameEntity<ZylemParticleSystemOptions>
4661
5954
  buildInfo(): Record<string, string>;
4662
5955
  // (undocumented)
4663
5956
  burst(): void;
5957
+ getSelectionBounds(target: Box3): Box3 | null;
4664
5958
  // (undocumented)
4665
5959
  getSystem(): ParticleEmitterHandle_2['getSystem'] extends () => infer T ? T : null;
4666
5960
  // (undocumented)
@@ -4847,12 +6141,13 @@ export type ZylemTSLShader = {
4847
6141
  // Warning: (ae-forgotten-export) The symbol "CollisionHandlerDelegate" needs to be exported by the entry point public.d.ts
4848
6142
  //
4849
6143
  // @public (undocumented)
4850
- export class ZylemZone extends GameEntity<ZylemZoneOptions> implements CollisionHandlerDelegate {
6144
+ export class ZylemZone extends GameEntity<ZylemZoneOptions> implements CollisionHandlerDelegate, SelectionBoundsProvider {
4851
6145
  constructor(options?: ZylemZoneOptions);
4852
6146
  // (undocumented)
4853
6147
  entered(other: any): void;
4854
6148
  // (undocumented)
4855
6149
  exited(delta: number, key: string): void;
6150
+ getSelectionBounds(target: Box3): Box3 | null;
4856
6151
  // (undocumented)
4857
6152
  handleIntersectionEvent(input: {
4858
6153
  other: any;
@@ -4883,8 +6178,8 @@ export class ZylemZone extends GameEntity<ZylemZoneOptions> implements Collision
4883
6178
  // dist/entity-XqvuWgPm.d.ts:343:9 - (ae-forgotten-export) The symbol "EntityMeshBuilder" needs to be exported by the entry point public.d.ts
4884
6179
  // dist/entity-XqvuWgPm.d.ts:344:9 - (ae-forgotten-export) The symbol "EntityCollisionBuilder" needs to be exported by the entry point public.d.ts
4885
6180
  // dist/entity-XqvuWgPm.d.ts:345:9 - (ae-forgotten-export) The symbol "MaterialBuilder" needs to be exported by the entry point public.d.ts
4886
- // dist/game-DyKbOeck.d.ts:1097:5 - (ae-forgotten-export) The symbol "StageAssetLoaderConfig" needs to be exported by the entry point public.d.ts
4887
- // dist/game-DyKbOeck.d.ts:1796:5 - (ae-forgotten-export) The symbol "StageInterface" needs to be exported by the entry point public.d.ts
6181
+ // dist/game-D8KTP3fD.d.ts:258:5 - (ae-forgotten-export) The symbol "StageInterface" needs to be exported by the entry point public.d.ts
6182
+ // dist/stage-CAPlk_cN.d.ts:1117:5 - (ae-forgotten-export) The symbol "StageAssetLoaderConfig" needs to be exported by the entry point public.d.ts
4888
6183
 
4889
6184
  // (No @packageDocumentation comment for this package)
4890
6185