@basmilius/sparkle 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/dist/index.d.mts +1053 -28
  2. package/dist/index.d.mts.map +1 -1
  3. package/dist/index.mjs +4840 -400
  4. package/dist/index.mjs.map +1 -1
  5. package/package.json +7 -2
  6. package/src/aurora/consts.ts +3 -0
  7. package/src/aurora/index.ts +10 -0
  8. package/src/aurora/layer.ts +180 -0
  9. package/src/aurora/types.ts +13 -0
  10. package/src/balloons/consts.ts +3 -0
  11. package/src/balloons/index.ts +12 -0
  12. package/src/balloons/layer.ts +169 -0
  13. package/src/balloons/particle.ts +110 -0
  14. package/src/balloons/types.ts +14 -0
  15. package/src/bubbles/consts.ts +3 -0
  16. package/src/bubbles/index.ts +10 -0
  17. package/src/bubbles/layer.ts +246 -0
  18. package/src/bubbles/types.ts +21 -0
  19. package/src/canvas.ts +32 -1
  20. package/src/color.ts +19 -0
  21. package/src/confetti/consts.ts +13 -13
  22. package/src/confetti/index.ts +20 -2
  23. package/src/confetti/layer.ts +155 -0
  24. package/src/confetti/particle.ts +106 -0
  25. package/src/confetti/shapes.ts +104 -0
  26. package/src/confetti/types.ts +4 -1
  27. package/src/distance.ts +1 -1
  28. package/src/donuts/consts.ts +19 -0
  29. package/src/donuts/donut.ts +12 -0
  30. package/src/donuts/index.ts +9 -0
  31. package/src/donuts/layer.ts +301 -0
  32. package/src/effect.ts +107 -0
  33. package/src/fade.ts +87 -0
  34. package/src/fireflies/consts.ts +3 -0
  35. package/src/fireflies/index.ts +12 -0
  36. package/src/fireflies/layer.ts +169 -0
  37. package/src/fireflies/particle.ts +124 -0
  38. package/src/fireflies/types.ts +17 -0
  39. package/src/firepit/consts.ts +3 -0
  40. package/src/firepit/index.ts +10 -0
  41. package/src/firepit/layer.ts +193 -0
  42. package/src/firepit/types.ts +20 -0
  43. package/src/fireworks/create-explosion.ts +237 -0
  44. package/src/fireworks/explosion.ts +9 -9
  45. package/src/fireworks/firework.ts +9 -8
  46. package/src/fireworks/index.ts +19 -3
  47. package/src/fireworks/layer.ts +203 -0
  48. package/src/fireworks/spark.ts +9 -9
  49. package/src/fireworks/types.ts +2 -2
  50. package/src/glitter/consts.ts +13 -0
  51. package/src/glitter/index.ts +9 -0
  52. package/src/glitter/layer.ts +181 -0
  53. package/src/glitter/types.ts +33 -0
  54. package/src/index.ts +27 -0
  55. package/src/lanterns/consts.ts +13 -0
  56. package/src/lanterns/index.ts +9 -0
  57. package/src/lanterns/layer.ts +178 -0
  58. package/src/lanterns/types.ts +22 -0
  59. package/src/layer.ts +26 -0
  60. package/src/leaves/consts.ts +16 -0
  61. package/src/leaves/index.ts +9 -0
  62. package/src/leaves/layer.ts +258 -0
  63. package/src/leaves/types.ts +25 -0
  64. package/src/lightning/consts.ts +3 -0
  65. package/src/lightning/index.ts +11 -0
  66. package/src/lightning/layer.ts +41 -0
  67. package/src/lightning/system.ts +196 -0
  68. package/src/lightning/types.ts +20 -0
  69. package/src/matrix/consts.ts +5 -0
  70. package/src/matrix/index.ts +9 -0
  71. package/src/matrix/layer.ts +154 -0
  72. package/src/matrix/types.ts +17 -0
  73. package/src/orbits/consts.ts +13 -0
  74. package/src/orbits/index.ts +9 -0
  75. package/src/orbits/layer.ts +213 -0
  76. package/src/orbits/types.ts +27 -0
  77. package/src/particles/consts.ts +3 -0
  78. package/src/particles/index.ts +10 -0
  79. package/src/particles/layer.ts +360 -0
  80. package/src/particles/types.ts +10 -0
  81. package/src/petals/consts.ts +13 -0
  82. package/src/petals/index.ts +10 -0
  83. package/src/petals/layer.ts +174 -0
  84. package/src/petals/types.ts +15 -0
  85. package/src/plasma/consts.ts +3 -0
  86. package/src/plasma/index.ts +10 -0
  87. package/src/plasma/layer.ts +107 -0
  88. package/src/plasma/types.ts +5 -0
  89. package/src/rain/consts.ts +3 -0
  90. package/src/rain/index.ts +12 -0
  91. package/src/rain/layer.ts +194 -0
  92. package/src/rain/particle.ts +132 -0
  93. package/src/rain/types.ts +22 -0
  94. package/src/sandstorm/consts.ts +3 -0
  95. package/src/sandstorm/index.ts +10 -0
  96. package/src/sandstorm/layer.ts +152 -0
  97. package/src/sandstorm/types.ts +10 -0
  98. package/src/scene.ts +201 -0
  99. package/src/shooting-stars/index.ts +3 -0
  100. package/src/shooting-stars/system.ts +151 -0
  101. package/src/shooting-stars/types.ts +11 -0
  102. package/src/simulation-canvas.ts +83 -0
  103. package/src/snow/consts.ts +2 -2
  104. package/src/snow/index.ts +9 -2
  105. package/src/snow/{simulation.ts → layer.ts} +64 -89
  106. package/src/sparklers/consts.ts +3 -0
  107. package/src/sparklers/index.ts +16 -0
  108. package/src/sparklers/layer.ts +220 -0
  109. package/src/sparklers/particle.ts +89 -0
  110. package/src/sparklers/types.ts +13 -0
  111. package/src/stars/consts.ts +3 -0
  112. package/src/stars/index.ts +10 -0
  113. package/src/stars/layer.ts +139 -0
  114. package/src/stars/types.ts +12 -0
  115. package/src/streamers/consts.ts +14 -0
  116. package/src/streamers/index.ts +10 -0
  117. package/src/streamers/layer.ts +223 -0
  118. package/src/streamers/types.ts +14 -0
  119. package/src/trail.ts +140 -0
  120. package/src/waves/consts.ts +3 -0
  121. package/src/waves/index.ts +10 -0
  122. package/src/waves/layer.ts +164 -0
  123. package/src/waves/types.ts +10 -0
  124. package/src/wormhole/consts.ts +3 -0
  125. package/src/wormhole/index.ts +10 -0
  126. package/src/wormhole/layer.ts +197 -0
  127. package/src/wormhole/types.ts +10 -0
  128. package/src/confetti/simulation.ts +0 -221
  129. package/src/fireworks/simulation.ts +0 -493
package/dist/index.d.mts CHANGED
@@ -1,10 +1,214 @@
1
+ //#region src/layer.d.ts
2
+ type EdgeFadeSide = number | [number, number];
3
+ type EdgeFade = {
4
+ readonly top?: EdgeFadeSide;
5
+ readonly bottom?: EdgeFadeSide;
6
+ readonly left?: EdgeFadeSide;
7
+ readonly right?: EdgeFadeSide;
8
+ };
9
+ /**
10
+ * Internal interface implemented by all Effect subclasses. Used by SimulationCanvas
11
+ * and Scene to drive rendering without depending on the generic Effect<TConfig> type.
12
+ */
13
+ interface SimulationLayer {
14
+ fade: EdgeFade | null;
15
+ tick(dt: number, width: number, height: number): void;
16
+ draw(ctx: CanvasRenderingContext2D, width: number, height: number): void;
17
+ onResize(width: number, height: number): void;
18
+ onMount(canvas: HTMLCanvasElement): void;
19
+ onUnmount(canvas: HTMLCanvasElement): void;
20
+ }
21
+ //#endregion
22
+ //#region src/effect.d.ts
23
+ /**
24
+ * Base class for all visual effects. Implements the internal SimulationLayer interface
25
+ * so that effects can be used both standalone (via mount()) and composed in a Scene.
26
+ *
27
+ * @example Standalone usage
28
+ * const snow = new Snow({ particles: 200 });
29
+ * snow.mount(canvas).start();
30
+ *
31
+ * @example Scene composition
32
+ * const scene = new Scene()
33
+ * .mount(canvas)
34
+ * .layer(new Aurora())
35
+ * .layer(new Snow())
36
+ * .start();
37
+ */
38
+ declare abstract class Effect<TConfig = Record<string, unknown>> implements SimulationLayer {
39
+ #private;
40
+ fade: EdgeFade | null;
41
+ abstract tick(dt: number, width: number, height: number): void;
42
+ abstract draw(ctx: CanvasRenderingContext2D, width: number, height: number): void;
43
+ configure(_config: Partial<TConfig>): void;
44
+ onResize(_width: number, _height: number): void;
45
+ onMount(_canvas: HTMLCanvasElement): void;
46
+ onUnmount(_canvas: HTMLCanvasElement): void;
47
+ /**
48
+ * Apply an edge fade mask when rendering this effect standalone or in a Scene.
49
+ */
50
+ withFade(fade: EdgeFade): this;
51
+ /**
52
+ * Mount this effect to a canvas element or CSS selector, creating the render loop.
53
+ * Must be called before start().
54
+ */
55
+ mount(canvas: HTMLCanvasElement | string, options?: CanvasRenderingContext2DSettings): this;
56
+ /**
57
+ * Remove this effect from its canvas and clean up the render loop.
58
+ */
59
+ unmount(): this;
60
+ /**
61
+ * Start the render loop. Call mount() first.
62
+ */
63
+ start(): this;
64
+ /**
65
+ * Pause rendering without destroying state. Use resume() to continue.
66
+ */
67
+ pause(): this;
68
+ /**
69
+ * Resume rendering after a pause().
70
+ */
71
+ resume(): this;
72
+ /**
73
+ * Stop rendering and call onUnmount(). Safe to call multiple times.
74
+ */
75
+ destroy(): void;
76
+ }
77
+ //#endregion
78
+ //#region src/aurora/layer.d.ts
79
+ interface AuroraConfig {
80
+ readonly bands?: number;
81
+ readonly colors?: string[];
82
+ readonly speed?: number;
83
+ readonly intensity?: number;
84
+ readonly waveAmplitude?: number;
85
+ readonly verticalPosition?: number;
86
+ readonly scale?: number;
87
+ }
88
+ //#endregion
89
+ //#region src/aurora/types.d.ts
90
+ type AuroraBand = {
91
+ x: number;
92
+ baseY: number;
93
+ height: number;
94
+ sigma: number;
95
+ phase1: number;
96
+ phase2: number;
97
+ amplitude1: number;
98
+ frequency1: number;
99
+ speed: number;
100
+ hue: number;
101
+ opacity: number;
102
+ };
103
+ //#endregion
104
+ //#region src/aurora/index.d.ts
105
+ declare function createAurora(config?: AuroraConfig): Effect<AuroraConfig>;
106
+ //#endregion
107
+ //#region src/balloons/layer.d.ts
108
+ interface BalloonsConfig {
109
+ readonly count?: number;
110
+ readonly colors?: string[];
111
+ readonly sizeRange?: [number, number];
112
+ readonly speed?: number;
113
+ readonly driftAmount?: number;
114
+ readonly stringLength?: number;
115
+ readonly scale?: number;
116
+ }
117
+ //#endregion
118
+ //#region src/point.d.ts
119
+ type Point = {
120
+ x: number;
121
+ y: number;
122
+ };
123
+ //#endregion
124
+ //#region src/balloons/particle.d.ts
125
+ interface BalloonParticleConfig {
126
+ readonly driftAmp?: number;
127
+ readonly driftFreq?: number;
128
+ readonly driftPhase?: number;
129
+ readonly radiusX?: number;
130
+ readonly radiusY?: number;
131
+ readonly riseSpeed?: number;
132
+ readonly rotationSpeed?: number;
133
+ readonly scale?: number;
134
+ readonly stringLength?: number;
135
+ }
136
+ declare class BalloonParticle {
137
+ #private;
138
+ get isDone(): boolean;
139
+ get position(): Point;
140
+ constructor(position: Point, color: [number, number, number], config?: BalloonParticleConfig);
141
+ draw(ctx: CanvasRenderingContext2D): void;
142
+ tick(dt?: number): void;
143
+ }
144
+ //#endregion
145
+ //#region src/balloons/types.d.ts
146
+ type Balloon = {
147
+ x: number;
148
+ y: number;
149
+ radiusX: number;
150
+ radiusY: number;
151
+ color: [number, number, number];
152
+ driftPhase: number;
153
+ driftFreq: number;
154
+ driftAmp: number;
155
+ riseSpeed: number;
156
+ rotation: number;
157
+ rotationSpeed: number;
158
+ stringLength: number;
159
+ };
160
+ //#endregion
161
+ //#region src/balloons/index.d.ts
162
+ declare function createBalloons(config?: BalloonsConfig): Effect<BalloonsConfig>;
163
+ //#endregion
164
+ //#region src/bubbles/layer.d.ts
165
+ interface BubblesConfig {
166
+ readonly count?: number;
167
+ readonly sizeRange?: [number, number];
168
+ readonly speed?: number;
169
+ readonly popOnClick?: boolean;
170
+ readonly popRadius?: number;
171
+ readonly colors?: string[];
172
+ readonly wobbleAmount?: number;
173
+ readonly scale?: number;
174
+ }
175
+ //#endregion
176
+ //#region src/bubbles/types.d.ts
177
+ type Bubble = {
178
+ x: number;
179
+ y: number;
180
+ radius: number;
181
+ speed: number;
182
+ hue: number;
183
+ wobblePhase: number;
184
+ wobbleFreq: number;
185
+ wobbleAmp: number;
186
+ opacity: number;
187
+ };
188
+ type PopParticle = {
189
+ x: number;
190
+ y: number;
191
+ vx: number;
192
+ vy: number;
193
+ alpha: number;
194
+ size: number;
195
+ decay: number;
196
+ };
197
+ //#endregion
198
+ //#region src/bubbles/index.d.ts
199
+ declare function createBubbles(config?: BubblesConfig): Effect<BubblesConfig>;
200
+ //#endregion
1
201
  //#region src/canvas.d.ts
2
202
  declare class LimitedFrameRateCanvas {
3
203
  #private;
204
+ static get globalSpeed(): number;
205
+ static set globalSpeed(value: number);
4
206
  get canvas(): HTMLCanvasElement;
5
207
  get context(): CanvasRenderingContext2D;
6
208
  get delta(): number;
7
209
  get deltaFactor(): number;
210
+ get speed(): number;
211
+ set speed(value: number);
8
212
  get frameRate(): number;
9
213
  get isSmall(): boolean;
10
214
  get isTicking(): boolean;
@@ -15,6 +219,8 @@ declare class LimitedFrameRateCanvas {
15
219
  loop(): void;
16
220
  start(): void;
17
221
  stop(): void;
222
+ pause(): void;
223
+ resume(): void;
18
224
  draw(): void;
19
225
  tick(): void;
20
226
  destroy(): void;
@@ -22,12 +228,21 @@ declare class LimitedFrameRateCanvas {
22
228
  onVisibilityChange(): void;
23
229
  }
24
230
  //#endregion
231
+ //#region src/color.d.ts
232
+ declare function parseColor(fillStyle: string): {
233
+ r: number;
234
+ g: number;
235
+ b: number;
236
+ a: number;
237
+ };
238
+ //#endregion
25
239
  //#region src/confetti/types.d.ts
26
240
  type Config = {
27
241
  readonly angle: number;
28
242
  readonly colors: string[];
29
243
  readonly decay: number;
30
244
  readonly gravity: number;
245
+ readonly palette: Palette;
31
246
  readonly particles: number;
32
247
  readonly shapes: Shape[];
33
248
  readonly spread: number;
@@ -36,63 +251,873 @@ type Config = {
36
251
  readonly x: number;
37
252
  readonly y: number;
38
253
  };
39
- type Shape = "circle" | "diamond" | "ribbon" | "square" | "star" | "triangle";
254
+ type Palette = "classic" | "pastel" | "vibrant" | "warm";
255
+ type Shape = "bowtie" | "circle" | "crescent" | "diamond" | "heart" | "hexagon" | "ribbon" | "ring" | "square" | "star" | "triangle";
40
256
  //#endregion
41
- //#region src/confetti/simulation.d.ts
42
- interface ConfettiSimulationConfig {
257
+ //#region src/confetti/layer.d.ts
258
+ interface ConfettiConfig {
43
259
  readonly scale?: number;
44
- readonly canvasOptions?: CanvasRenderingContext2DSettings;
45
260
  }
46
- declare class ConfettiSimulation extends LimitedFrameRateCanvas {
261
+ //#endregion
262
+ //#region src/confetti/particle.d.ts
263
+ interface ConfettiParticleConfig {
264
+ readonly decay?: number;
265
+ readonly gravity?: number;
266
+ readonly scale?: number;
267
+ readonly spread?: number;
268
+ readonly startVelocity?: number;
269
+ readonly ticks?: number;
270
+ }
271
+ declare class ConfettiParticle {
47
272
  #private;
48
- constructor(canvas: HTMLCanvasElement, config?: ConfettiSimulationConfig);
49
- fire(config: Partial<Config>): void;
50
- draw(): void;
51
- tick(): void;
52
- onResize(): void;
273
+ get isDead(): boolean;
274
+ get position(): Point;
275
+ constructor(position: Point, direction: number, shape: Shape, color: string, config?: ConfettiParticleConfig);
276
+ draw(ctx: CanvasRenderingContext2D): void;
277
+ tick(dt?: number): void;
53
278
  }
54
279
  //#endregion
55
- //#region src/point.d.ts
56
- type Point = {
280
+ //#region src/confetti/consts.d.ts
281
+ declare const PALETTES: Record<Palette, string[]>;
282
+ //#endregion
283
+ //#region src/confetti/shapes.d.ts
284
+ declare const SHAPE_PATHS: Record<Shape, Path2D>;
285
+ //#endregion
286
+ //#region src/confetti/index.d.ts
287
+ interface ConfettiInstance extends Effect<ConfettiConfig> {
288
+ burst(config: Partial<Config>): void;
289
+ }
290
+ declare function createConfetti(config?: ConfettiConfig): ConfettiInstance;
291
+ //#endregion
292
+ //#region src/donuts/layer.d.ts
293
+ interface DonutsConfig {
294
+ readonly background?: string;
295
+ readonly collisionPadding?: number;
296
+ readonly colors?: string[];
297
+ readonly count?: number;
298
+ readonly mouseAvoidance?: boolean;
299
+ readonly mouseAvoidanceRadius?: number;
300
+ readonly mouseAvoidanceStrength?: number;
301
+ readonly radiusRange?: [number, number];
302
+ readonly repulsionStrength?: number;
303
+ readonly rotationSpeedRange?: [number, number];
304
+ readonly scale?: number;
305
+ readonly speedRange?: [number, number];
306
+ readonly thickness?: number;
307
+ }
308
+ //#endregion
309
+ //#region src/donuts/index.d.ts
310
+ declare function createDonuts(config?: DonutsConfig): Effect<DonutsConfig>;
311
+ //#endregion
312
+ //#region src/fireflies/layer.d.ts
313
+ interface FirefliesConfig {
314
+ readonly count?: number;
315
+ readonly color?: string;
316
+ readonly size?: number;
317
+ readonly speed?: number;
318
+ readonly glowSpeed?: number;
319
+ readonly scale?: number;
320
+ }
321
+ //#endregion
322
+ //#region src/fireflies/particle.d.ts
323
+ interface FireflyParticleConfig {
324
+ readonly glowSpeed?: number;
325
+ readonly scale?: number;
326
+ readonly size?: number;
327
+ readonly speed?: number;
328
+ }
329
+ declare function createFireflySprite(color: string, size?: number): HTMLCanvasElement;
330
+ declare class FireflyParticle {
331
+ #private;
332
+ get position(): {
333
+ x: number;
334
+ y: number;
335
+ };
336
+ constructor(x: number, y: number, bounds: {
337
+ width: number;
338
+ height: number;
339
+ }, sprite: HTMLCanvasElement, config?: FireflyParticleConfig);
340
+ draw(ctx: CanvasRenderingContext2D): void;
341
+ tick(dt?: number): void;
342
+ }
343
+ //#endregion
344
+ //#region src/fireflies/types.d.ts
345
+ type Firefly = {
346
+ x: number;
347
+ y: number;
348
+ size: number;
349
+ phase: number;
350
+ glowSpeed: number;
351
+ freqX1: number;
352
+ freqX2: number;
353
+ freqY1: number;
354
+ freqY2: number;
355
+ phaseX1: number;
356
+ phaseX2: number;
357
+ phaseY1: number;
358
+ phaseY2: number;
359
+ amplitudeX: number;
360
+ amplitudeY: number;
361
+ };
362
+ //#endregion
363
+ //#region src/fireflies/index.d.ts
364
+ declare function createFireflies(config?: FirefliesConfig): Effect<FirefliesConfig>;
365
+ //#endregion
366
+ //#region src/firepit/layer.d.ts
367
+ interface FirepitConfig {
368
+ readonly embers?: number;
369
+ readonly flameWidth?: number;
370
+ readonly flameHeight?: number;
371
+ readonly intensity?: number;
372
+ readonly scale?: number;
373
+ }
374
+ //#endregion
375
+ //#region src/firepit/types.d.ts
376
+ type Ember = {
57
377
  x: number;
58
378
  y: number;
379
+ vx: number;
380
+ vy: number;
381
+ size: number;
382
+ life: number;
383
+ maxLife: number;
384
+ brightness: number;
385
+ flicker: number;
386
+ };
387
+ type FlameLayer = {
388
+ x: number;
389
+ phase: number;
390
+ speed: number;
391
+ amplitude: number;
392
+ width: number;
393
+ height: number;
59
394
  };
60
395
  //#endregion
396
+ //#region src/firepit/index.d.ts
397
+ declare function createFirepit(config?: FirepitConfig): Effect<FirepitConfig>;
398
+ //#endregion
61
399
  //#region src/fireworks/types.d.ts
62
400
  type ExplosionType = "peony" | "chrysanthemum" | "willow" | "ring" | "palm" | "crackle" | "crossette" | "dahlia" | "brocade" | "horsetail" | "strobe" | "heart" | "spiral" | "flower";
63
401
  type FireworkVariant = ExplosionType | "saturn" | "concentric";
64
402
  type ParticleShape = "line" | "circle" | "star" | "diamond";
65
- interface FireworkSimulationConfig {
403
+ interface ExplosionConfig {
404
+ readonly particleCount: [number, number];
405
+ readonly speed: [number, number];
406
+ readonly friction: number;
407
+ readonly gravity: number;
408
+ readonly decay: [number, number];
409
+ readonly trailMemory: number;
410
+ readonly hueVariation: number;
411
+ readonly brightness: [number, number];
412
+ readonly lineWidthScale: number;
413
+ readonly shape: ParticleShape;
414
+ readonly sparkle: boolean;
415
+ readonly strobe: boolean;
416
+ readonly spread3d: boolean;
417
+ readonly glowSize: number;
418
+ }
419
+ interface FireworksConfig {
66
420
  readonly scale?: number;
67
421
  readonly autoSpawn?: boolean;
68
- readonly canvasOptions?: CanvasRenderingContext2DSettings;
422
+ readonly variants?: FireworkVariant[];
69
423
  }
70
424
  declare const FIREWORK_VARIANTS: FireworkVariant[];
425
+ declare const EXPLOSION_CONFIGS: Record<ExplosionType, ExplosionConfig>;
71
426
  //#endregion
72
- //#region src/fireworks/simulation.d.ts
73
- declare class FireworkSimulation extends LimitedFrameRateCanvas {
427
+ //#region src/fireworks/explosion.d.ts
428
+ declare class Explosion {
74
429
  #private;
75
- constructor(canvas: HTMLCanvasElement, config?: FireworkSimulationConfig);
76
- draw(): void;
77
- fireExplosion(variant: FireworkVariant, position?: Point): void;
78
- tick(): void;
430
+ get angle(): number;
431
+ get hue(): number;
432
+ get isDead(): boolean;
433
+ get position(): Point;
434
+ get type(): ExplosionType;
435
+ constructor(position: Point, hue: number, lineWidth: number, type: ExplosionType, scale?: number, angle?: number, speed?: number, vz?: number);
436
+ checkCrackle(): boolean;
437
+ checkSplit(): boolean;
438
+ draw(ctx: CanvasRenderingContext2D): void;
439
+ tick(dt: number): void;
440
+ }
441
+ //#endregion
442
+ //#region src/fireworks/create-explosion.d.ts
443
+ /**
444
+ * Creates an array of {@link Explosion} particles for the given firework variant.
445
+ * Use this to fire a fully formed explosion burst in your own render loop without
446
+ * needing a {@link Fireworks} instance.
447
+ *
448
+ * @param variant - The firework variant to create.
449
+ * @param position - The center position of the explosion in canvas pixels.
450
+ * @param hue - Base hue in degrees (0–360).
451
+ * @param options - Optional overrides for `lineWidth` (default `5`) and `scale` (default `1`).
452
+ * @param rng - RNG function returning values in [0, 1). Defaults to `Math.random`.
453
+ */
454
+ declare function createExplosion(variant: FireworkVariant, position: Point, hue: number, options?: {
455
+ lineWidth?: number;
456
+ scale?: number;
457
+ }, rng?: () => number): Explosion[];
458
+ //#endregion
459
+ //#region src/fireworks/spark.d.ts
460
+ declare class Spark {
461
+ #private;
462
+ get isDead(): boolean;
463
+ get position(): Point;
464
+ constructor(position: Point, hue: number, velocityX?: number, velocityY?: number);
465
+ draw(ctx: CanvasRenderingContext2D): void;
466
+ tick(dt: number): void;
467
+ }
468
+ //#endregion
469
+ //#region src/fireworks/firework.d.ts
470
+ declare class Firework extends EventTarget {
471
+ #private;
472
+ get position(): Point;
473
+ get hue(): number;
474
+ constructor(start: Point, target: Point, hue: number, tailWidth: number, baseSize: number);
475
+ collectSparks(): Spark[];
476
+ draw(ctx: CanvasRenderingContext2D): void;
477
+ tick(dt: number): void;
478
+ }
479
+ //#endregion
480
+ //#region src/fireworks/index.d.ts
481
+ interface FireworksInstance extends Effect<FireworksConfig> {
482
+ launch(variant: FireworkVariant, position?: Point): void;
483
+ }
484
+ declare function createFireworks(config?: FireworksConfig): FireworksInstance;
485
+ //#endregion
486
+ //#region src/glitter/types.d.ts
487
+ interface GlitterConfig {
488
+ readonly count?: number;
489
+ readonly colors?: string[];
490
+ readonly size?: number;
491
+ readonly speed?: number;
492
+ readonly groundLevel?: number;
493
+ readonly maxSettled?: number;
494
+ readonly scale?: number;
495
+ }
496
+ type FallingGlitter = {
497
+ x: number;
498
+ y: number;
499
+ vy: number;
500
+ size: number;
501
+ rotation: number;
502
+ rotationSpeed: number;
503
+ flipAngle: number;
504
+ flipSpeed: number;
505
+ sparkle: number;
506
+ colorIndex: number;
507
+ settled: boolean;
508
+ };
509
+ type SettledGlitter = {
510
+ x: number;
511
+ y: number;
512
+ size: number;
513
+ rotation: number;
514
+ sparklePhase: number;
515
+ sparkleSpeed: number;
516
+ colorIndex: number;
517
+ };
518
+ //#endregion
519
+ //#region src/glitter/index.d.ts
520
+ declare function createGlitter(config?: GlitterConfig): Effect<GlitterConfig>;
521
+ //#endregion
522
+ //#region src/lanterns/types.d.ts
523
+ interface LanternsConfig {
524
+ readonly count?: number;
525
+ readonly colors?: string[];
526
+ readonly size?: number;
527
+ readonly speed?: number;
528
+ readonly scale?: number;
529
+ }
530
+ type Lantern = {
531
+ x: number;
532
+ y: number;
533
+ vx: number;
534
+ vy: number;
535
+ size: number;
536
+ glowPhase: number;
537
+ glowSpeed: number;
538
+ swayPhase: number;
539
+ swaySpeed: number;
540
+ swayAmplitude: number;
541
+ colorIndex: number;
542
+ opacity: number;
543
+ };
544
+ //#endregion
545
+ //#region src/lanterns/index.d.ts
546
+ declare function createLanterns(config?: LanternsConfig): Effect<LanternsConfig>;
547
+ //#endregion
548
+ //#region src/leaves/types.d.ts
549
+ interface LeavesConfig {
550
+ readonly count?: number;
551
+ readonly colors?: string[];
552
+ readonly size?: number;
553
+ readonly speed?: number;
554
+ readonly wind?: number;
555
+ readonly scale?: number;
556
+ }
557
+ type Leaf = {
558
+ x: number;
559
+ y: number;
560
+ size: number;
561
+ depth: number;
562
+ rotation: number;
563
+ rotationSpeed: number;
564
+ flipAngle: number;
565
+ flipSpeed: number;
566
+ swingAmplitude: number;
567
+ swingFrequency: number;
568
+ swingOffset: number;
569
+ fallSpeed: number;
570
+ shape: number;
571
+ colorIndex: number;
572
+ };
573
+ //#endregion
574
+ //#region src/leaves/index.d.ts
575
+ declare function createLeaves(config?: LeavesConfig): Effect<LeavesConfig>;
576
+ //#endregion
577
+ //#region src/lightning/types.d.ts
578
+ interface LightningConfig {
579
+ readonly frequency?: number;
580
+ readonly color?: string;
581
+ readonly branches?: boolean;
582
+ readonly flash?: boolean;
583
+ readonly scale?: number;
584
+ }
585
+ type LightningBranch = {
586
+ segments: {
587
+ x: number;
588
+ y: number;
589
+ }[];
590
+ alpha: number;
591
+ };
592
+ type LightningBolt = {
593
+ segments: {
594
+ x: number;
595
+ y: number;
596
+ }[];
597
+ branches: LightningBranch[];
598
+ alpha: number;
599
+ lifetime: number;
600
+ ticksAlive: number;
601
+ };
602
+ //#endregion
603
+ //#region src/lightning/system.d.ts
604
+ interface LightningSystemConfig {
605
+ readonly frequency?: number;
606
+ readonly color?: [number, number, number];
607
+ readonly branches?: boolean;
608
+ readonly flash?: boolean;
609
+ readonly scale?: number;
610
+ readonly groundLevel?: number;
611
+ }
612
+ declare class LightningSystem {
613
+ #private;
614
+ get flashAlpha(): number;
615
+ constructor(config: LightningSystemConfig, rng: () => number);
616
+ tick(dt: number): void;
617
+ draw(ctx: CanvasRenderingContext2D, width: number, height: number): void;
79
618
  }
80
619
  //#endregion
81
- //#region src/snow/simulation.d.ts
82
- interface SnowSimulationConfig {
620
+ //#region src/lightning/index.d.ts
621
+ declare function createLightning(config?: LightningConfig): Effect<LightningConfig>;
622
+ //#endregion
623
+ //#region src/matrix/types.d.ts
624
+ interface MatrixConfig {
625
+ readonly columns?: number;
626
+ readonly speed?: number;
627
+ readonly color?: string;
628
+ readonly fontSize?: number;
629
+ readonly trailLength?: number;
630
+ readonly scale?: number;
631
+ }
632
+ type MatrixColumn = {
633
+ x: number;
634
+ y: number;
635
+ speed: number;
636
+ chars: string[];
637
+ length: number;
638
+ headBrightness: number;
639
+ };
640
+ //#endregion
641
+ //#region src/matrix/index.d.ts
642
+ declare function createMatrix(config?: MatrixConfig): Effect<MatrixConfig>;
643
+ //#endregion
644
+ //#region src/orbits/types.d.ts
645
+ interface OrbitsConfig {
646
+ readonly centers?: number;
647
+ readonly orbitersPerCenter?: number;
648
+ readonly speed?: number;
649
+ readonly colors?: string[];
650
+ readonly trailLength?: number;
651
+ readonly showCenters?: boolean;
652
+ readonly scale?: number;
653
+ }
654
+ type OrbitalCenter = {
655
+ x: number;
656
+ y: number;
657
+ };
658
+ type Orbiter = {
659
+ centerIndex: number;
660
+ angle: number;
661
+ angularSpeed: number;
662
+ radiusX: number;
663
+ radiusY: number;
664
+ tilt: number;
665
+ size: number;
666
+ color: string;
667
+ trail: {
668
+ x: number;
669
+ y: number;
670
+ }[];
671
+ trailHead: number;
672
+ };
673
+ //#endregion
674
+ //#region src/orbits/index.d.ts
675
+ declare function createOrbits(config?: OrbitsConfig): Effect<OrbitsConfig>;
676
+ //#endregion
677
+ //#region src/particles/types.d.ts
678
+ type ParticleMouseMode = "attract" | "repel" | "connect" | "none";
679
+ type NetworkParticle = {
680
+ x: number;
681
+ y: number;
682
+ vx: number;
683
+ vy: number;
684
+ radius: number;
685
+ baseSpeed: number;
686
+ };
687
+ //#endregion
688
+ //#region src/particles/layer.d.ts
689
+ interface ParticlesConfig {
690
+ readonly count?: number;
691
+ readonly color?: string;
692
+ readonly lineColor?: string;
693
+ readonly size?: [number, number];
694
+ readonly speed?: [number, number];
695
+ readonly connectionDistance?: number;
696
+ readonly lineWidth?: number;
697
+ readonly mouseMode?: ParticleMouseMode;
698
+ readonly mouseRadius?: number;
699
+ readonly mouseStrength?: number;
700
+ readonly particleForces?: boolean;
701
+ readonly glow?: boolean;
702
+ readonly background?: string | null;
703
+ readonly scale?: number;
704
+ }
705
+ //#endregion
706
+ //#region src/particles/index.d.ts
707
+ declare function createParticles(config?: ParticlesConfig): Effect<ParticlesConfig>;
708
+ //#endregion
709
+ //#region src/petals/layer.d.ts
710
+ interface PetalsConfig {
711
+ readonly count?: number;
712
+ readonly colors?: string[];
713
+ readonly size?: number;
714
+ readonly speed?: number;
715
+ readonly wind?: number;
716
+ readonly scale?: number;
717
+ }
718
+ //#endregion
719
+ //#region src/petals/types.d.ts
720
+ type Petal = {
721
+ x: number;
722
+ y: number;
723
+ size: number;
724
+ depth: number;
725
+ rotation: number;
726
+ rotationSpeed: number;
727
+ flipAngle: number;
728
+ flipSpeed: number;
729
+ swingAmplitude: number;
730
+ swingFrequency: number;
731
+ swingOffset: number;
732
+ fallSpeed: number;
733
+ colorIndex: number;
734
+ };
735
+ //#endregion
736
+ //#region src/petals/index.d.ts
737
+ declare function createPetals(config?: PetalsConfig): Effect<PetalsConfig>;
738
+ //#endregion
739
+ //#region src/plasma/types.d.ts
740
+ type PlasmaColor = {
741
+ r: number;
742
+ g: number;
743
+ b: number;
744
+ };
745
+ //#endregion
746
+ //#region src/plasma/layer.d.ts
747
+ interface PlasmaConfig {
748
+ readonly speed?: number;
749
+ readonly scale?: number;
750
+ readonly resolution?: number;
751
+ readonly palette?: PlasmaColor[];
752
+ }
753
+ //#endregion
754
+ //#region src/plasma/index.d.ts
755
+ declare function createPlasma(config?: PlasmaConfig): Effect<PlasmaConfig>;
756
+ //#endregion
757
+ //#region src/rain/types.d.ts
758
+ type RainVariant = "drizzle" | "downpour" | "thunderstorm";
759
+ type Raindrop = {
760
+ x: number;
761
+ y: number;
762
+ vx: number;
763
+ vy: number;
764
+ length: number;
765
+ speed: number;
766
+ depth: number;
767
+ opacity: number;
768
+ };
769
+ type Splash = {
770
+ x: number;
771
+ y: number;
772
+ vx: number;
773
+ vy: number;
774
+ alpha: number;
775
+ size: number;
776
+ gravity: number;
777
+ };
778
+ //#endregion
779
+ //#region src/rain/layer.d.ts
780
+ interface RainConfig {
781
+ readonly variant?: RainVariant;
782
+ readonly drops?: number;
783
+ readonly wind?: number;
784
+ readonly speed?: number;
785
+ readonly splashes?: boolean;
786
+ readonly color?: string;
787
+ readonly groundLevel?: number;
788
+ readonly scale?: number;
789
+ }
790
+ //#endregion
791
+ //#region src/rain/particle.d.ts
792
+ interface RaindropParticleConfig {
793
+ readonly depth?: number;
794
+ readonly groundY?: number;
795
+ readonly length?: number;
796
+ readonly scale?: number;
797
+ }
798
+ interface SplashParticleConfig {
799
+ readonly gravity?: number;
800
+ readonly scale?: number;
801
+ readonly size?: number;
802
+ }
803
+ declare class RaindropParticle {
804
+ #private;
805
+ get isDead(): boolean;
806
+ get position(): Point;
807
+ constructor(position: Point, velocity: Point, color: [number, number, number], config?: RaindropParticleConfig);
808
+ draw(ctx: CanvasRenderingContext2D): void;
809
+ tick(dt?: number): void;
810
+ }
811
+ declare class SplashParticle {
812
+ #private;
813
+ get isDead(): boolean;
814
+ get position(): Point;
815
+ constructor(position: Point, velocity: Point, color: [number, number, number], config?: SplashParticleConfig);
816
+ static burst(position: Point, color: [number, number, number], config?: SplashParticleConfig): SplashParticle[];
817
+ draw(ctx: CanvasRenderingContext2D): void;
818
+ tick(dt?: number): void;
819
+ }
820
+ //#endregion
821
+ //#region src/rain/index.d.ts
822
+ declare function createRain(config?: RainConfig): Effect<RainConfig>;
823
+ //#endregion
824
+ //#region src/sandstorm/layer.d.ts
825
+ interface SandstormConfig {
826
+ readonly count?: number;
827
+ readonly wind?: number;
828
+ readonly turbulence?: number;
829
+ readonly color?: string;
830
+ readonly hazeOpacity?: number;
831
+ readonly scale?: number;
832
+ }
833
+ //#endregion
834
+ //#region src/sandstorm/types.d.ts
835
+ type SandGrain = {
836
+ x: number;
837
+ y: number;
838
+ vx: number;
839
+ vy: number;
840
+ size: number;
841
+ depth: number;
842
+ opacity: number;
843
+ turbulenceOffset: number;
844
+ };
845
+ //#endregion
846
+ //#region src/sandstorm/index.d.ts
847
+ declare function createSandstorm(config?: SandstormConfig): Effect<SandstormConfig>;
848
+ //#endregion
849
+ //#region src/scene.d.ts
850
+ /**
851
+ * Composable canvas that renders multiple Effect layers in order (first = bottom, last = top).
852
+ *
853
+ * @example
854
+ * const scene = new Scene()
855
+ * .mount(canvas)
856
+ * .layer(new Aurora({ bands: 5 }))
857
+ * .layer(new Stars().withFade({ bottom: 0.4 }))
858
+ * .start();
859
+ */
860
+ declare class Scene {
861
+ #private;
862
+ constructor(frameRate?: number, options?: CanvasRenderingContext2DSettings);
863
+ /**
864
+ * Mount the scene to a canvas element or CSS selector.
865
+ */
866
+ mount(canvas: HTMLCanvasElement | string, options?: CanvasRenderingContext2DSettings): this;
867
+ /**
868
+ * Add an effect layer. Layers are rendered in the order they are added.
869
+ * If the scene is already running, the layer is mounted immediately.
870
+ */
871
+ layer(effect: SimulationLayer): this;
872
+ /**
873
+ * Start the render loop.
874
+ */
875
+ start(): this;
876
+ /**
877
+ * Pause rendering without destroying state. Use resume() to continue.
878
+ */
879
+ pause(): this;
880
+ /**
881
+ * Resume rendering after pause().
882
+ */
883
+ resume(): this;
884
+ /**
885
+ * Stop and destroy all layers.
886
+ */
887
+ destroy(): void;
888
+ get speed(): number;
889
+ set speed(value: number);
890
+ get isTicking(): boolean;
891
+ }
892
+ /**
893
+ * Factory alternative to `new Scene()`. Call .mount() and .layer() on the returned instance.
894
+ */
895
+ declare function createScene(frameRate?: number, options?: CanvasRenderingContext2DSettings): Scene;
896
+ //#endregion
897
+ //#region src/shooting-stars/system.d.ts
898
+ interface ShootingStarSystemConfig {
899
+ readonly interval: [number, number];
900
+ readonly color?: [number, number, number];
901
+ readonly trailLength?: number;
902
+ readonly trailAlphaFactor?: number;
903
+ readonly speed?: number;
904
+ readonly scale?: number;
905
+ readonly alphaMin?: number;
906
+ readonly alphaRange?: number;
907
+ readonly decayMin?: number;
908
+ readonly decayRange?: number;
909
+ }
910
+ declare class ShootingStarSystem {
911
+ #private;
912
+ constructor(config: ShootingStarSystemConfig, rng: () => number);
913
+ tick(dt: number, width: number, height: number): void;
914
+ draw(ctx: CanvasRenderingContext2D): void;
915
+ }
916
+ //#endregion
917
+ //#region src/shooting-stars/types.d.ts
918
+ type ShootingStar = {
919
+ x: number;
920
+ y: number;
921
+ vx: number;
922
+ vy: number;
923
+ alpha: number;
924
+ size: number;
925
+ decay: number;
926
+ trail: {
927
+ x: number;
928
+ y: number;
929
+ }[];
930
+ trailHead: number;
931
+ };
932
+ //#endregion
933
+ //#region src/snow/layer.d.ts
934
+ interface SnowConfig {
83
935
  readonly fillStyle?: string;
84
936
  readonly particles?: number;
85
937
  readonly scale?: number;
86
938
  readonly size?: number;
87
939
  readonly speed?: number;
88
- readonly canvasOptions?: CanvasRenderingContext2DSettings;
89
940
  }
90
- declare class SnowSimulation extends LimitedFrameRateCanvas {
941
+ //#endregion
942
+ //#region src/snow/index.d.ts
943
+ declare function createSnow(config?: SnowConfig): Effect<SnowConfig>;
944
+ //#endregion
945
+ //#region src/sparklers/layer.d.ts
946
+ interface SparklersConfig {
947
+ readonly emitRate?: number;
948
+ readonly maxSparks?: number;
949
+ readonly colors?: string[];
950
+ readonly speed?: [number, number];
951
+ readonly friction?: number;
952
+ readonly gravity?: number;
953
+ readonly decay?: [number, number];
954
+ readonly trailLength?: number;
955
+ readonly hoverMode?: boolean;
956
+ readonly scale?: number;
957
+ }
958
+ //#endregion
959
+ //#region src/sparklers/particle.d.ts
960
+ interface SparklerParticleConfig {
961
+ readonly decay?: number;
962
+ readonly friction?: number;
963
+ readonly gravity?: number;
964
+ readonly scale?: number;
965
+ readonly size?: number;
966
+ readonly trailLength?: number;
967
+ }
968
+ declare class SparklerParticle {
91
969
  #private;
92
- constructor(canvas: HTMLCanvasElement, config?: SnowSimulationConfig);
93
- draw(): void;
94
- tick(): void;
970
+ get isDead(): boolean;
971
+ get position(): Point;
972
+ constructor(position: Point, velocity: Point, color: [number, number, number], config?: SparklerParticleConfig);
973
+ draw(ctx: CanvasRenderingContext2D): void;
974
+ tick(dt?: number): void;
975
+ }
976
+ //#endregion
977
+ //#region src/sparklers/types.d.ts
978
+ type SparklerSpark = {
979
+ x: number;
980
+ y: number;
981
+ vx: number;
982
+ vy: number;
983
+ alpha: number;
984
+ color: [number, number, number];
985
+ size: number;
986
+ decay: number;
987
+ trail: Point[];
988
+ };
989
+ //#endregion
990
+ //#region src/sparklers/index.d.ts
991
+ interface SparklersInstance extends Effect<SparklersConfig> {
992
+ moveTo(x: number, y: number): void;
993
+ }
994
+ declare function createSparklers(config?: SparklersConfig): SparklersInstance;
995
+ //#endregion
996
+ //#region src/stars/types.d.ts
997
+ type StarMode = "sky" | "shooting" | "both";
998
+ type Star = {
999
+ x: number;
1000
+ y: number;
1001
+ size: number;
1002
+ twinklePhase: number;
1003
+ twinkleSpeed: number;
1004
+ brightness: number;
1005
+ };
1006
+ //#endregion
1007
+ //#region src/stars/layer.d.ts
1008
+ interface StarsConfig {
1009
+ readonly mode?: StarMode;
1010
+ readonly starCount?: number;
1011
+ readonly shootingInterval?: [number, number];
1012
+ readonly shootingSpeed?: number;
1013
+ readonly twinkleSpeed?: number;
1014
+ readonly color?: string;
1015
+ readonly shootingColor?: string;
1016
+ readonly trailLength?: number;
1017
+ readonly scale?: number;
1018
+ }
1019
+ //#endregion
1020
+ //#region src/stars/index.d.ts
1021
+ declare function createStars(config?: StarsConfig): Effect<StarsConfig>;
1022
+ //#endregion
1023
+ //#region src/streamers/layer.d.ts
1024
+ interface StreamersConfig {
1025
+ readonly count?: number;
1026
+ readonly colors?: string[];
1027
+ readonly speed?: number;
1028
+ readonly scale?: number;
95
1029
  }
96
1030
  //#endregion
97
- export { ConfettiSimulation, ConfettiSimulationConfig, ExplosionType, FIREWORK_VARIANTS, FireworkSimulation, FireworkSimulationConfig, FireworkVariant, LimitedFrameRateCanvas, ParticleShape, SnowSimulation, SnowSimulationConfig };
1031
+ //#region src/streamers/types.d.ts
1032
+ type Streamer = {
1033
+ x: number;
1034
+ y: number;
1035
+ length: number;
1036
+ width: number;
1037
+ segments: {
1038
+ x: number;
1039
+ y: number;
1040
+ }[];
1041
+ fallSpeed: number;
1042
+ swayPhase: number;
1043
+ swaySpeed: number;
1044
+ swayAmplitude: number;
1045
+ color: string;
1046
+ curl: number;
1047
+ depth: number;
1048
+ };
1049
+ //#endregion
1050
+ //#region src/streamers/index.d.ts
1051
+ declare function createStreamers(config?: StreamersConfig): Effect<StreamersConfig>;
1052
+ //#endregion
1053
+ //#region src/trail.d.ts
1054
+ interface TrailConfig {
1055
+ readonly acceleration?: number;
1056
+ readonly brightness?: number;
1057
+ readonly glow?: number;
1058
+ readonly hue?: number;
1059
+ readonly length?: number;
1060
+ readonly speed?: number;
1061
+ readonly width?: number;
1062
+ }
1063
+ declare class Trail {
1064
+ #private;
1065
+ get hue(): number;
1066
+ get isDone(): boolean;
1067
+ get position(): Point;
1068
+ collectSparks(): Spark[];
1069
+ constructor(start: Point, end: Point, config?: TrailConfig);
1070
+ draw(ctx: CanvasRenderingContext2D): void;
1071
+ tick(dt?: number): void;
1072
+ }
1073
+ //#endregion
1074
+ //#region src/waves/layer.d.ts
1075
+ interface WavesConfig {
1076
+ readonly layers?: number;
1077
+ readonly speed?: number;
1078
+ readonly colors?: string[];
1079
+ readonly foamColor?: string;
1080
+ readonly foamAmount?: number;
1081
+ readonly scale?: number;
1082
+ }
1083
+ //#endregion
1084
+ //#region src/waves/types.d.ts
1085
+ type Wave = {
1086
+ amplitude: number;
1087
+ frequency: number;
1088
+ speed: number;
1089
+ phase: number;
1090
+ baseY: number;
1091
+ color: string;
1092
+ foamThreshold: number;
1093
+ rgb: [number, number, number];
1094
+ };
1095
+ //#endregion
1096
+ //#region src/waves/index.d.ts
1097
+ declare function createWaves(config?: WavesConfig): Effect<WavesConfig>;
1098
+ //#endregion
1099
+ //#region src/wormhole/types.d.ts
1100
+ type WormholeDirection = "inward" | "outward";
1101
+ type WormholeParticle = {
1102
+ angle: number;
1103
+ distance: number;
1104
+ speed: number;
1105
+ size: number;
1106
+ brightness: number;
1107
+ trail: number;
1108
+ };
1109
+ //#endregion
1110
+ //#region src/wormhole/layer.d.ts
1111
+ interface WormholeConfig {
1112
+ readonly count?: number;
1113
+ readonly speed?: number;
1114
+ readonly color?: string;
1115
+ readonly direction?: WormholeDirection;
1116
+ readonly scale?: number;
1117
+ }
1118
+ //#endregion
1119
+ //#region src/wormhole/index.d.ts
1120
+ declare function createWormhole(config?: WormholeConfig): Effect<WormholeConfig>;
1121
+ //#endregion
1122
+ export { type AuroraBand, type AuroraConfig, type Balloon, BalloonParticle, type BalloonParticleConfig, type BalloonsConfig, type Bubble, type BubblesConfig, type Config as ConfettiBurstConfig, type ConfettiConfig, ConfettiInstance, ConfettiParticle, type ConfettiParticleConfig, type Shape as ConfettiShape, type DonutsConfig, EXPLOSION_CONFIGS, type EdgeFade, type EdgeFadeSide, Effect, type Ember, Explosion, type ExplosionConfig, type ExplosionType, FIREWORK_VARIANTS, type FallingGlitter, type FirefliesConfig, type Firefly, FireflyParticle, type FireflyParticleConfig, type FirepitConfig, Firework, type FireworkVariant, type FireworksConfig, FireworksInstance, type FlameLayer, type GlitterConfig, type Lantern, type LanternsConfig, type Leaf, type LeavesConfig, type LightningBolt, type LightningBranch, type LightningConfig, LightningSystem, type LightningSystemConfig, LimitedFrameRateCanvas, type MatrixColumn, type MatrixConfig, type NetworkParticle, type OrbitalCenter, type Orbiter, type OrbitsConfig, PALETTES, type Palette, type ParticleMouseMode, type ParticleShape, type ParticlesConfig, type Petal, type PetalsConfig, type PlasmaColor, type PlasmaConfig, type PopParticle, type RainConfig, type RainVariant, type Raindrop, RaindropParticle, type RaindropParticleConfig, SHAPE_PATHS, type SandGrain, type SandstormConfig, Scene, type SettledGlitter, type ShootingStar, ShootingStarSystem, ShootingStarSystemConfig, type SnowConfig, Spark, SparklerParticle, type SparklerParticleConfig, type SparklerSpark, type SparklersConfig, SparklersInstance, type Splash, SplashParticle, type SplashParticleConfig, type Star, type StarMode, type StarsConfig, type Streamer, type StreamersConfig, Trail, TrailConfig, type Wave, type WavesConfig, type WormholeConfig, type WormholeDirection, type WormholeParticle, createAurora, createBalloons, createBubbles, createConfetti, createDonuts, createExplosion, createFireflies, createFireflySprite, createFirepit, createFireworks, createGlitter, createLanterns, createLeaves, createLightning, createMatrix, createOrbits, createParticles, createPetals, createPlasma, createRain, createSandstorm, createScene, createSnow, createSparklers, createStars, createStreamers, createWaves, createWormhole, parseColor };
98
1123
  //# sourceMappingURL=index.d.mts.map