@zephyr3d/scene 0.9.8 → 0.9.10

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
@@ -9719,6 +9719,50 @@ type NamedJointsSkeletalAnimationMaskOptions = SkeletalAnimationMaskCommonOption
9719
9719
  /** @public */
9720
9720
  type SkeletalAnimationMaskOptions = HumanoidSkeletalAnimationMaskOptions | NamedJointsSkeletalAnimationMaskOptions;
9721
9721
 
9722
+ /**
9723
+ * How a new playback copies phase from an existing active playback.
9724
+ *
9725
+ * - `'normalized'`: copy the source playback's normalized phase and map it into the new clip.
9726
+ * - `'time'`: copy the source playback's time in seconds.
9727
+ *
9728
+ * @public
9729
+ */
9730
+ type AnimationPlaybackSyncMode = 'normalized' | 'time';
9731
+ /**
9732
+ * Options for starting a playback at the same phase as another active playback.
9733
+ *
9734
+ * Use this when switching between matching locomotion clips, upper/lower body clips, or a
9735
+ * layered setup and a full-body clip that must stay phase-aligned.
9736
+ *
9737
+ * @public
9738
+ */
9739
+ type AnimationPlaybackSyncOptions = {
9740
+ /**
9741
+ * Active playback to synchronize with.
9742
+ *
9743
+ * The value is resolved as an active clip name first, then as an active playback id. Timeline
9744
+ * `play` steps also resolve local `id` references before forwarding the options to
9745
+ * `AnimationSet`.
9746
+ */
9747
+ target: string;
9748
+ /**
9749
+ * Synchronization mode. Defaults to `'normalized'`.
9750
+ */
9751
+ mode?: AnimationPlaybackSyncMode;
9752
+ /**
9753
+ * Optional phase offset.
9754
+ *
9755
+ * In `'normalized'` mode this is a normalized phase offset where 1 is one full cycle. In
9756
+ * `'time'` mode this is an offset in seconds.
9757
+ */
9758
+ offset?: number;
9759
+ /**
9760
+ * Whether the synchronized time wraps into the destination clip or range. Defaults to true.
9761
+ *
9762
+ * Set to false to clamp the initial time to the destination clip or range.
9763
+ */
9764
+ wrap?: boolean;
9765
+ };
9722
9766
  /**
9723
9767
  * Options for playing an animation.
9724
9768
  *
@@ -9749,6 +9793,14 @@ type PlayAnimationOptions = {
9749
9793
  * Default is 0 (no fade-in).
9750
9794
  */
9751
9795
  fadeIn?: number;
9796
+ /**
9797
+ * Fade-out duration in seconds used after the playback completes naturally.
9798
+ *
9799
+ * When greater than 0, the playback emits `complete` at the authored end time but remains active
9800
+ * for this duration while its weight fades to 0. This lets a following playback cross-fade from
9801
+ * the completed pose instead of snapping after the completed clip is removed.
9802
+ */
9803
+ completionFadeOut?: number;
9752
9804
  /**
9753
9805
  * Weight of the animation clip.
9754
9806
  *
@@ -9756,6 +9808,37 @@ type PlayAnimationOptions = {
9756
9808
  * Default is the clip's configured weight.
9757
9809
  */
9758
9810
  weight?: number;
9811
+ /**
9812
+ * Optional stable playback id. Useful for blueprint/editor references.
9813
+ */
9814
+ id?: string;
9815
+ /**
9816
+ * Logical layer/channel name used by higher-level controllers.
9817
+ */
9818
+ layer?: string;
9819
+ /**
9820
+ * Priority used by higher-level interrupt policies.
9821
+ */
9822
+ priority?: number;
9823
+ /**
9824
+ * Whether higher-level controllers may interrupt this playback.
9825
+ */
9826
+ interruptible?: boolean;
9827
+ /**
9828
+ * Optional sub-range to play.
9829
+ */
9830
+ range?: {
9831
+ start?: AnimationTimeRef;
9832
+ end?: AnimationTimeRef;
9833
+ };
9834
+ /**
9835
+ * Optional phase synchronization source used to choose the initial playback time.
9836
+ *
9837
+ * When omitted, playback starts at the range start (or clip start), and reverse playback starts
9838
+ * at the range end (or clip end). When set, the new playback starts at the phase copied from the
9839
+ * referenced active playback.
9840
+ */
9841
+ sync?: AnimationPlaybackSyncOptions;
9759
9842
  };
9760
9843
  /**
9761
9844
  * Options for stopping an animation.
@@ -9771,8 +9854,96 @@ type StopAnimationOptions = {
9771
9854
  * Default is 0 (immediate stop).
9772
9855
  */
9773
9856
  fadeOut?: number;
9857
+ /**
9858
+ * Stop reason reported by playback events.
9859
+ */
9860
+ reason?: AnimationStopReason;
9861
+ };
9862
+ /** @public */
9863
+ type AnimationPlaybackState = 'scheduled' | 'playing' | 'paused' | 'stopping' | 'stopped' | 'completed';
9864
+ /** @public */
9865
+ type AnimationStopReason = 'manual' | 'interrupted' | 'completed' | 'deleted' | 'replaced';
9866
+ /** @public */
9867
+ type AnimationPlaybackEvent = {
9868
+ playback: AnimationPlayback;
9869
+ animationSet: AnimationSet;
9870
+ clip: AnimationClip;
9871
+ time: number;
9872
+ normalizedTime: number;
9873
+ };
9874
+ /** @public */
9875
+ type AnimationMarkerEvent = AnimationPlaybackEvent & {
9876
+ marker: AnimationMarker;
9877
+ direction: 1 | -1;
9774
9878
  };
9775
9879
  /** @public */
9880
+ type AnimationFrameEvent = AnimationPlaybackEvent & {
9881
+ frame: number;
9882
+ };
9883
+ /** @public */
9884
+ type AnimationPlaybackStopEvent = AnimationPlaybackEvent & {
9885
+ reason: AnimationStopReason;
9886
+ };
9887
+ /** @public */
9888
+ type AnimationPlaybackEventMap = {
9889
+ start: [event: AnimationPlaybackEvent];
9890
+ loop: [event: AnimationPlaybackEvent];
9891
+ marker: [event: AnimationMarkerEvent];
9892
+ frame: [event: AnimationFrameEvent];
9893
+ complete: [event: AnimationPlaybackEvent];
9894
+ stop: [event: AnimationPlaybackStopEvent];
9895
+ pause: [event: AnimationPlaybackEvent];
9896
+ resume: [event: AnimationPlaybackEvent];
9897
+ };
9898
+ /** @public */
9899
+ type AnimationSetEventMap = {
9900
+ playbackstart: [event: AnimationPlaybackEvent];
9901
+ playbackloop: [event: AnimationPlaybackEvent];
9902
+ marker: [event: AnimationMarkerEvent];
9903
+ frame: [event: AnimationFrameEvent];
9904
+ playbackcomplete: [event: AnimationPlaybackEvent];
9905
+ playbackstop: [event: AnimationPlaybackStopEvent];
9906
+ playbackpause: [event: AnimationPlaybackEvent];
9907
+ playbackresume: [event: AnimationPlaybackEvent];
9908
+ };
9909
+ /**
9910
+ * Runtime handle for one playback of an AnimationClip.
9911
+ * @public
9912
+ */
9913
+ declare class AnimationPlayback extends Observable<AnimationPlaybackEventMap> {
9914
+ constructor(animationSet: AnimationSet, clip: AnimationClip, options?: PlayAnimationOptions);
9915
+ get id(): string;
9916
+ get animationSet(): AnimationSet;
9917
+ get clip(): AnimationClip;
9918
+ get state(): AnimationPlaybackState;
9919
+ get time(): number;
9920
+ set time(value: number);
9921
+ get normalizedTime(): number;
9922
+ set normalizedTime(value: number);
9923
+ get weight(): number;
9924
+ set weight(value: number);
9925
+ get speedRatio(): number;
9926
+ set speedRatio(value: number);
9927
+ get layer(): string;
9928
+ get priority(): number;
9929
+ get interruptible(): boolean;
9930
+ play(): this;
9931
+ pause(): this;
9932
+ resume(): this;
9933
+ stop(options?: StopAnimationOptions): this;
9934
+ seek(time: number, options?: {
9935
+ emitEvents?: boolean;
9936
+ apply?: boolean;
9937
+ }): this;
9938
+ fadeTo(weight: number, duration: number): this;
9939
+ crossFadeTo(name: string, options?: PlayAnimationOptions & {
9940
+ duration?: number;
9941
+ }): AnimationPlayback | null;
9942
+ waitForComplete(): Promise<this>;
9943
+ waitForMarker(idOrName: string): Promise<AnimationMarkerEvent | undefined>;
9944
+ waitForFrame(frame: number): Promise<AnimationFrameEvent | undefined>;
9945
+ }
9946
+ /** @public */
9776
9947
  type HumanoidRootMotionMode = 'scaled' | 'copy' | 'locked' | 'none';
9777
9948
  /** @public */
9778
9949
  type HumanoidRootMotionScaleMode = 'legLength' | 'none' | number;
@@ -9811,27 +9982,287 @@ type CopyHumanoidAnimationOptions = {
9811
9982
  */
9812
9983
  jointTranslations?: 'skip' | 'preserve';
9813
9984
  };
9814
- /**
9815
- * Animation set
9816
- *
9817
- * Manages a collection of named animation clips for a model and orchestrates:
9818
- * - Playback state (time, loops, speed, weights, fade-in/out).
9819
- * - Blending across multiple tracks targeting the same property via weighted averages.
9820
- * - Skeleton usage and application for clips that drive skeletal animation.
9821
- * - Active track registration and cleanup as clips start/stop.
9822
- *
9823
- * Usage:
9824
- * - Create or retrieve `AnimationClip`s by name.
9825
- * - Start playback with `playAnimation(name, options)`.
9826
- * - Advance animation with `update(deltaSeconds)`.
9827
- * - Optionally adjust weight while playing with `setAnimationWeight(name, weight)`.
9828
- *
9829
- * Lifetime:
9830
- * - Disposing the set releases references to the model, clips, and clears active state.
9831
- *
9832
- * @public
9833
- */
9834
- declare class AnimationSet extends Disposable implements IDisposable {
9985
+ declare const AnimationSet_base: (new (...args: any[]) => {
9986
+ _listeners: Nullable<{
9987
+ playbackstart?: {
9988
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
9989
+ dispose: [];
9990
+ }, "playbackstart">;
9991
+ options: _zephyr3d_base.REventHandlerOptions;
9992
+ removed: boolean;
9993
+ }[] | undefined;
9994
+ playbackloop?: {
9995
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
9996
+ dispose: [];
9997
+ }, "playbackloop">;
9998
+ options: _zephyr3d_base.REventHandlerOptions;
9999
+ removed: boolean;
10000
+ }[] | undefined;
10001
+ marker?: {
10002
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10003
+ dispose: [];
10004
+ }, "marker">;
10005
+ options: _zephyr3d_base.REventHandlerOptions;
10006
+ removed: boolean;
10007
+ }[] | undefined;
10008
+ frame?: {
10009
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10010
+ dispose: [];
10011
+ }, "frame">;
10012
+ options: _zephyr3d_base.REventHandlerOptions;
10013
+ removed: boolean;
10014
+ }[] | undefined;
10015
+ playbackcomplete?: {
10016
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10017
+ dispose: [];
10018
+ }, "playbackcomplete">;
10019
+ options: _zephyr3d_base.REventHandlerOptions;
10020
+ removed: boolean;
10021
+ }[] | undefined;
10022
+ playbackstop?: {
10023
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10024
+ dispose: [];
10025
+ }, "playbackstop">;
10026
+ options: _zephyr3d_base.REventHandlerOptions;
10027
+ removed: boolean;
10028
+ }[] | undefined;
10029
+ playbackpause?: {
10030
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10031
+ dispose: [];
10032
+ }, "playbackpause">;
10033
+ options: _zephyr3d_base.REventHandlerOptions;
10034
+ removed: boolean;
10035
+ }[] | undefined;
10036
+ playbackresume?: {
10037
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10038
+ dispose: [];
10039
+ }, "playbackresume">;
10040
+ options: _zephyr3d_base.REventHandlerOptions;
10041
+ removed: boolean;
10042
+ }[] | undefined;
10043
+ dispose?: {
10044
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10045
+ dispose: [];
10046
+ }, "dispose">;
10047
+ options: _zephyr3d_base.REventHandlerOptions;
10048
+ removed: boolean;
10049
+ }[] | undefined;
10050
+ }>;
10051
+ on<K extends "dispose" | keyof AnimationSetEventMap>(type: K, listener: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10052
+ dispose: [];
10053
+ }, K>, context?: unknown): void;
10054
+ once<K extends "dispose" | keyof AnimationSetEventMap>(type: K, listener: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10055
+ dispose: [];
10056
+ }, K>, context?: unknown): void;
10057
+ off<K extends "dispose" | keyof AnimationSetEventMap>(type: K, listener: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10058
+ dispose: [];
10059
+ }, K>, context?: unknown): void;
10060
+ dispatchEvent<K extends "dispose" | keyof AnimationSetEventMap>(type: K, ...args: (AnimationSetEventMap & {
10061
+ dispose: [];
10062
+ })[K]): void;
10063
+ _internalAddEventListener<K extends "dispose" | keyof AnimationSetEventMap>(listenerMap: Nullable<{
10064
+ playbackstart?: {
10065
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10066
+ dispose: [];
10067
+ }, "playbackstart">;
10068
+ options: _zephyr3d_base.REventHandlerOptions;
10069
+ removed: boolean;
10070
+ }[] | undefined;
10071
+ playbackloop?: {
10072
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10073
+ dispose: [];
10074
+ }, "playbackloop">;
10075
+ options: _zephyr3d_base.REventHandlerOptions;
10076
+ removed: boolean;
10077
+ }[] | undefined;
10078
+ marker?: {
10079
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10080
+ dispose: [];
10081
+ }, "marker">;
10082
+ options: _zephyr3d_base.REventHandlerOptions;
10083
+ removed: boolean;
10084
+ }[] | undefined;
10085
+ frame?: {
10086
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10087
+ dispose: [];
10088
+ }, "frame">;
10089
+ options: _zephyr3d_base.REventHandlerOptions;
10090
+ removed: boolean;
10091
+ }[] | undefined;
10092
+ playbackcomplete?: {
10093
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10094
+ dispose: [];
10095
+ }, "playbackcomplete">;
10096
+ options: _zephyr3d_base.REventHandlerOptions;
10097
+ removed: boolean;
10098
+ }[] | undefined;
10099
+ playbackstop?: {
10100
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10101
+ dispose: [];
10102
+ }, "playbackstop">;
10103
+ options: _zephyr3d_base.REventHandlerOptions;
10104
+ removed: boolean;
10105
+ }[] | undefined;
10106
+ playbackpause?: {
10107
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10108
+ dispose: [];
10109
+ }, "playbackpause">;
10110
+ options: _zephyr3d_base.REventHandlerOptions;
10111
+ removed: boolean;
10112
+ }[] | undefined;
10113
+ playbackresume?: {
10114
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10115
+ dispose: [];
10116
+ }, "playbackresume">;
10117
+ options: _zephyr3d_base.REventHandlerOptions;
10118
+ removed: boolean;
10119
+ }[] | undefined;
10120
+ dispose?: {
10121
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10122
+ dispose: [];
10123
+ }, "dispose">;
10124
+ options: _zephyr3d_base.REventHandlerOptions;
10125
+ removed: boolean;
10126
+ }[] | undefined;
10127
+ }>, type: K, listener: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10128
+ dispose: [];
10129
+ }, K>, options: _zephyr3d_base.REventHandlerOptions): Nullable<{
10130
+ playbackstart?: {
10131
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10132
+ dispose: [];
10133
+ }, "playbackstart">;
10134
+ options: _zephyr3d_base.REventHandlerOptions;
10135
+ removed: boolean;
10136
+ }[] | undefined;
10137
+ playbackloop?: {
10138
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10139
+ dispose: [];
10140
+ }, "playbackloop">;
10141
+ options: _zephyr3d_base.REventHandlerOptions;
10142
+ removed: boolean;
10143
+ }[] | undefined;
10144
+ marker?: {
10145
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10146
+ dispose: [];
10147
+ }, "marker">;
10148
+ options: _zephyr3d_base.REventHandlerOptions;
10149
+ removed: boolean;
10150
+ }[] | undefined;
10151
+ frame?: {
10152
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10153
+ dispose: [];
10154
+ }, "frame">;
10155
+ options: _zephyr3d_base.REventHandlerOptions;
10156
+ removed: boolean;
10157
+ }[] | undefined;
10158
+ playbackcomplete?: {
10159
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10160
+ dispose: [];
10161
+ }, "playbackcomplete">;
10162
+ options: _zephyr3d_base.REventHandlerOptions;
10163
+ removed: boolean;
10164
+ }[] | undefined;
10165
+ playbackstop?: {
10166
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10167
+ dispose: [];
10168
+ }, "playbackstop">;
10169
+ options: _zephyr3d_base.REventHandlerOptions;
10170
+ removed: boolean;
10171
+ }[] | undefined;
10172
+ playbackpause?: {
10173
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10174
+ dispose: [];
10175
+ }, "playbackpause">;
10176
+ options: _zephyr3d_base.REventHandlerOptions;
10177
+ removed: boolean;
10178
+ }[] | undefined;
10179
+ playbackresume?: {
10180
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10181
+ dispose: [];
10182
+ }, "playbackresume">;
10183
+ options: _zephyr3d_base.REventHandlerOptions;
10184
+ removed: boolean;
10185
+ }[] | undefined;
10186
+ dispose?: {
10187
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10188
+ dispose: [];
10189
+ }, "dispose">;
10190
+ options: _zephyr3d_base.REventHandlerOptions;
10191
+ removed: boolean;
10192
+ }[] | undefined;
10193
+ }>;
10194
+ _internalRemoveEventListener<K extends "dispose" | keyof AnimationSetEventMap>(listenerMap: Nullable<{
10195
+ playbackstart?: {
10196
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10197
+ dispose: [];
10198
+ }, "playbackstart">;
10199
+ options: _zephyr3d_base.REventHandlerOptions;
10200
+ removed: boolean;
10201
+ }[] | undefined;
10202
+ playbackloop?: {
10203
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10204
+ dispose: [];
10205
+ }, "playbackloop">;
10206
+ options: _zephyr3d_base.REventHandlerOptions;
10207
+ removed: boolean;
10208
+ }[] | undefined;
10209
+ marker?: {
10210
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10211
+ dispose: [];
10212
+ }, "marker">;
10213
+ options: _zephyr3d_base.REventHandlerOptions;
10214
+ removed: boolean;
10215
+ }[] | undefined;
10216
+ frame?: {
10217
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10218
+ dispose: [];
10219
+ }, "frame">;
10220
+ options: _zephyr3d_base.REventHandlerOptions;
10221
+ removed: boolean;
10222
+ }[] | undefined;
10223
+ playbackcomplete?: {
10224
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10225
+ dispose: [];
10226
+ }, "playbackcomplete">;
10227
+ options: _zephyr3d_base.REventHandlerOptions;
10228
+ removed: boolean;
10229
+ }[] | undefined;
10230
+ playbackstop?: {
10231
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10232
+ dispose: [];
10233
+ }, "playbackstop">;
10234
+ options: _zephyr3d_base.REventHandlerOptions;
10235
+ removed: boolean;
10236
+ }[] | undefined;
10237
+ playbackpause?: {
10238
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10239
+ dispose: [];
10240
+ }, "playbackpause">;
10241
+ options: _zephyr3d_base.REventHandlerOptions;
10242
+ removed: boolean;
10243
+ }[] | undefined;
10244
+ playbackresume?: {
10245
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10246
+ dispose: [];
10247
+ }, "playbackresume">;
10248
+ options: _zephyr3d_base.REventHandlerOptions;
10249
+ removed: boolean;
10250
+ }[] | undefined;
10251
+ dispose?: {
10252
+ handler: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10253
+ dispose: [];
10254
+ }, "dispose">;
10255
+ options: _zephyr3d_base.REventHandlerOptions;
10256
+ removed: boolean;
10257
+ }[] | undefined;
10258
+ }>, type: K, listener: _zephyr3d_base.EventListener<AnimationSetEventMap & {
10259
+ dispose: [];
10260
+ }, K>, context: unknown): void;
10261
+ _invokeLocalListeners<K extends "dispose" | keyof AnimationSetEventMap>(type: "dispose" | keyof AnimationSetEventMap, ...args: (AnimationSetEventMap & {
10262
+ dispose: [];
10263
+ })[K]): void;
10264
+ }) & typeof Disposable;
10265
+ declare class AnimationSet extends AnimationSet_base implements IDisposable {
9835
10266
  /**
9836
10267
  * Create an AnimationSet controlling the provided model.
9837
10268
  *
@@ -9927,6 +10358,22 @@ declare class AnimationSet extends Disposable implements IDisposable {
9927
10358
  * @param weight - New weight value used during blending.
9928
10359
  */
9929
10360
  setAnimationWeight(name: string, weight: number): void;
10361
+ /**
10362
+ * Create a playback handle without starting it.
10363
+ */
10364
+ createPlayback(name: string, options?: PlayAnimationOptions): AnimationPlayback | null;
10365
+ /**
10366
+ * Start an animation and return its playback handle.
10367
+ */
10368
+ play(name: string, options?: PlayAnimationOptions): AnimationPlayback | null;
10369
+ /**
10370
+ * Get currently active playbacks.
10371
+ */
10372
+ getPlaybacks(name?: string): AnimationPlayback[];
10373
+ /**
10374
+ * Get the currently active playback for a clip.
10375
+ */
10376
+ getPlayback(name: string): AnimationPlayback | null;
9930
10377
  /**
9931
10378
  * Start (or update) playback of an animation clip.
9932
10379
  *
@@ -9939,6 +10386,18 @@ declare class AnimationSet extends Disposable implements IDisposable {
9939
10386
  * @param options - Playback options (repeat, speedRatio, fadeIn).
9940
10387
  */
9941
10388
  playAnimation(name: string, options?: PlayAnimationOptions): void;
10389
+ private resolvePlaybackSyncSource;
10390
+ private resolveActivePlayback;
10391
+ private computePlaybackInitialTime;
10392
+ private getPlaybackEffectiveRange;
10393
+ private constrainPlaybackTime;
10394
+ private createPlaybackEvent;
10395
+ private completePlayback;
10396
+ private emitCrossedMarkers;
10397
+ private emitCrossedFrames;
10398
+ private getCrossedMarkers;
10399
+ private crossedForward;
10400
+ private crossedBackward;
9942
10401
  /**
9943
10402
  * Stop playback of an animation clip.
9944
10403
  *
@@ -10120,7 +10579,40 @@ declare abstract class AnimationTrack<StateType = unknown> {
10120
10579
  }
10121
10580
 
10122
10581
  /**
10123
- * Animation clip
10582
+ * A serializable reference to a point on an animation clip timeline.
10583
+ * @public
10584
+ */
10585
+ type AnimationTimeRef = number | {
10586
+ time: number;
10587
+ } | {
10588
+ frame: number;
10589
+ fps?: number;
10590
+ } | {
10591
+ marker: string;
10592
+ };
10593
+ /**
10594
+ * Timeline marker metadata stored on an animation clip.
10595
+ *
10596
+ * Markers are data, not callbacks. Runtime systems may dispatch events when a
10597
+ * playback cursor crosses the marker.
10598
+ * @public
10599
+ */
10600
+ type AnimationMarker = {
10601
+ /** Stable marker id for editor and blueprint references. */
10602
+ id?: string;
10603
+ /** Display/event name. */
10604
+ name: string;
10605
+ /** Marker time in seconds. */
10606
+ time?: number;
10607
+ /** Marker frame. Converted with `fps` or the owning clip's `frameRate`. */
10608
+ frame?: number;
10609
+ /** Optional frame rate used for `frame` conversion. */
10610
+ fps?: number;
10611
+ /** Serializable user payload. */
10612
+ payload?: unknown;
10613
+ };
10614
+ /**
10615
+ * Animation clip
10124
10616
  *
10125
10617
  * Represents a named animation composed of multiple tracks targeting various objects/properties,
10126
10618
  * with an overall duration, weight, and optional auto-play behavior. Tracks may target different
@@ -10178,6 +10670,15 @@ declare class AnimationClip extends Disposable {
10178
10670
  */
10179
10671
  get skeletons(): Set<string>;
10180
10672
  set skeletons(val: Set<string>);
10673
+ /**
10674
+ * Default frame rate used to convert frame-based marker references.
10675
+ */
10676
+ get frameRate(): number;
10677
+ set frameRate(val: number);
10678
+ /**
10679
+ * Timeline markers stored on this clip.
10680
+ */
10681
+ get markers(): AnimationMarker[];
10181
10682
  /**
10182
10683
  * Total time span of the clip in seconds.
10183
10684
  *
@@ -10185,6 +10686,29 @@ declare class AnimationClip extends Disposable {
10185
10686
  */
10186
10687
  get timeDuration(): number;
10187
10688
  set timeDuration(val: number);
10689
+ /**
10690
+ * Add a serializable marker to this clip.
10691
+ *
10692
+ * @param marker - Marker metadata. If `id` is omitted, `name` is used as the id.
10693
+ * @returns The normalized marker.
10694
+ */
10695
+ addMarker(marker: AnimationMarker): AnimationMarker | null;
10696
+ /**
10697
+ * Remove markers matching the marker id or name.
10698
+ */
10699
+ removeMarker(idOrName: string): boolean;
10700
+ /**
10701
+ * Get the first marker matching the marker id or name.
10702
+ */
10703
+ getMarker(idOrName: string): AnimationMarker | null;
10704
+ /**
10705
+ * Resolve a marker to seconds on this clip's timeline.
10706
+ */
10707
+ resolveMarkerTime(marker: AnimationMarker): number | null;
10708
+ /**
10709
+ * Resolve a time reference to seconds on this clip's timeline.
10710
+ */
10711
+ resolveTimeRef(ref: AnimationTimeRef | null | undefined): number | null;
10188
10712
  /**
10189
10713
  * Add a skeleton used by this clip.
10190
10714
  *
@@ -10219,6 +10743,722 @@ declare class AnimationClip extends Disposable {
10219
10743
  addTrack(target: object, track: AnimationTrack): this;
10220
10744
  }
10221
10745
 
10746
+ /**
10747
+ * How a response disposes of the timeline's currently active playbacks/steps.
10748
+ * - `'stop'` (default): stop the active steps before running the response.
10749
+ * - `'keep'`: leave the active steps running; the response runs concurrently.
10750
+ * - `{ fadeOut }`: stop the active steps with a fade-out.
10751
+ * @public
10752
+ */
10753
+ type AnimationTimelineActiveDisposition = 'stop' | 'keep' | {
10754
+ fadeOut: number;
10755
+ };
10756
+ /**
10757
+ * Return target for controller state-transition responses.
10758
+ *
10759
+ * - `true`: return to the state that was active before the transition.
10760
+ * - `string`: return to the named state.
10761
+ *
10762
+ * Only {@link AnimationController} state responses can perform the return; bare timeline runners
10763
+ * report state-transition targets as unhandled so the controller can act on them.
10764
+ * @public
10765
+ */
10766
+ type AnimationTimelineStateReturnTarget = true | string;
10767
+ /**
10768
+ * What a response does when its event fires. Exactly one variant applies.
10769
+ * @public
10770
+ */
10771
+ type AnimationTimelineEventTarget = {
10772
+ /** Steps to run when the event is handled. */
10773
+ steps: AnimationTimelineStep[];
10774
+ /** Not used for step targets; keeps this union variant mutually exclusive. */
10775
+ targetState?: undefined;
10776
+ /** Not used for step targets; keeps this union variant mutually exclusive. */
10777
+ returnTo?: undefined;
10778
+ /** Not used for step targets; keeps this union variant mutually exclusive. */
10779
+ returnTransition?: undefined;
10780
+ /** Not used for step targets; keeps this union variant mutually exclusive. */
10781
+ consume?: undefined;
10782
+ /** Not used for step targets; keeps this union variant mutually exclusive. */
10783
+ ignore?: undefined;
10784
+ } | {
10785
+ /** Controller state name to transition to. */
10786
+ targetState: string;
10787
+ /**
10788
+ * Optional state to enter when `targetState` completes.
10789
+ *
10790
+ * Use `true` to return to the state active before the transition, or a string to return to
10791
+ * a specific named state. This is only applied by {@link AnimationController}.
10792
+ */
10793
+ returnTo?: AnimationTimelineStateReturnTarget;
10794
+ /**
10795
+ * Optional transition duration used when returning from `targetState`.
10796
+ *
10797
+ * If omitted, the return state's own transition setting is used.
10798
+ */
10799
+ returnTransition?: number;
10800
+ /** Not used for state-transition targets; keeps this union variant mutually exclusive. */
10801
+ steps?: undefined;
10802
+ /** Not used for state-transition targets; keeps this union variant mutually exclusive. */
10803
+ consume?: undefined;
10804
+ /** Not used for state-transition targets; keeps this union variant mutually exclusive. */
10805
+ ignore?: undefined;
10806
+ } | {
10807
+ /** Consume the event without starting steps or changing state. */
10808
+ consume: true;
10809
+ /** Not used for consume targets; keeps this union variant mutually exclusive. */
10810
+ steps?: undefined;
10811
+ /** Not used for consume targets; keeps this union variant mutually exclusive. */
10812
+ targetState?: undefined;
10813
+ /** Not used for consume targets; keeps this union variant mutually exclusive. */
10814
+ returnTo?: undefined;
10815
+ /** Not used for consume targets; keeps this union variant mutually exclusive. */
10816
+ returnTransition?: undefined;
10817
+ /** Not used for consume targets; keeps this union variant mutually exclusive. */
10818
+ ignore?: undefined;
10819
+ } | {
10820
+ /** Explicitly ignore the event. */
10821
+ ignore: true;
10822
+ /** Not used for ignore targets; keeps this union variant mutually exclusive. */
10823
+ steps?: undefined;
10824
+ /** Not used for ignore targets; keeps this union variant mutually exclusive. */
10825
+ targetState?: undefined;
10826
+ /** Not used for ignore targets; keeps this union variant mutually exclusive. */
10827
+ returnTo?: undefined;
10828
+ /** Not used for ignore targets; keeps this union variant mutually exclusive. */
10829
+ returnTransition?: undefined;
10830
+ /** Not used for ignore targets; keeps this union variant mutually exclusive. */
10831
+ consume?: undefined;
10832
+ };
10833
+ /**
10834
+ * Resolved kind of action a dispatched event produced.
10835
+ * @public
10836
+ */
10837
+ type AnimationTimelineEventPolicy = 'none' | 'ignore' | 'consume' | 'steps' | 'enqueue' | 'transition';
10838
+ /**
10839
+ * Result returned when a timeline or controller dispatches an event.
10840
+ * @public
10841
+ */
10842
+ type AnimationTimelineEventResult = {
10843
+ /**
10844
+ * Whether the event was consumed, converted into steps, enqueued, or accepted as a transition.
10845
+ */
10846
+ handled: boolean;
10847
+ /**
10848
+ * The action selected for the event.
10849
+ */
10850
+ policy: AnimationTimelineEventPolicy;
10851
+ /**
10852
+ * Dispatched event name.
10853
+ */
10854
+ event: string;
10855
+ /**
10856
+ * Optional payload supplied by the caller.
10857
+ */
10858
+ payload?: unknown;
10859
+ };
10860
+ /**
10861
+ * A reaction to a gameplay event, declared on a timeline or a controller state.
10862
+ *
10863
+ * The model is orthogonal: `target` says *what* to do, `onActive` says what happens to the
10864
+ * currently running steps, and `enqueue` defers `steps` instead of running them immediately.
10865
+ * @public
10866
+ */
10867
+ type AnimationTimelineEventResponse = {
10868
+ /**
10869
+ * Event name this response handles.
10870
+ */
10871
+ event: string;
10872
+ /** What the event does. */
10873
+ target: AnimationTimelineEventTarget;
10874
+ /**
10875
+ * Disposition of the currently active steps. Defaults to `'stop'`.
10876
+ * Use `'keep'` with `target.steps` to run the new steps concurrently (true parallel branch).
10877
+ * Ignored for `consume`/`ignore` targets.
10878
+ */
10879
+ onActive?: AnimationTimelineActiveDisposition;
10880
+ /**
10881
+ * When `true` and `target.steps` is set, the steps are appended to the queue and run after the
10882
+ * current steps drain, instead of replacing/joining them. `onActive` is ignored.
10883
+ */
10884
+ enqueue?: boolean;
10885
+ };
10886
+ /**
10887
+ * One executable instruction in an animation timeline.
10888
+ * @public
10889
+ */
10890
+ type AnimationTimelineStep = {
10891
+ /** Start an animation clip playback. */
10892
+ type: 'play';
10893
+ /** Name of the animation clip to play from the owning AnimationSet. */
10894
+ clip: string;
10895
+ /**
10896
+ * Optional local reference id used by later `target` fields in this runner.
10897
+ *
10898
+ * If a later step replaces the same logical playback and future responses should keep using
10899
+ * this name, assign the same id again on the replacement `play` step.
10900
+ */
10901
+ id?: string;
10902
+ /** Playback options passed to `AnimationSet.play`. */
10903
+ options?: PlayAnimationOptions;
10904
+ /**
10905
+ * Whether to block the timeline on this playback before advancing to the next step.
10906
+ * - `'complete'`: wait until the playback completes or is stopped.
10907
+ * - `false` or omitted (default): start the playback and immediately continue.
10908
+ *
10909
+ * A clip that loops forever (`repeat: 0`) only completes when stopped, so combine
10910
+ * `wait: 'complete'` with a finite `repeat`/`range` or an external stop.
10911
+ */
10912
+ wait?: 'complete' | false;
10913
+ } | {
10914
+ /** Stop a playback owned by this runner. */
10915
+ type: 'stop';
10916
+ /**
10917
+ * Optional playback target id.
10918
+ *
10919
+ * When omitted, all playbacks owned by the current runner are stopped.
10920
+ */
10921
+ target?: string;
10922
+ /** Stop behavior passed to the matching playback or playbacks. */
10923
+ options?: StopAnimationOptions;
10924
+ } | {
10925
+ /** Wait for a fixed duration. */
10926
+ type: 'wait';
10927
+ /** Number of seconds to wait before continuing. */
10928
+ seconds: number;
10929
+ } | {
10930
+ /** Wait until a matching event is dispatched to the runner. */
10931
+ type: 'waitEvent';
10932
+ /** Event name that releases the wait. */
10933
+ event: string;
10934
+ } | {
10935
+ /** Wait until a playback crosses a marker. */
10936
+ type: 'waitMarker';
10937
+ /** Marker id or name to wait for. */
10938
+ marker: string;
10939
+ /** Optional playback target id; defaults to the current playback in scope. */
10940
+ target?: string;
10941
+ } | {
10942
+ /** Wait until a playback crosses a frame number. */
10943
+ type: 'waitFrame';
10944
+ /** Frame number to wait for. */
10945
+ frame: number;
10946
+ /** Optional playback target id; defaults to the current playback in scope. */
10947
+ target?: string;
10948
+ } | {
10949
+ /** Emit a timeline event through the runner. */
10950
+ type: 'emit';
10951
+ /** Event name emitted to runner listeners. */
10952
+ event: string;
10953
+ /** Optional payload emitted with the event. */
10954
+ payload?: unknown;
10955
+ } | {
10956
+ /** Execute child steps sequentially. */
10957
+ type: 'sequence';
10958
+ /** Child steps run in order. */
10959
+ steps: AnimationTimelineStep[];
10960
+ } | {
10961
+ /** Execute child steps as parallel branches. */
10962
+ type: 'parallel';
10963
+ /** Child steps that become isolated parallel branches. */
10964
+ steps: AnimationTimelineStep[];
10965
+ };
10966
+ /**
10967
+ * Serializable timeline definition.
10968
+ * @public
10969
+ */
10970
+ type AnimationTimelineDefinition = {
10971
+ /**
10972
+ * Root sequence of timeline steps.
10973
+ */
10974
+ steps: AnimationTimelineStep[];
10975
+ /**
10976
+ * Optional responses evaluated when dispatched events are not consumed by waiters.
10977
+ */
10978
+ responses?: AnimationTimelineEventResponse[];
10979
+ };
10980
+ /**
10981
+ * Event map emitted by {@link AnimationTimelineRunner}.
10982
+ * @public
10983
+ */
10984
+ type AnimationTimelineRunnerEventMap = {
10985
+ /**
10986
+ * Emitted when the runner drains all main, concurrent, and queued work.
10987
+ */
10988
+ complete: [runner: AnimationTimelineRunner];
10989
+ /**
10990
+ * Emitted when an active runner is explicitly stopped.
10991
+ */
10992
+ stop: [runner: AnimationTimelineRunner];
10993
+ /**
10994
+ * Emitted by an `emit` timeline step.
10995
+ */
10996
+ emit: [event: string, payload: unknown];
10997
+ };
10998
+ /**
10999
+ * Serializable snapshot of a runner's runtime state.
11000
+ *
11001
+ * References to playbacks are by id; restoring playbacks themselves is the caller's
11002
+ * responsibility (replay should re-create the active playbacks before deserializing).
11003
+ * @public
11004
+ */
11005
+ type AnimationTimelineRunnerState = {
11006
+ /**
11007
+ * Serialized main control-flow stack.
11008
+ */
11009
+ stack: SerializedFrame[];
11010
+ /**
11011
+ * Serialized concurrent branches started with `keep` responses.
11012
+ */
11013
+ concurrent: SerializedFrame[];
11014
+ /**
11015
+ * Queued step batches waiting for the main stack to drain.
11016
+ */
11017
+ queued: AnimationTimelineStep[][];
11018
+ /** Ids of playbacks owned by concurrent (keep-active) branches that have already drained. */
11019
+ concurrentPlaybackIds: string[];
11020
+ /**
11021
+ * Runner-level playback references preserved after the frame that created them has drained.
11022
+ */
11023
+ playbackRefs?: Record<string, string>;
11024
+ /**
11025
+ * Whether the runner was stopped when the state was captured.
11026
+ */
11027
+ stopped: boolean;
11028
+ };
11029
+ /**
11030
+ * A scope tracks the "current playback" and named refs for a sequence of steps. Parallel branches
11031
+ * each own an isolated scope so their `waitMarker`/`waitFrame` resolve deterministically.
11032
+ *
11033
+ * `owner` records whether the scope belongs to the main control flow or a concurrent (keep-active)
11034
+ * branch, so a main-flow replacement does not stop the independent concurrent tracks.
11035
+ */
11036
+ type FrameScope = {
11037
+ currentPlaybackId: string | null;
11038
+ refs: Record<string, string>;
11039
+ owner: 'main' | 'concurrent';
11040
+ };
11041
+ type SeqFrame = {
11042
+ kind: 'seq';
11043
+ steps: AnimationTimelineStep[];
11044
+ index: number;
11045
+ scope: FrameScope;
11046
+ child: TimelineFrame | null;
11047
+ };
11048
+ type ParallelFrame = {
11049
+ kind: 'parallel';
11050
+ branches: TimelineFrame[];
11051
+ };
11052
+ type WaitFrame = {
11053
+ kind: 'wait';
11054
+ remaining: number;
11055
+ };
11056
+ type WaitEventFrame = {
11057
+ kind: 'waitEvent';
11058
+ event: string;
11059
+ };
11060
+ type WaitMarkerFrame = {
11061
+ kind: 'waitMarker';
11062
+ marker: string;
11063
+ playbackId: string | null;
11064
+ satisfied: boolean;
11065
+ };
11066
+ type WaitFrameFrame = {
11067
+ kind: 'waitFrame';
11068
+ frame: number;
11069
+ playbackId: string | null;
11070
+ satisfied: boolean;
11071
+ };
11072
+ type PlayWaitFrame = {
11073
+ kind: 'playWait';
11074
+ playbackId: string;
11075
+ };
11076
+ type TimelineFrame = SeqFrame | ParallelFrame | WaitFrame | WaitEventFrame | WaitMarkerFrame | WaitFrameFrame | PlayWaitFrame;
11077
+ /** Plain-data form of a frame (no live playback references), used by serialize/deserialize. */
11078
+ type SerializedFrame = TimelineFrame;
11079
+ /**
11080
+ * Serializable animation timeline definition.
11081
+ * @public
11082
+ */
11083
+ declare class AnimationTimeline {
11084
+ /**
11085
+ * Root step sequence executed by runners created from this timeline.
11086
+ */
11087
+ readonly steps: AnimationTimelineStep[];
11088
+ /**
11089
+ * Event responses declared on this timeline.
11090
+ */
11091
+ readonly responses: AnimationTimelineEventResponse[];
11092
+ /**
11093
+ * Create a timeline from a definition object or a root step array.
11094
+ *
11095
+ * @param definition - Timeline definition, or a shorthand array used as the root steps.
11096
+ */
11097
+ constructor(definition: AnimationTimelineDefinition | AnimationTimelineStep[]);
11098
+ /**
11099
+ * Create a runtime runner for this timeline.
11100
+ *
11101
+ * @param animationSet - Animation set used to create and update playbacks.
11102
+ * @returns A new stopped runner bound to this timeline and animation set.
11103
+ */
11104
+ createRunner(animationSet: AnimationSet): AnimationTimelineRunner;
11105
+ }
11106
+ /**
11107
+ * Runtime interpreter for an AnimationTimeline.
11108
+ *
11109
+ * The interpreter is a synchronous frame-stack state machine advanced by {@link tick}, which is
11110
+ * driven by `AnimationSet.update(dt)` on the same logical clock as the animations. There is no
11111
+ * `async`/`await` in the control flow, so the runtime state can be serialized and replayed.
11112
+ * @public
11113
+ */
11114
+ declare class AnimationTimelineRunner extends Observable<AnimationTimelineRunnerEventMap> {
11115
+ /**
11116
+ * Animation set used to start, stop, and query animation playbacks.
11117
+ */
11118
+ readonly animationSet: AnimationSet;
11119
+ /**
11120
+ * Timeline definition interpreted by this runner.
11121
+ */
11122
+ readonly timeline: AnimationTimeline;
11123
+ private _stack;
11124
+ private _concurrent;
11125
+ private readonly _queued;
11126
+ private _pendingEvents;
11127
+ private _stopped;
11128
+ private _ticking;
11129
+ private _lastCompletedPlaybackId;
11130
+ private readonly _onTick;
11131
+ /** Tracks playbacks created by this runner so `stop()` can tear them down. */
11132
+ private readonly _ownedPlaybacks;
11133
+ /** Local playback refs that survive after the sequence frame that declared them drains. */
11134
+ private readonly _playbackRefs;
11135
+ /** Ids of playbacks owned by concurrent (keep-active) branches; preserved across main-flow stops. */
11136
+ private readonly _concurrentPlaybackIds;
11137
+ /** Marker/frame crossings observed since the last tick, keyed by playback id. */
11138
+ private readonly _crossedMarkers;
11139
+ private readonly _crossedFrames;
11140
+ /**
11141
+ * Create a stopped runner for a timeline.
11142
+ *
11143
+ * @param animationSet - Animation set that owns clips and playbacks referenced by the timeline.
11144
+ * @param timeline - Timeline definition to interpret.
11145
+ */
11146
+ constructor(animationSet: AnimationSet, timeline: AnimationTimeline);
11147
+ /**
11148
+ * Playback currently referenced by the active main-flow scope.
11149
+ *
11150
+ * @returns The current playback, or null when the main flow has no active playback reference.
11151
+ */
11152
+ get currentPlayback(): AnimationPlayback | null;
11153
+ /**
11154
+ * Whether this runner is stopped.
11155
+ *
11156
+ * @returns True when the runner is stopped; otherwise false.
11157
+ */
11158
+ get stopped(): boolean;
11159
+ /**
11160
+ * Playback id for the most recent playback that completed naturally.
11161
+ *
11162
+ * @returns The playback id, or null when no owned playback has completed.
11163
+ */
11164
+ get lastCompletedPlaybackId(): string | null;
11165
+ /**
11166
+ * Start or restart the runner from the beginning of the timeline.
11167
+ *
11168
+ * @returns This runner for chaining.
11169
+ */
11170
+ start(): this;
11171
+ /**
11172
+ * Stop the runner and all playbacks it owns.
11173
+ *
11174
+ * @param options - Optional stop behavior applied to owned playbacks.
11175
+ * @returns This runner for chaining.
11176
+ */
11177
+ stop(options?: StopAnimationOptions): this;
11178
+ /**
11179
+ * Append a batch of steps to run after the main stack drains.
11180
+ *
11181
+ * If the runner has already completed, enqueueing steps revives it and registers it for ticking.
11182
+ *
11183
+ * @param steps - Steps to run as the next queued batch.
11184
+ * @returns void
11185
+ */
11186
+ enqueue(steps: AnimationTimelineStep[]): void;
11187
+ /**
11188
+ * Run `steps` concurrently with the current control flow (a true parallel branch). Unlike
11189
+ * {@link enqueue}, these do not wait for the main stack to drain.
11190
+ *
11191
+ * @param steps - Steps to run immediately in an independent concurrent branch.
11192
+ * @returns void
11193
+ * @public
11194
+ */
11195
+ runConcurrent(steps: AnimationTimelineStep[]): void;
11196
+ /**
11197
+ * Dispatch an event to this runner.
11198
+ *
11199
+ * Waiting `waitEvent` frames consume matching events first. If no waiter consumes the event,
11200
+ * the timeline response table is evaluated.
11201
+ *
11202
+ * @param event - Event name to dispatch.
11203
+ * @param payload - Optional payload returned in the result.
11204
+ * @returns The resolved handling result for the event.
11205
+ */
11206
+ dispatch(event: string, payload?: unknown): AnimationTimelineEventResult;
11207
+ /**
11208
+ * Run pending non-blocking work synchronously (a zero-delta tick), without advancing any
11209
+ * time-based waits. Lets `start()`/`dispatch()` take effect immediately while keeping all
11210
+ * runtime state in the serializable frame stack.
11211
+ *
11212
+ * @returns This runner for chaining.
11213
+ * @public
11214
+ */
11215
+ flush(): this;
11216
+ /**
11217
+ * Advance the timeline by `deltaInSeconds`. Called by `AnimationSet.update`.
11218
+ *
11219
+ * @param deltaInSeconds - Elapsed time in seconds for this tick.
11220
+ * @returns void
11221
+ * @public
11222
+ */
11223
+ tick(deltaInSeconds: number): void;
11224
+ /**
11225
+ * Export the runtime state as plain data.
11226
+ *
11227
+ * @returns A serializable snapshot of the runner state.
11228
+ * @public
11229
+ */
11230
+ serialize(): AnimationTimelineRunnerState;
11231
+ /**
11232
+ * Restore runtime state previously produced by {@link serialize}.
11233
+ *
11234
+ * Re-create the relevant active playbacks on the AnimationSet before calling this so that
11235
+ * playback-bound frames (play-wait, waitMarker, waitFrame) can re-attach by id.
11236
+ *
11237
+ * @param animationSet - Animation set containing any live playbacks referenced by the state.
11238
+ * @param timeline - Timeline definition to bind to the restored runner.
11239
+ * @param state - Serialized state previously returned by {@link serialize}.
11240
+ * @returns A runner restored to the supplied runtime state.
11241
+ * @public
11242
+ */
11243
+ static deserialize(animationSet: AnimationSet, timeline: AnimationTimeline, state: AnimationTimelineRunnerState): AnimationTimelineRunner;
11244
+ private ensureTicking;
11245
+ private makeSeqFrame;
11246
+ /** The scope of the innermost active sequence on the main stack (for currentPlayback). */
11247
+ private activeScope;
11248
+ private deepestScope;
11249
+ /**
11250
+ * Advance a frame stack in place. The top frame runs until it blocks or completes; completed
11251
+ * frames pop and the parent sequence advances. Returns when the stack blocks or empties.
11252
+ */
11253
+ private tickFrames;
11254
+ /**
11255
+ * Same as {@link tickFrames} but returns the time left unconsumed when the stack drains
11256
+ * completely (so a parent sequence can hand it to its next step).
11257
+ */
11258
+ private tickFramesWithLeftover;
11259
+ private tickFrame;
11260
+ private tickSeq;
11261
+ private tickParallel;
11262
+ /**
11263
+ * Execute a non-blocking step immediately and return null, or return a frame to block on.
11264
+ */
11265
+ private beginStep;
11266
+ private resolvePlayOptions;
11267
+ private resolvePlaybackRef;
11268
+ private tickWaitMarker;
11269
+ private tickWaitFrame;
11270
+ private tickPlayWait;
11271
+ private attachPlayback;
11272
+ private detachPlayback;
11273
+ private forgetPlayback;
11274
+ /**
11275
+ * Cleanup when an owned playback ends (externally or naturally). Only touches runner-local
11276
+ * bookkeeping, so it is safe to run inside `AnimationSet.update`'s playback loop. Frames blocked
11277
+ * on this playback observe its absence on the next tick and unblock.
11278
+ */
11279
+ private readonly onPlaybackEnd;
11280
+ private readonly onPlaybackComplete;
11281
+ private readonly onPlaybackMarker;
11282
+ private readonly onPlaybackFrame;
11283
+ private resolvePlayback;
11284
+ private forgetPlaybackRefs;
11285
+ private scopeCurrentPlayback;
11286
+ private hasWaiterFor;
11287
+ /** Stop only the main control flow (used when a response replaces it). */
11288
+ private stopMainFlow;
11289
+ private collectScopePlaybackIds;
11290
+ private cloneFrame;
11291
+ private reattachPlaybacks;
11292
+ private collectAllPlaybackIds;
11293
+ private findLivePlayback;
11294
+ }
11295
+
11296
+ /**
11297
+ * Definition of a named animation controller state.
11298
+ * @public
11299
+ */
11300
+ type AnimationControllerStateDefinition = {
11301
+ /**
11302
+ * Timeline executed when the controller enters this state.
11303
+ */
11304
+ timeline: AnimationTimelineDefinition;
11305
+ /**
11306
+ * Optional state-local responses evaluated after the active timeline does not handle a
11307
+ * dispatched event.
11308
+ */
11309
+ responses?: AnimationTimelineEventResponse[];
11310
+ /**
11311
+ * Default cross-fade duration (seconds) applied when transitioning *into* this state.
11312
+ * The outgoing state fades out and this state's first `play` step fades in over this time.
11313
+ */
11314
+ transition?: number;
11315
+ };
11316
+ /**
11317
+ * Options used when switching the controller to another state.
11318
+ * @public
11319
+ */
11320
+ type AnimationControllerSetStateOptions = {
11321
+ /** Cross-fade duration (seconds). Overrides the target state's own `transition`. */
11322
+ transition?: number;
11323
+ /**
11324
+ * Optional phase synchronization source applied to entry play steps that do not already define
11325
+ * their own `options.sync`.
11326
+ */
11327
+ sync?: AnimationPlaybackSyncOptions;
11328
+ /** Re-enter the state even if it is already current. Defaults to false (no-op on same state). */
11329
+ force?: boolean;
11330
+ /** Stop options for the outgoing state when no cross-fade is used. */
11331
+ stop?: StopAnimationOptions;
11332
+ /**
11333
+ * Optional state to enter when the target state completes.
11334
+ *
11335
+ * Use `true` to return to the state active before this transition, or a string to return to a
11336
+ * specific named state.
11337
+ */
11338
+ returnTo?: AnimationTimelineStateReturnTarget;
11339
+ /**
11340
+ * Optional transition duration used when returning from the target state.
11341
+ *
11342
+ * If omitted, the return state's own transition setting is used.
11343
+ */
11344
+ returnTransition?: number;
11345
+ };
11346
+ /**
11347
+ * Event map emitted by {@link AnimationController}.
11348
+ * @public
11349
+ */
11350
+ type AnimationControllerEventMap = {
11351
+ /**
11352
+ * Emitted after the current state changes.
11353
+ *
11354
+ * The first argument is the new state name, or null when stopped. The second argument is the
11355
+ * previous state name, or null when there was no previous state.
11356
+ */
11357
+ statechange: [state: string | null, previousState: string | null];
11358
+ /**
11359
+ * Emitted when the active state's timeline runner drains all main, concurrent, and queued work.
11360
+ */
11361
+ statecomplete: [state: string];
11362
+ /** Forwarded from the active state's timeline runner, so listeners need not rebind per state. */
11363
+ emit: [event: string, payload: unknown];
11364
+ /**
11365
+ * Emitted for every call to {@link AnimationController.dispatch} with the resolved event result.
11366
+ */
11367
+ event: [event: string, payload: unknown, result: AnimationTimelineEventResult];
11368
+ };
11369
+ /**
11370
+ * Event-driven animation state controller.
11371
+ *
11372
+ * Each state owns one serializable timeline. External gameplay events are dispatched to the
11373
+ * current timeline first, then to the current state's response table, so different states can
11374
+ * respond to the same event differently.
11375
+ * @public
11376
+ */
11377
+ declare class AnimationController extends Observable<AnimationControllerEventMap> {
11378
+ /**
11379
+ * Animation set used to create playbacks for all state timelines.
11380
+ */
11381
+ readonly animationSet: AnimationSet;
11382
+ private readonly _states;
11383
+ private _currentState;
11384
+ private _runner;
11385
+ private _onRunnerComplete;
11386
+ private _onRunnerEmit;
11387
+ /**
11388
+ * Create a controller for an animation set.
11389
+ *
11390
+ * @param animationSet - Animation set that owns the clips and active playbacks.
11391
+ */
11392
+ constructor(animationSet: AnimationSet);
11393
+ /**
11394
+ * Current state name.
11395
+ *
11396
+ * @returns The active state name, or null when the controller is stopped or has not entered a state.
11397
+ */
11398
+ get currentState(): string | null;
11399
+ /**
11400
+ * Current timeline runner.
11401
+ *
11402
+ * @returns The active timeline runner, or null when no state is running.
11403
+ */
11404
+ get runner(): AnimationTimelineRunner | null;
11405
+ /**
11406
+ * Register or replace a named state definition.
11407
+ *
11408
+ * @param name - Unique state name.
11409
+ * @param definition - Timeline and event response configuration for the state.
11410
+ * @returns This controller for chaining.
11411
+ */
11412
+ addState(name: string, definition: AnimationControllerStateDefinition): this;
11413
+ /**
11414
+ * Test whether a state has been registered.
11415
+ *
11416
+ * @param name - State name to look up.
11417
+ * @returns True if the controller contains a state with the given name; otherwise false.
11418
+ */
11419
+ hasState(name: string): boolean;
11420
+ /**
11421
+ * Enter a registered state.
11422
+ *
11423
+ * If the requested state is already current and `options.force` is not set, this returns the
11424
+ * existing runner without restarting the timeline. When a transition duration is provided, the
11425
+ * previous runner fades out while the entry plays of the new state fade in.
11426
+ *
11427
+ * @param name - State name to enter.
11428
+ * @param options - Optional transition, re-entry, and stop behavior.
11429
+ * @returns The active runner for the entered state, or null if the state does not exist.
11430
+ */
11431
+ setState(name: string, options?: AnimationControllerSetStateOptions): AnimationTimelineRunner | null;
11432
+ /**
11433
+ * Dispatch a gameplay event to the active state.
11434
+ *
11435
+ * The active timeline receives the event first. If it does not handle the event, the current
11436
+ * state's response table may consume it, enqueue or run steps, or transition to another state.
11437
+ *
11438
+ * @param event - Event name to dispatch.
11439
+ * @param payload - Optional event payload passed through result notifications.
11440
+ * @returns The resolved handling result for the event.
11441
+ */
11442
+ dispatch(event: string, payload?: unknown): AnimationTimelineEventResult;
11443
+ /**
11444
+ * Stop the active state and clear the current state.
11445
+ *
11446
+ * @param options - Optional stop behavior applied to playbacks owned by the active runner.
11447
+ * @returns void
11448
+ */
11449
+ stop(options?: StopAnimationOptions): void;
11450
+ /**
11451
+ * Stop playback and remove all registered states.
11452
+ *
11453
+ * @returns void
11454
+ */
11455
+ dispose(): void;
11456
+ private emitResult;
11457
+ private resolveReturnTarget;
11458
+ private attachRunner;
11459
+ private detachRunner;
11460
+ }
11461
+
10222
11462
  /**
10223
11463
  * Translate animation track
10224
11464
  * @public
@@ -26387,4 +27627,4 @@ declare const ATMOSPHERIC_FOG_BIT: number;
26387
27627
  */
26388
27628
  declare const HEIGHT_FOG_BIT: number;
26389
27629
 
26390
- export { AABBTree, ABufferOIT, ATMOSPHERIC_FOG_BIT, AbsNode, AbstractPostEffect, AllConditionNode, type AngleLimitConfig, AnimationClip, AnimationSet, AnimationTrack, AnyConditionNode, type AppCreationOptions, type AppOptions, Application, type ApplyResultOutput, ArcCosNode, ArcSinNode, ArcTan2Node, ArcTanNode, ArccosineHNode, ArcsineHNode, ArctangentHNode, type AssetAnimationData, type AssetAnimationTrack, type AssetFixedGeometryCacheAnimationTrack, type AssetGeometryCacheAnimationTrack, type AssetGeometryCacheFrame, AssetHierarchyNode, type AssetImageInfo, type AssetJointDynamicsChain, type AssetJointDynamicsCollider, type AssetJointDynamicsFlatPlane, type AssetJointDynamicsSpringBone, type AssetMToonMaterial, AssetManager, type AssetMaterial, type AssetMaterialClearcoat, type AssetMaterialCommon, type AssetMaterialIridescence, type AssetMaterialSheen, type AssetMaterialTransmission, type AssetMeshData, type AssetMorphTargetBinding, type AssetMorphTargetGroup, type AssetPBRMaterialCommon, type AssetPBRMaterialMR, type AssetPBRMaterialSG, type AssetPCAGeometryCacheAnimationTrack, type AssetPrimitiveInfo, type AssetRotationTrack, type AssetSamplerInfo, type AssetScaleTrack, AssetScene, type AssetSkeletalAnimationTrack, AssetSkeleton, type AssetSpringBone, type AssetSpringBoneCollider, type AssetSpringBoneColliderGroup, type AssetSpringBoneColliderShape, type AssetSpringBoneJoint, type AssetSubMeshData, type AssetTextureInfo, type AssetTranslationTrack, type AssetUnlitMaterial, type AssetVertexBufferInfo, type AvatarBindMode, type AvatarBodyRegionTarget, type AvatarBodyRegions, type AvatarEquipOptions, type AvatarFitMode, type AvatarJointMap, AvatarOutfitInstance, type AvatarOutfitSource, type AvatarOutfitValidation, type AvatarSlotId, type AvatarSlotOptions, AvatarWardrobe, type AvatarWardrobeOptions, BUILTIN_ASSET_TEST_CUBEMAP, BUILTIN_ASSET_TEXTURE_SHEEN_LUT, BaseCameraController, type BaseFetchOptions, BaseGraphNode, BaseLight, BaseSprite, BaseTextureNode, type BatchDrawable, BatchGroup, BillboardMatrixNode, type BlendMode, BlinnMaterial, type BlitType, Blitter, Bloom, type BluePrintEditorState, type BluePrintUniformTexture, type BluePrintUniformValue, type BlueprintDAG, type BoneNode, BoundingBox, type BoundingVolume, type BoxCreationOptions, BoxFilterBlitter, BoxFrameShape, BoxShape, CCDSolver, type CachedBindGroup, Camera, type CameraHistoryData, CameraNearFarNode, type CameraOITMode, CameraPositionNode, CameraVectorNode, type CapsuleCollider, type CapsuleCreationOptions, CapsuleShape, CeilNode, ClampNode, ClipmapTerrain, ClipmapTerrainMaterial, ColliderForce, type ColliderR, type ColliderRW, type CollisionResult, ColorAdjust, type ColoredEdge, type ColoredLineEdge, type ColoredQuadraticEdge, CompAddNode, CompComparisonNode, CompDivNode, CompMulNode, CompSubNode, type ComparisonMode, Compositor, type CompositorContext, ConstantBVec2Node, ConstantBVec3Node, ConstantBVec4Node, ConstantBooleanNode, ConstantScalarNode, ConstantTexture2DArrayNode, ConstantTexture2DNode, ConstantTextureCubeNode, ConstantVec2Node, ConstantVec3Node, ConstantVec4Node, type Constraint, type ConstraintBuildOptions, ConstraintType, type ControllerConfig, type ControllerConfigUpdate, CopyBlitter, type CopyHumanoidAnimationOptions, CosHNode, CosNode, CrossProductNode, CubemapSHProjector, CullVisitor, type CylinderCreationOptions, CylinderShape, DDXNode, DDYNode, Degrees2RadiansNode, DepthPass, DirectionalLight, DistanceNode, DotProductNode, DracoMeshDecoder, type DrawContext, type Drawable, type DrawableInstanceInfo, EPSILON, type EdgeColor, type EditorMode, ElapsedTimeNode, type EmitterBehavior, type EmitterShape, Engine, EnvConstantAmbient, EnvHemisphericAmbient, type EnvLightType, EnvLightWrapper, EnvShIBL, Environment, EnvironmentLighting, EqualNode, Exp2Node, ExpNode, type ExtractMixinReturnType, type ExtractMixinType, FABRIKSolver, FBMWaveGenerator, FFTWaveGenerator, FPSCameraController, type FPSCameraControllerOptions, FWidthNode, FXAA, FaceForwardNode, type FixedGeometryCacheFrame, type FixedGeometryCacheState, FixedGeometryCacheTrack, type FlatPlane, FloorNode, FmaNode, type FogType, FontAsset, type FontAssetFetchOptions, type FontAssetMSDFAtlasSettings, type FontMetrics, FractNode, FunctionCallNode, FunctionInputNode, FunctionOutputNode, GPUClothSystem, type GPUClothSystemOptions, type GPUClothWrapBindingData, type GPUClothWrapBindingTarget, GaussianBlurBlitter, GenericMathNode, type GeometryCacheFrame, type GeometryCacheMeshBinding, type GeometryCacheState, GerstnerWaveGenerator, type GlyphContour, type GlyphData, type GlyphPoint, type GrabberR, type GrabberRW, GraphNode, type GraphNodeInput, type GraphNodeOutput, type GraphStructure, type GrassInstanceInfo, GrassLayer, GrassMaterial, GrassRenderer, Grayscale, HEIGHT_FOG_BIT, Hash1Node, Hash2Node, Hash3Node, HistoryResourceManager, type Host, HumanoidBodyRig, HumanoidHandRig, type HumanoidJointMapping, type HumanoidRetargetAxisLocks, type HumanoidRootMotionMode, type HumanoidRootMotionScaleMode, type HumanoidSkeletalAnimationMaskOptions, type HumanoidSkeletalAnimationMaskPreset, type IAttachedScript, type IBaseEvent, type IControllerKeyboardEvent, type IControllerKeydownEvent, type IControllerKeypressEvent, type IControllerKeyupEvent, type IControllerMouseEvent, type IControllerPointerCancelEvent, type IControllerPointerDownEvent, type IControllerPointerMoveEvent, type IControllerPointerUpEvent, type IControllerWheelEvent, type IGraphNode, IKAngleConstraint, IKChain, IKConstraint, type IKJoint, IKModifier, IKSolver, type IMixinAlbedoColor, type IMixinBlinnPhong, type IMixinFoliage, type IMixinLambert, type IMixinLight, type IMixinPBRBluePrint, type IMixinPBRCommon, type IMixinPBRMetallicRoughness, type IMixinPBRSpecularGlossiness, type IMixinVertexColor, type IModKey, type IRUniformTexture, type IRUniformValue, type IRenderHook, type IRenderable, type InputEventHandler, InputManager, InstanceBindGroupAllocator, type InstanceData, InstanceIndexNode, type InstanceUniformType, type InterChainConstraint, InvProjMatrixNode, InvSqrtNode, InvViewProjMatrixNode, type JointChainConfig, type JointDynamicSystemConfig, type JointDynamicsColliderHandle, type JointDynamicsColliderSnapshot, type JointDynamicsFlatPlaneHandle, type JointDynamicsFlatPlaneSnapshot, type JointDynamicsGrabberHandle, type JointDynamicsGrabberSnapshot, JointDynamicsModifier, JointDynamicsSystem, JointDynamicsSystemController, type JointNameMatcher, LIGHT_TYPE_DIRECTIONAL, LIGHT_TYPE_NONE, LIGHT_TYPE_POINT, LIGHT_TYPE_RECT, LIGHT_TYPE_SPOT, LambertMaterial, LengthNode, type LineCollisionResult, Log2Node, type LogMode, LogNode, LogicallyAndNode, LogicallyOrNode, MAX_CLUSTERED_LIGHTS, MAX_GERSTNER_WAVE_COUNT, MAX_MORPH_ATTRIBUTES, MAX_MORPH_TARGETS, MAX_TERRAIN_MIPMAP_LEVELS, MORPH_ATTRIBUTE_VECTOR_COUNT, MORPH_TARGET_COLOR, MORPH_TARGET_NORMAL, MORPH_TARGET_POSITION, MORPH_TARGET_TANGENT, MORPH_TARGET_TEX0, MORPH_TARGET_TEX1, MORPH_TARGET_TEX2, MORPH_TARGET_TEX3, MORPH_WEIGHTS_VECTOR_COUNT, type MSDFBitmap, type MSDFOptions, type MSDFShape, MSDFText, MSDFTextAtlasManager, MSDFTextSprite, MToonMaterial, type MToonOutlineWidthMode, MakeVectorNode, Material, MaterialBlueprintIR, type MaterialBlueprintIRBehaviors, type MaterialTextureInfo, MaterialVaryingFlags, MaxNode, Mesh$1 as Mesh, MeshMaterial, type MeshUpdateCallback, type Metadata$1 as Metadata, MinNode, MixNode, ModNode, type ModelFetchOptions, type ModelInfo, type ModelLoader, type MorphBoundingInfo, type MorphData, type MorphInfo, type MorphState, MorphTargetTrack, MultiChainSpringSystem, type MultiChainSpringSystemOptions, type NamedJointsSkeletalAnimationMaskOptions, NamedObject, type NearestPointsResult, type NodeConnection, NodeEulerRotationTrack, type NodeIterateFunc, NodeRotationTrack, NodeScaleTrack, NodeTranslationTrack, NormalizeNode, NotEqualNode, type OIT, Octree, OctreeNode, OctreeNodeChunk, OctreePlacement, OrbitCameraController, type OrbitCameraControllerOptions, OrthoCamera, PBRBlockNode, PBRBluePrintMaterial, type PBRBlueprintOutputName, PBRMetallicRoughnessMaterial, type PBRReflectionMode, PBRSpecularGlossinessMaterial, type PCAGeometryCacheState, PCAGeometryCacheTrack, type PCAGeometryCacheTrackData, type PairAdjustment, PannerNode, ParticleMaterial, ParticleSystem, PerlinNoise2DNode, PerspectiveCamera, type PhysicsCurves, type PickResult, type PickTarget, PixelNormalNode, PixelWorldPositionNode, type PlaneCollider, type PlaneCreationOptions, PlaneShape, type PlayAnimationOptions, type PointInit, PointLight, type PointR, type PointRW, type PointTransform, PostEffectLayer, PowNode, Primitive, ProjectionMatrixNode, type PropEdit, type PropertyAccessor, type PropertyAccessorOptions, type PropertySceneNodeOptions, type PropertyToType, PropertyTrack, type PropertyType, type PropertyValue, PunctualLight, QUEUE_OPAQUE, QUEUE_TRANSPARENT, RENDER_PASS_TYPE_DEPTH, RENDER_PASS_TYPE_LIGHT, RENDER_PASS_TYPE_OBJECT_COLOR, RENDER_PASS_TYPE_SHADOWMAP, Radians2DegreesNode, RaycastVisitor, RectLight, ReflectNode, RefractNode, type RenderFunc, type RenderItemList, type RenderItemListBundle, type RenderItemListInfo, RenderPass, type RenderPath, RenderQueue, type RenderQueueItem, type RenderQueueRef, RenderTarget, type ResolutionTransform, ResolveVertexNormalNode, ResolveVertexPositionNode, ResolveVertexTangentNode, ResourceManager, RotateAboutAxisNode, RuntimeScript, type RuntimeScriptArrayDeclaration, type RuntimeScriptArrayElementDeclaration, type RuntimeScriptConfig, type RuntimeScriptObjectDeclaration, type RuntimeScriptObjectFieldDeclaration, type RuntimeScriptPropertyDeclaration, type RuntimeScriptPropertyInfo, type RuntimeScriptPropertyOptions, type RuntimeScriptPropertyType, type RuntimeScriptValueDeclaration, type RuntimeScriptValueType, SAO, type SSSDebugView, type SSSQualityPreset, type SSSResolvedSettings, type SamplerType, SaturateNode, type SaveOptions, Scene, type SceneMorphTargetBinding, type SceneMorphTargetGroup, SceneNode, type SceneNodeVisible, ScreenAdapter, type ScreenConfig, ScreenRenderTarget, type ScreenScaleMode, ScriptAttachment, type ScriptAttachmentConfig, ScriptRegistry, ScriptingSystem, type ScriptingSystemOptions, SelectionNode, type SerializableClass, type SerializedMorphTargetBinding, type SerializedMorphTargetGroup, ShaderHelper, ShadowMapPass, ShadowMapper, type ShadowMode, type ShadowQualityPreset, ShadowRegion, Shape, type ShapeCreationOptions, type ShapeOptionType, type ShapeType, SharedModel, SignNode, SimplexNoise2DNode, type SimulationParams, SinHNode, SinNode, type SkeletalAnimationMaskCommonOptions, type SkeletalAnimationMaskOptions, type SkeletalAnimationMaskRootMotionMode, type SkeletalAnimationMaskUnsupportedTrackMode, Skeleton, type SkeletonBindPose, SkeletonModifier, SkeletonRig, type SkeletonRigOptions, SkinBinding, type SkinnedBoundingBox, SkyEnvTextureNode, SkyRenderer, type SkyType, SmoothStepNode, type SphereCollider, type SphereCreationOptions, SphereShape, SpotLight, SpringChain, type SpringCollider, type SpringConstraint, SpringModifier, type SpringParticle, SpringSystem, type SpringSystemOptions, Sprite, SpriteBlockNode, SpriteBlueprintMaterial, SpriteMaterial, SqrtNode, StandardSpriteMaterial, StepNode, type StopAnimationOptions, SubsurfaceProfile, type SubsurfaceProfilePreset, type SurfaceCheckResult, SwizzleNode, TanHNode, TanNode, type TerrainDebugMode, type TetrahedronCreationOptions, TetrahedronFrameShape, TetrahedronShape, TextSprite, type TextureFetchOptions, type TextureMixinInstanceTypes, type TextureMixinTypes, type TextureProp, type TexturePropUniforms, TextureSampleGrad, TextureSampleNode, type ToMixedTextureType, Tonemap, type TorusCreationOptions, TorusShape, type TransformAccess, TransformNode, type TwistConstraint, TwoBoneIKSolver, UnlitMaterial, VertexBinormalNode, VertexBlockNode, VertexColorNode, VertexIndexNode, VertexNormalNode, VertexOutputNode, VertexPositionNode, VertexTangentNode, VertexUVNode, ViewMatrixNode, ViewProjMatrixNode, type Visitor, Water, type WaveGenerator, WeightedBlendedOIT, applyAngleLimits, applyMaterialMixins, applyResult, applyRuntimeScriptConfig, buildConstraints, buildMSDFShape, buildSurfaceFaces, checkSurfaceCollision, collisionDetection, collisionDetectionCapsule, collisionDetectionSphere, computeMaxDepth, computeNearestPoints, createCapsuleCollider, createGPUClothWrapBindingData, createGeometryCacheState, createPlaneCollider, createSphereCollider, createSpringConstraint, createSpringParticle, createTransformAccess, decode2HalfFromRGBA, decodeFloatFromRGBA, decodeNormalizedFloatFromRGBA, decodeRGBM, defineProps, encode2HalfToRGBA, encodeFloatToRGBA, encodeNormalizedFloatToRGBA, encodeRGBM, ensureGeometryCacheMeshBinding, fetchSampler, gammaToLinear, generateMSDF, getApp, getDevice, getEngine, getInput, getRuntimeScriptProperties, gradient, hash11, hash12, hash13, hash21, hash22, hash23, hash31, hash32, hash33, interleavedGradientNoise, isGPUClothSupported, linearToGamma, mixGeometryCacheBoundingBox, mixinAlbedoColor, mixinBlinnPhong, mixinFoliage, mixinLambert, mixinLight, mixinPBRBluePrint, mixinPBRCommon, mixinPBRMetallicRoughness, mixinPBRSpecularGlossness, mixinTextureProps, mixinVertexColor, noise3D, normalizeRuntimeScriptConfig, normalizeScriptAttachmentConfig, normalizeScriptAttachments, panoramaToCubemap, perlinNoise2D, perlinNoise3D, prefilterCubemap, pushInCollisionDetection, pushInFromCapsule, pushInFromCollider, pushInFromSphere, pushoutFromCapsule, pushoutFromCollider, pushoutFromSphere, resolveCapsuleCollision, resolvePlaneCollision, resolveSphereCollision, restoreGeometryCacheMeshBinding, scriptProp, simulate, smoothNoise3D, sortRootPointsByProximity, temporalResolve, tryGetApp, updateColliderFromNode, valueNoise, whiteNoise, worleyFBM, worleyNoise };
27630
+ export { AABBTree, ABufferOIT, ATMOSPHERIC_FOG_BIT, AbsNode, AbstractPostEffect, AllConditionNode, type AngleLimitConfig, AnimationClip, AnimationController, type AnimationControllerEventMap, type AnimationControllerSetStateOptions, type AnimationControllerStateDefinition, type AnimationFrameEvent, type AnimationMarker, type AnimationMarkerEvent, AnimationPlayback, type AnimationPlaybackEvent, type AnimationPlaybackEventMap, type AnimationPlaybackState, type AnimationPlaybackStopEvent, type AnimationPlaybackSyncMode, type AnimationPlaybackSyncOptions, AnimationSet, type AnimationSetEventMap, type AnimationStopReason, type AnimationTimeRef, AnimationTimeline, type AnimationTimelineActiveDisposition, type AnimationTimelineDefinition, type AnimationTimelineEventPolicy, type AnimationTimelineEventResponse, type AnimationTimelineEventResult, type AnimationTimelineEventTarget, AnimationTimelineRunner, type AnimationTimelineRunnerEventMap, type AnimationTimelineRunnerState, type AnimationTimelineStateReturnTarget, type AnimationTimelineStep, AnimationTrack, AnyConditionNode, type AppCreationOptions, type AppOptions, Application, type ApplyResultOutput, ArcCosNode, ArcSinNode, ArcTan2Node, ArcTanNode, ArccosineHNode, ArcsineHNode, ArctangentHNode, type AssetAnimationData, type AssetAnimationTrack, type AssetFixedGeometryCacheAnimationTrack, type AssetGeometryCacheAnimationTrack, type AssetGeometryCacheFrame, AssetHierarchyNode, type AssetImageInfo, type AssetJointDynamicsChain, type AssetJointDynamicsCollider, type AssetJointDynamicsFlatPlane, type AssetJointDynamicsSpringBone, type AssetMToonMaterial, AssetManager, type AssetMaterial, type AssetMaterialClearcoat, type AssetMaterialCommon, type AssetMaterialIridescence, type AssetMaterialSheen, type AssetMaterialTransmission, type AssetMeshData, type AssetMorphTargetBinding, type AssetMorphTargetGroup, type AssetPBRMaterialCommon, type AssetPBRMaterialMR, type AssetPBRMaterialSG, type AssetPCAGeometryCacheAnimationTrack, type AssetPrimitiveInfo, type AssetRotationTrack, type AssetSamplerInfo, type AssetScaleTrack, AssetScene, type AssetSkeletalAnimationTrack, AssetSkeleton, type AssetSpringBone, type AssetSpringBoneCollider, type AssetSpringBoneColliderGroup, type AssetSpringBoneColliderShape, type AssetSpringBoneJoint, type AssetSubMeshData, type AssetTextureInfo, type AssetTranslationTrack, type AssetUnlitMaterial, type AssetVertexBufferInfo, type AvatarBindMode, type AvatarBodyRegionTarget, type AvatarBodyRegions, type AvatarEquipOptions, type AvatarFitMode, type AvatarJointMap, AvatarOutfitInstance, type AvatarOutfitSource, type AvatarOutfitValidation, type AvatarSlotId, type AvatarSlotOptions, AvatarWardrobe, type AvatarWardrobeOptions, BUILTIN_ASSET_TEST_CUBEMAP, BUILTIN_ASSET_TEXTURE_SHEEN_LUT, BaseCameraController, type BaseFetchOptions, BaseGraphNode, BaseLight, BaseSprite, BaseTextureNode, type BatchDrawable, BatchGroup, BillboardMatrixNode, type BlendMode, BlinnMaterial, type BlitType, Blitter, Bloom, type BluePrintEditorState, type BluePrintUniformTexture, type BluePrintUniformValue, type BlueprintDAG, type BoneNode, BoundingBox, type BoundingVolume, type BoxCreationOptions, BoxFilterBlitter, BoxFrameShape, BoxShape, CCDSolver, type CachedBindGroup, Camera, type CameraHistoryData, CameraNearFarNode, type CameraOITMode, CameraPositionNode, CameraVectorNode, type CapsuleCollider, type CapsuleCreationOptions, CapsuleShape, CeilNode, ClampNode, ClipmapTerrain, ClipmapTerrainMaterial, ColliderForce, type ColliderR, type ColliderRW, type CollisionResult, ColorAdjust, type ColoredEdge, type ColoredLineEdge, type ColoredQuadraticEdge, CompAddNode, CompComparisonNode, CompDivNode, CompMulNode, CompSubNode, type ComparisonMode, Compositor, type CompositorContext, ConstantBVec2Node, ConstantBVec3Node, ConstantBVec4Node, ConstantBooleanNode, ConstantScalarNode, ConstantTexture2DArrayNode, ConstantTexture2DNode, ConstantTextureCubeNode, ConstantVec2Node, ConstantVec3Node, ConstantVec4Node, type Constraint, type ConstraintBuildOptions, ConstraintType, type ControllerConfig, type ControllerConfigUpdate, CopyBlitter, type CopyHumanoidAnimationOptions, CosHNode, CosNode, CrossProductNode, CubemapSHProjector, CullVisitor, type CylinderCreationOptions, CylinderShape, DDXNode, DDYNode, Degrees2RadiansNode, DepthPass, DirectionalLight, DistanceNode, DotProductNode, DracoMeshDecoder, type DrawContext, type Drawable, type DrawableInstanceInfo, EPSILON, type EdgeColor, type EditorMode, ElapsedTimeNode, type EmitterBehavior, type EmitterShape, Engine, EnvConstantAmbient, EnvHemisphericAmbient, type EnvLightType, EnvLightWrapper, EnvShIBL, Environment, EnvironmentLighting, EqualNode, Exp2Node, ExpNode, type ExtractMixinReturnType, type ExtractMixinType, FABRIKSolver, FBMWaveGenerator, FFTWaveGenerator, FPSCameraController, type FPSCameraControllerOptions, FWidthNode, FXAA, FaceForwardNode, type FixedGeometryCacheFrame, type FixedGeometryCacheState, FixedGeometryCacheTrack, type FlatPlane, FloorNode, FmaNode, type FogType, FontAsset, type FontAssetFetchOptions, type FontAssetMSDFAtlasSettings, type FontMetrics, FractNode, FunctionCallNode, FunctionInputNode, FunctionOutputNode, GPUClothSystem, type GPUClothSystemOptions, type GPUClothWrapBindingData, type GPUClothWrapBindingTarget, GaussianBlurBlitter, GenericMathNode, type GeometryCacheFrame, type GeometryCacheMeshBinding, type GeometryCacheState, GerstnerWaveGenerator, type GlyphContour, type GlyphData, type GlyphPoint, type GrabberR, type GrabberRW, GraphNode, type GraphNodeInput, type GraphNodeOutput, type GraphStructure, type GrassInstanceInfo, GrassLayer, GrassMaterial, GrassRenderer, Grayscale, HEIGHT_FOG_BIT, Hash1Node, Hash2Node, Hash3Node, HistoryResourceManager, type Host, HumanoidBodyRig, HumanoidHandRig, type HumanoidJointMapping, type HumanoidRetargetAxisLocks, type HumanoidRootMotionMode, type HumanoidRootMotionScaleMode, type HumanoidSkeletalAnimationMaskOptions, type HumanoidSkeletalAnimationMaskPreset, type IAttachedScript, type IBaseEvent, type IControllerKeyboardEvent, type IControllerKeydownEvent, type IControllerKeypressEvent, type IControllerKeyupEvent, type IControllerMouseEvent, type IControllerPointerCancelEvent, type IControllerPointerDownEvent, type IControllerPointerMoveEvent, type IControllerPointerUpEvent, type IControllerWheelEvent, type IGraphNode, IKAngleConstraint, IKChain, IKConstraint, type IKJoint, IKModifier, IKSolver, type IMixinAlbedoColor, type IMixinBlinnPhong, type IMixinFoliage, type IMixinLambert, type IMixinLight, type IMixinPBRBluePrint, type IMixinPBRCommon, type IMixinPBRMetallicRoughness, type IMixinPBRSpecularGlossiness, type IMixinVertexColor, type IModKey, type IRUniformTexture, type IRUniformValue, type IRenderHook, type IRenderable, type InputEventHandler, InputManager, InstanceBindGroupAllocator, type InstanceData, InstanceIndexNode, type InstanceUniformType, type InterChainConstraint, InvProjMatrixNode, InvSqrtNode, InvViewProjMatrixNode, type JointChainConfig, type JointDynamicSystemConfig, type JointDynamicsColliderHandle, type JointDynamicsColliderSnapshot, type JointDynamicsFlatPlaneHandle, type JointDynamicsFlatPlaneSnapshot, type JointDynamicsGrabberHandle, type JointDynamicsGrabberSnapshot, JointDynamicsModifier, JointDynamicsSystem, JointDynamicsSystemController, type JointNameMatcher, LIGHT_TYPE_DIRECTIONAL, LIGHT_TYPE_NONE, LIGHT_TYPE_POINT, LIGHT_TYPE_RECT, LIGHT_TYPE_SPOT, LambertMaterial, LengthNode, type LineCollisionResult, Log2Node, type LogMode, LogNode, LogicallyAndNode, LogicallyOrNode, MAX_CLUSTERED_LIGHTS, MAX_GERSTNER_WAVE_COUNT, MAX_MORPH_ATTRIBUTES, MAX_MORPH_TARGETS, MAX_TERRAIN_MIPMAP_LEVELS, MORPH_ATTRIBUTE_VECTOR_COUNT, MORPH_TARGET_COLOR, MORPH_TARGET_NORMAL, MORPH_TARGET_POSITION, MORPH_TARGET_TANGENT, MORPH_TARGET_TEX0, MORPH_TARGET_TEX1, MORPH_TARGET_TEX2, MORPH_TARGET_TEX3, MORPH_WEIGHTS_VECTOR_COUNT, type MSDFBitmap, type MSDFOptions, type MSDFShape, MSDFText, MSDFTextAtlasManager, MSDFTextSprite, MToonMaterial, type MToonOutlineWidthMode, MakeVectorNode, Material, MaterialBlueprintIR, type MaterialBlueprintIRBehaviors, type MaterialTextureInfo, MaterialVaryingFlags, MaxNode, Mesh$1 as Mesh, MeshMaterial, type MeshUpdateCallback, type Metadata$1 as Metadata, MinNode, MixNode, ModNode, type ModelFetchOptions, type ModelInfo, type ModelLoader, type MorphBoundingInfo, type MorphData, type MorphInfo, type MorphState, MorphTargetTrack, MultiChainSpringSystem, type MultiChainSpringSystemOptions, type NamedJointsSkeletalAnimationMaskOptions, NamedObject, type NearestPointsResult, type NodeConnection, NodeEulerRotationTrack, type NodeIterateFunc, NodeRotationTrack, NodeScaleTrack, NodeTranslationTrack, NormalizeNode, NotEqualNode, type OIT, Octree, OctreeNode, OctreeNodeChunk, OctreePlacement, OrbitCameraController, type OrbitCameraControllerOptions, OrthoCamera, PBRBlockNode, PBRBluePrintMaterial, type PBRBlueprintOutputName, PBRMetallicRoughnessMaterial, type PBRReflectionMode, PBRSpecularGlossinessMaterial, type PCAGeometryCacheState, PCAGeometryCacheTrack, type PCAGeometryCacheTrackData, type PairAdjustment, PannerNode, ParticleMaterial, ParticleSystem, PerlinNoise2DNode, PerspectiveCamera, type PhysicsCurves, type PickResult, type PickTarget, PixelNormalNode, PixelWorldPositionNode, type PlaneCollider, type PlaneCreationOptions, PlaneShape, type PlayAnimationOptions, type PointInit, PointLight, type PointR, type PointRW, type PointTransform, PostEffectLayer, PowNode, Primitive, ProjectionMatrixNode, type PropEdit, type PropertyAccessor, type PropertyAccessorOptions, type PropertySceneNodeOptions, type PropertyToType, PropertyTrack, type PropertyType, type PropertyValue, PunctualLight, QUEUE_OPAQUE, QUEUE_TRANSPARENT, RENDER_PASS_TYPE_DEPTH, RENDER_PASS_TYPE_LIGHT, RENDER_PASS_TYPE_OBJECT_COLOR, RENDER_PASS_TYPE_SHADOWMAP, Radians2DegreesNode, RaycastVisitor, RectLight, ReflectNode, RefractNode, type RenderFunc, type RenderItemList, type RenderItemListBundle, type RenderItemListInfo, RenderPass, type RenderPath, RenderQueue, type RenderQueueItem, type RenderQueueRef, RenderTarget, type ResolutionTransform, ResolveVertexNormalNode, ResolveVertexPositionNode, ResolveVertexTangentNode, ResourceManager, RotateAboutAxisNode, RuntimeScript, type RuntimeScriptArrayDeclaration, type RuntimeScriptArrayElementDeclaration, type RuntimeScriptConfig, type RuntimeScriptObjectDeclaration, type RuntimeScriptObjectFieldDeclaration, type RuntimeScriptPropertyDeclaration, type RuntimeScriptPropertyInfo, type RuntimeScriptPropertyOptions, type RuntimeScriptPropertyType, type RuntimeScriptValueDeclaration, type RuntimeScriptValueType, SAO, type SSSDebugView, type SSSQualityPreset, type SSSResolvedSettings, type SamplerType, SaturateNode, type SaveOptions, Scene, type SceneMorphTargetBinding, type SceneMorphTargetGroup, SceneNode, type SceneNodeVisible, ScreenAdapter, type ScreenConfig, ScreenRenderTarget, type ScreenScaleMode, ScriptAttachment, type ScriptAttachmentConfig, ScriptRegistry, ScriptingSystem, type ScriptingSystemOptions, SelectionNode, type SerializableClass, type SerializedMorphTargetBinding, type SerializedMorphTargetGroup, ShaderHelper, ShadowMapPass, ShadowMapper, type ShadowMode, type ShadowQualityPreset, ShadowRegion, Shape, type ShapeCreationOptions, type ShapeOptionType, type ShapeType, SharedModel, SignNode, SimplexNoise2DNode, type SimulationParams, SinHNode, SinNode, type SkeletalAnimationMaskCommonOptions, type SkeletalAnimationMaskOptions, type SkeletalAnimationMaskRootMotionMode, type SkeletalAnimationMaskUnsupportedTrackMode, Skeleton, type SkeletonBindPose, SkeletonModifier, SkeletonRig, type SkeletonRigOptions, SkinBinding, type SkinnedBoundingBox, SkyEnvTextureNode, SkyRenderer, type SkyType, SmoothStepNode, type SphereCollider, type SphereCreationOptions, SphereShape, SpotLight, SpringChain, type SpringCollider, type SpringConstraint, SpringModifier, type SpringParticle, SpringSystem, type SpringSystemOptions, Sprite, SpriteBlockNode, SpriteBlueprintMaterial, SpriteMaterial, SqrtNode, StandardSpriteMaterial, StepNode, type StopAnimationOptions, SubsurfaceProfile, type SubsurfaceProfilePreset, type SurfaceCheckResult, SwizzleNode, TanHNode, TanNode, type TerrainDebugMode, type TetrahedronCreationOptions, TetrahedronFrameShape, TetrahedronShape, TextSprite, type TextureFetchOptions, type TextureMixinInstanceTypes, type TextureMixinTypes, type TextureProp, type TexturePropUniforms, TextureSampleGrad, TextureSampleNode, type ToMixedTextureType, Tonemap, type TorusCreationOptions, TorusShape, type TransformAccess, TransformNode, type TwistConstraint, TwoBoneIKSolver, UnlitMaterial, VertexBinormalNode, VertexBlockNode, VertexColorNode, VertexIndexNode, VertexNormalNode, VertexOutputNode, VertexPositionNode, VertexTangentNode, VertexUVNode, ViewMatrixNode, ViewProjMatrixNode, type Visitor, Water, type WaveGenerator, WeightedBlendedOIT, applyAngleLimits, applyMaterialMixins, applyResult, applyRuntimeScriptConfig, buildConstraints, buildMSDFShape, buildSurfaceFaces, checkSurfaceCollision, collisionDetection, collisionDetectionCapsule, collisionDetectionSphere, computeMaxDepth, computeNearestPoints, createCapsuleCollider, createGPUClothWrapBindingData, createGeometryCacheState, createPlaneCollider, createSphereCollider, createSpringConstraint, createSpringParticle, createTransformAccess, decode2HalfFromRGBA, decodeFloatFromRGBA, decodeNormalizedFloatFromRGBA, decodeRGBM, defineProps, encode2HalfToRGBA, encodeFloatToRGBA, encodeNormalizedFloatToRGBA, encodeRGBM, ensureGeometryCacheMeshBinding, fetchSampler, gammaToLinear, generateMSDF, getApp, getDevice, getEngine, getInput, getRuntimeScriptProperties, gradient, hash11, hash12, hash13, hash21, hash22, hash23, hash31, hash32, hash33, interleavedGradientNoise, isGPUClothSupported, linearToGamma, mixGeometryCacheBoundingBox, mixinAlbedoColor, mixinBlinnPhong, mixinFoliage, mixinLambert, mixinLight, mixinPBRBluePrint, mixinPBRCommon, mixinPBRMetallicRoughness, mixinPBRSpecularGlossness, mixinTextureProps, mixinVertexColor, noise3D, normalizeRuntimeScriptConfig, normalizeScriptAttachmentConfig, normalizeScriptAttachments, panoramaToCubemap, perlinNoise2D, perlinNoise3D, prefilterCubemap, pushInCollisionDetection, pushInFromCapsule, pushInFromCollider, pushInFromSphere, pushoutFromCapsule, pushoutFromCollider, pushoutFromSphere, resolveCapsuleCollision, resolvePlaneCollision, resolveSphereCollision, restoreGeometryCacheMeshBinding, scriptProp, simulate, smoothNoise3D, sortRootPointsByProximity, temporalResolve, tryGetApp, updateColliderFromNode, valueNoise, whiteNoise, worleyFBM, worleyNoise };