@betorigami/game-calculations 0.0.0-sha-3ed5bba-20251102230644 → 0.0.0-sha-ae81801-20251102232318

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.
@@ -0,0 +1,1590 @@
1
+ // Generated by dts-bundle-generator v9.5.1
2
+
3
+ import Big$1 from 'big.js';
4
+ import { Big as Big$1 } from 'big.js';
5
+
6
+ export type Proof = {
7
+ proofHash: string;
8
+ proofString: string;
9
+ };
10
+ export type SingleRandomValue = {
11
+ value: number;
12
+ values: number[];
13
+ count: 1;
14
+ min: number;
15
+ max: number;
16
+ } & Proof;
17
+ export type MultipleRandomValues = {
18
+ values: number[];
19
+ count: number;
20
+ min: number;
21
+ max: number;
22
+ } & Proof;
23
+ export interface RandomNumberGenerator {
24
+ getRandomInt({ min, max }: {
25
+ min: number;
26
+ max: number;
27
+ }): SingleRandomValue;
28
+ getUniqueRandomInts({ min, max, count }: {
29
+ min: number;
30
+ max: number;
31
+ count: number;
32
+ }): MultipleRandomValues;
33
+ getRandomIntsWithReplacement({ min, max, count }: {
34
+ min: number;
35
+ max: number;
36
+ count: number;
37
+ }): MultipleRandomValues;
38
+ }
39
+ export declare enum OrigamiGame {
40
+ DICE = "DICE",
41
+ MINES = "MINES",
42
+ KENO = "KENO",
43
+ LIMBO = "LIMBO",
44
+ ADVANCED_DICE = "ADVANCED_DICE",
45
+ BACCARAT = "BACCARAT",
46
+ DIAMONDS = "DIAMONDS",
47
+ PLINKO = "PLINKO",
48
+ ROULETTE = "ROULETTE",
49
+ WHEEL = "WHEEL"
50
+ }
51
+ export type EmptyGameOutput = {};
52
+ export interface GetGameResultRequest<TGameInputs> {
53
+ generator: RandomNumberGenerator;
54
+ edge: number;
55
+ gameInputs: TGameInputs;
56
+ }
57
+ export interface GameResult<TGameOutputs = EmptyGameOutput> {
58
+ isFinished: boolean;
59
+ payoutMultiplier: Big$1;
60
+ outputs: TGameOutputs & {
61
+ result: number[];
62
+ };
63
+ randomValues: SingleRandomValue | MultipleRandomValues;
64
+ }
65
+ export declare abstract class Game<TGameInputs, TGameOutputs = EmptyGameOutput> {
66
+ readonly gameId: OrigamiGame;
67
+ protected constructor(gameId: OrigamiGame);
68
+ getGameResult(request: GetGameResultRequest<TGameInputs>): GameResult<TGameOutputs>;
69
+ protected abstract determineGameResult(request: GetGameResultRequest<TGameInputs>): GameResult<TGameOutputs>;
70
+ }
71
+ export type Bounds = {
72
+ lower: number;
73
+ upper: number;
74
+ };
75
+ export type RollBetween = {
76
+ mode: "roll-between";
77
+ bounds: Bounds;
78
+ };
79
+ export type RollOutside = {
80
+ mode: "roll-outside";
81
+ bounds: Bounds;
82
+ };
83
+ export type RollBetweenTwo = {
84
+ mode: "roll-between-two";
85
+ firstBounds: Bounds;
86
+ secondBounds: Bounds;
87
+ };
88
+ export type AdvancedDiceInputs = RollBetween | RollOutside | RollBetweenTwo;
89
+ export declare class AdvancedDice extends Game<AdvancedDiceInputs> {
90
+ constructor();
91
+ protected determineGameResult({ generator, edge, gameInputs }: GetGameResultRequest<AdvancedDiceInputs>): GameResult;
92
+ private calculateRollBetweenPayoutMultiplier;
93
+ private calculateRollOutsidePayoutMultiplier;
94
+ private calculateRollBetweenTwoPayoutMultiplier;
95
+ }
96
+ export interface PlayerBet {
97
+ amount: Big$1;
98
+ }
99
+ export interface TieBet {
100
+ amount: Big$1;
101
+ }
102
+ export interface BankerBet {
103
+ amount: Big$1;
104
+ }
105
+ export interface BaccaratGameInputs {
106
+ playerBets: PlayerBet[];
107
+ tieBets: TieBet[];
108
+ bankerBets: BankerBet[];
109
+ }
110
+ export declare const VALID_SUITS: readonly [
111
+ "Clubs",
112
+ "Diamonds",
113
+ "Hearts",
114
+ "Spades"
115
+ ];
116
+ export declare const VALID_RANKS: readonly [
117
+ "Ace",
118
+ "2",
119
+ "3",
120
+ "4",
121
+ "5",
122
+ "6",
123
+ "7",
124
+ "8",
125
+ "9",
126
+ "10",
127
+ "Jack",
128
+ "Queen",
129
+ "King"
130
+ ];
131
+ export type Suit = (typeof VALID_SUITS)[number];
132
+ export type Rank = (typeof VALID_RANKS)[number];
133
+ export interface Card {
134
+ suit: Suit;
135
+ rank: Rank;
136
+ }
137
+ export declare enum BaccaratOutcome {
138
+ PLAYER_WIN = "PLAYER_WIN",
139
+ TIE = "TIE",
140
+ BANKER_WIN = "BANKER_WIN"
141
+ }
142
+ export interface BaccaratGameOutputs {
143
+ playerCards: Card[];
144
+ playerHandValue: number;
145
+ bankerCards: Card[];
146
+ bankerHandValue: number;
147
+ gameOutcome: BaccaratOutcome;
148
+ }
149
+ export declare class Baccarat extends Game<BaccaratGameInputs, BaccaratGameOutputs> {
150
+ constructor();
151
+ protected determineGameResult({ generator, gameInputs, edge }: GetGameResultRequest<BaccaratGameInputs>): GameResult<BaccaratGameOutputs>;
152
+ private validateGameInputs;
153
+ private mapRandomValueToCard;
154
+ private isNaturalWin;
155
+ private mapRandomValueToCardValue;
156
+ private shouldDrawThirdPlayerCard;
157
+ private shouldDrawThirdBankerCard;
158
+ }
159
+ export interface DiamondsGameInputs {
160
+ }
161
+ export declare enum DiamondsResultType {
162
+ PAIR = "PAIR",
163
+ TWO_PAIR = "TWO_PAIR",
164
+ THREE_OF_A_KIND = "THREE_OF_A_KIND",
165
+ FULL_HOUSE = "FULL_HOUSE",
166
+ FOUR_OF_A_KIND = "FOUR_OF_A_KIND",
167
+ FIVE_OF_A_KIND = "FIVE_OF_A_KIND"
168
+ }
169
+ export type DiamondsMultipliers = Record<keyof typeof DiamondsResultType, number>;
170
+ export declare class Diamonds extends Game<DiamondsGameInputs> {
171
+ readonly multiplierOverrides?: DiamondsMultipliers | undefined;
172
+ private get multipliers();
173
+ constructor(multiplierOverrides?: DiamondsMultipliers | undefined);
174
+ protected determineGameResult({ generator, edge }: GetGameResultRequest<DiamondsGameInputs>): GameResult;
175
+ private calculatePayoutMultiplier;
176
+ private classifyResult;
177
+ }
178
+ export declare enum DiceDirection {
179
+ ABOVE = "ABOVE",
180
+ BELOW = "BELOW"
181
+ }
182
+ export interface DiceGameInputs {
183
+ direction: DiceDirection;
184
+ selectedValue: number;
185
+ }
186
+ export declare class Dice extends Game<DiceGameInputs> {
187
+ constructor();
188
+ protected determineGameResult({ generator, edge, gameInputs }: GetGameResultRequest<DiceGameInputs>): GameResult;
189
+ }
190
+ export declare enum KenoRiskLevel {
191
+ CLASSIC = "CLASSIC",
192
+ LOW_RISK = "LOW_RISK",
193
+ MEDIUM_RISK = "MEDIUM_RISK",
194
+ HIGH_RISK = "HIGH_RISK"
195
+ }
196
+ export interface KenoGameInputs {
197
+ riskLevel: KenoRiskLevel;
198
+ selectedNumbers: number[];
199
+ }
200
+ export type TileCount = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
201
+ export type KenoMultipliers = Record<TileCount, Record<KenoRiskLevel, number[]>>;
202
+ export declare class Keno extends Game<KenoGameInputs> {
203
+ readonly multiplierOverrides?: KenoMultipliers | undefined;
204
+ private get multipliers();
205
+ constructor(multiplierOverrides?: KenoMultipliers | undefined);
206
+ protected determineGameResult({ generator, edge, gameInputs }: GetGameResultRequest<KenoGameInputs>): GameResult;
207
+ private validateMultiplierOverrides;
208
+ }
209
+ export interface LimboGameInputs {
210
+ targetMultiplier: number;
211
+ }
212
+ export interface LimboGameOutputs {
213
+ randomMultiplier: Big$1;
214
+ }
215
+ export declare class Limbo extends Game<LimboGameInputs, LimboGameOutputs> {
216
+ constructor();
217
+ protected determineGameResult({ generator, edge, gameInputs }: GetGameResultRequest<LimboGameInputs>): GameResult<LimboGameOutputs>;
218
+ }
219
+ export interface MinesGameInputs {
220
+ minesCount: number;
221
+ selectedTiles: number[];
222
+ hasCashedOut: boolean;
223
+ }
224
+ export declare class Mines extends Game<MinesGameInputs> {
225
+ constructor();
226
+ protected determineGameResult({ generator, edge, gameInputs }: GetGameResultRequest<MinesGameInputs>): GameResult;
227
+ }
228
+ export declare enum PlinkoRiskLevel {
229
+ LOW_RISK = "LOW_RISK",
230
+ MEDIUM_RISK = "MEDIUM_RISK",
231
+ HIGH_RISK = "HIGH_RISK"
232
+ }
233
+ export interface PlinkoGameInputs {
234
+ numberOfRows: number;
235
+ riskLevel: PlinkoRiskLevel;
236
+ }
237
+ export interface PlinkoMultipliers {
238
+ rows: number;
239
+ payout: Record<PlinkoRiskLevel, number[]>;
240
+ }
241
+ export declare class Plinko extends Game<PlinkoGameInputs> {
242
+ readonly multiplierOverrides?: PlinkoMultipliers[] | undefined;
243
+ private get multipliers();
244
+ constructor(multiplierOverrides?: PlinkoMultipliers[] | undefined);
245
+ protected determineGameResult({ generator, gameInputs, edge }: GetGameResultRequest<PlinkoGameInputs>): GameResult;
246
+ private validateMultiplierOverrides;
247
+ }
248
+ declare const VALID_EUROPEAN_STRAIGHTS: readonly [
249
+ 0,
250
+ 1,
251
+ 2,
252
+ 3,
253
+ 4,
254
+ 5,
255
+ 6,
256
+ 7,
257
+ 8,
258
+ 9,
259
+ 10,
260
+ 11,
261
+ 12,
262
+ 13,
263
+ 14,
264
+ 15,
265
+ 16,
266
+ 17,
267
+ 18,
268
+ 19,
269
+ 20,
270
+ 21,
271
+ 22,
272
+ 23,
273
+ 24,
274
+ 25,
275
+ 26,
276
+ 27,
277
+ 28,
278
+ 29,
279
+ 30,
280
+ 31,
281
+ 32,
282
+ 33,
283
+ 34,
284
+ 35,
285
+ 36
286
+ ];
287
+ export type EuropeanStraight = (typeof VALID_EUROPEAN_STRAIGHTS)[number];
288
+ declare const VALID_AMERICAN_STRAIGHTS: readonly [
289
+ 37,
290
+ 0,
291
+ 1,
292
+ 2,
293
+ 3,
294
+ 4,
295
+ 5,
296
+ 6,
297
+ 7,
298
+ 8,
299
+ 9,
300
+ 10,
301
+ 11,
302
+ 12,
303
+ 13,
304
+ 14,
305
+ 15,
306
+ 16,
307
+ 17,
308
+ 18,
309
+ 19,
310
+ 20,
311
+ 21,
312
+ 22,
313
+ 23,
314
+ 24,
315
+ 25,
316
+ 26,
317
+ 27,
318
+ 28,
319
+ 29,
320
+ 30,
321
+ 31,
322
+ 32,
323
+ 33,
324
+ 34,
325
+ 35,
326
+ 36
327
+ ];
328
+ export type AmericanStraight = (typeof VALID_AMERICAN_STRAIGHTS)[number];
329
+ export interface EuropeanStraightBet {
330
+ amount: Big$1.Big;
331
+ value: EuropeanStraight;
332
+ }
333
+ export interface AmericanStraightBet {
334
+ amount: Big$1.Big;
335
+ value: AmericanStraight;
336
+ }
337
+ declare const VALID_EUROPEAN_SPLITS: readonly [
338
+ readonly [
339
+ 0,
340
+ 1
341
+ ],
342
+ readonly [
343
+ 0,
344
+ 2
345
+ ],
346
+ readonly [
347
+ 0,
348
+ 3
349
+ ],
350
+ readonly [
351
+ 1,
352
+ 2
353
+ ],
354
+ readonly [
355
+ 1,
356
+ 4
357
+ ],
358
+ readonly [
359
+ 2,
360
+ 3
361
+ ],
362
+ readonly [
363
+ 2,
364
+ 5
365
+ ],
366
+ readonly [
367
+ 3,
368
+ 6
369
+ ],
370
+ readonly [
371
+ 4,
372
+ 5
373
+ ],
374
+ readonly [
375
+ 4,
376
+ 7
377
+ ],
378
+ readonly [
379
+ 5,
380
+ 6
381
+ ],
382
+ readonly [
383
+ 5,
384
+ 8
385
+ ],
386
+ readonly [
387
+ 6,
388
+ 9
389
+ ],
390
+ readonly [
391
+ 7,
392
+ 8
393
+ ],
394
+ readonly [
395
+ 7,
396
+ 10
397
+ ],
398
+ readonly [
399
+ 8,
400
+ 9
401
+ ],
402
+ readonly [
403
+ 8,
404
+ 11
405
+ ],
406
+ readonly [
407
+ 9,
408
+ 12
409
+ ],
410
+ readonly [
411
+ 10,
412
+ 11
413
+ ],
414
+ readonly [
415
+ 10,
416
+ 13
417
+ ],
418
+ readonly [
419
+ 11,
420
+ 12
421
+ ],
422
+ readonly [
423
+ 11,
424
+ 14
425
+ ],
426
+ readonly [
427
+ 12,
428
+ 15
429
+ ],
430
+ readonly [
431
+ 13,
432
+ 14
433
+ ],
434
+ readonly [
435
+ 13,
436
+ 16
437
+ ],
438
+ readonly [
439
+ 14,
440
+ 15
441
+ ],
442
+ readonly [
443
+ 14,
444
+ 17
445
+ ],
446
+ readonly [
447
+ 15,
448
+ 18
449
+ ],
450
+ readonly [
451
+ 16,
452
+ 17
453
+ ],
454
+ readonly [
455
+ 16,
456
+ 19
457
+ ],
458
+ readonly [
459
+ 17,
460
+ 18
461
+ ],
462
+ readonly [
463
+ 17,
464
+ 20
465
+ ],
466
+ readonly [
467
+ 18,
468
+ 21
469
+ ],
470
+ readonly [
471
+ 19,
472
+ 20
473
+ ],
474
+ readonly [
475
+ 19,
476
+ 22
477
+ ],
478
+ readonly [
479
+ 20,
480
+ 21
481
+ ],
482
+ readonly [
483
+ 20,
484
+ 23
485
+ ],
486
+ readonly [
487
+ 21,
488
+ 24
489
+ ],
490
+ readonly [
491
+ 22,
492
+ 23
493
+ ],
494
+ readonly [
495
+ 22,
496
+ 25
497
+ ],
498
+ readonly [
499
+ 23,
500
+ 24
501
+ ],
502
+ readonly [
503
+ 23,
504
+ 26
505
+ ],
506
+ readonly [
507
+ 24,
508
+ 27
509
+ ],
510
+ readonly [
511
+ 25,
512
+ 26
513
+ ],
514
+ readonly [
515
+ 25,
516
+ 28
517
+ ],
518
+ readonly [
519
+ 26,
520
+ 27
521
+ ],
522
+ readonly [
523
+ 26,
524
+ 29
525
+ ],
526
+ readonly [
527
+ 27,
528
+ 30
529
+ ],
530
+ readonly [
531
+ 28,
532
+ 29
533
+ ],
534
+ readonly [
535
+ 28,
536
+ 31
537
+ ],
538
+ readonly [
539
+ 29,
540
+ 30
541
+ ],
542
+ readonly [
543
+ 29,
544
+ 32
545
+ ],
546
+ readonly [
547
+ 30,
548
+ 33
549
+ ],
550
+ readonly [
551
+ 31,
552
+ 32
553
+ ],
554
+ readonly [
555
+ 31,
556
+ 34
557
+ ],
558
+ readonly [
559
+ 32,
560
+ 33
561
+ ],
562
+ readonly [
563
+ 32,
564
+ 35
565
+ ],
566
+ readonly [
567
+ 33,
568
+ 36
569
+ ],
570
+ readonly [
571
+ 34,
572
+ 35
573
+ ],
574
+ readonly [
575
+ 35,
576
+ 36
577
+ ]
578
+ ];
579
+ export type EuropeanSplit = (typeof VALID_EUROPEAN_SPLITS)[number];
580
+ export interface EuropeanSplitBet {
581
+ amount: Big$1.Big;
582
+ values: EuropeanSplit;
583
+ }
584
+ declare const VALID_AMERICAN_SPLITS: readonly [
585
+ readonly [
586
+ 0,
587
+ 1
588
+ ],
589
+ readonly [
590
+ 0,
591
+ 3
592
+ ],
593
+ readonly [
594
+ 0,
595
+ 37
596
+ ],
597
+ readonly [
598
+ 1,
599
+ 2
600
+ ],
601
+ readonly [
602
+ 1,
603
+ 4
604
+ ],
605
+ readonly [
606
+ 2,
607
+ 3
608
+ ],
609
+ readonly [
610
+ 2,
611
+ 5
612
+ ],
613
+ readonly [
614
+ 3,
615
+ 6
616
+ ],
617
+ readonly [
618
+ 4,
619
+ 5
620
+ ],
621
+ readonly [
622
+ 4,
623
+ 7
624
+ ],
625
+ readonly [
626
+ 5,
627
+ 6
628
+ ],
629
+ readonly [
630
+ 5,
631
+ 8
632
+ ],
633
+ readonly [
634
+ 6,
635
+ 9
636
+ ],
637
+ readonly [
638
+ 7,
639
+ 8
640
+ ],
641
+ readonly [
642
+ 7,
643
+ 10
644
+ ],
645
+ readonly [
646
+ 8,
647
+ 9
648
+ ],
649
+ readonly [
650
+ 8,
651
+ 11
652
+ ],
653
+ readonly [
654
+ 9,
655
+ 12
656
+ ],
657
+ readonly [
658
+ 10,
659
+ 11
660
+ ],
661
+ readonly [
662
+ 10,
663
+ 13
664
+ ],
665
+ readonly [
666
+ 11,
667
+ 12
668
+ ],
669
+ readonly [
670
+ 11,
671
+ 14
672
+ ],
673
+ readonly [
674
+ 12,
675
+ 15
676
+ ],
677
+ readonly [
678
+ 13,
679
+ 14
680
+ ],
681
+ readonly [
682
+ 13,
683
+ 16
684
+ ],
685
+ readonly [
686
+ 14,
687
+ 15
688
+ ],
689
+ readonly [
690
+ 14,
691
+ 17
692
+ ],
693
+ readonly [
694
+ 15,
695
+ 18
696
+ ],
697
+ readonly [
698
+ 16,
699
+ 17
700
+ ],
701
+ readonly [
702
+ 16,
703
+ 19
704
+ ],
705
+ readonly [
706
+ 17,
707
+ 18
708
+ ],
709
+ readonly [
710
+ 17,
711
+ 20
712
+ ],
713
+ readonly [
714
+ 18,
715
+ 21
716
+ ],
717
+ readonly [
718
+ 19,
719
+ 20
720
+ ],
721
+ readonly [
722
+ 19,
723
+ 22
724
+ ],
725
+ readonly [
726
+ 20,
727
+ 21
728
+ ],
729
+ readonly [
730
+ 20,
731
+ 23
732
+ ],
733
+ readonly [
734
+ 21,
735
+ 24
736
+ ],
737
+ readonly [
738
+ 22,
739
+ 23
740
+ ],
741
+ readonly [
742
+ 22,
743
+ 25
744
+ ],
745
+ readonly [
746
+ 23,
747
+ 24
748
+ ],
749
+ readonly [
750
+ 23,
751
+ 26
752
+ ],
753
+ readonly [
754
+ 24,
755
+ 27
756
+ ],
757
+ readonly [
758
+ 25,
759
+ 26
760
+ ],
761
+ readonly [
762
+ 25,
763
+ 28
764
+ ],
765
+ readonly [
766
+ 26,
767
+ 27
768
+ ],
769
+ readonly [
770
+ 26,
771
+ 29
772
+ ],
773
+ readonly [
774
+ 27,
775
+ 30
776
+ ],
777
+ readonly [
778
+ 28,
779
+ 29
780
+ ],
781
+ readonly [
782
+ 28,
783
+ 31
784
+ ],
785
+ readonly [
786
+ 29,
787
+ 30
788
+ ],
789
+ readonly [
790
+ 29,
791
+ 32
792
+ ],
793
+ readonly [
794
+ 30,
795
+ 33
796
+ ],
797
+ readonly [
798
+ 31,
799
+ 32
800
+ ],
801
+ readonly [
802
+ 31,
803
+ 34
804
+ ],
805
+ readonly [
806
+ 32,
807
+ 33
808
+ ],
809
+ readonly [
810
+ 32,
811
+ 35
812
+ ],
813
+ readonly [
814
+ 33,
815
+ 36
816
+ ],
817
+ readonly [
818
+ 34,
819
+ 35
820
+ ],
821
+ readonly [
822
+ 35,
823
+ 36
824
+ ]
825
+ ];
826
+ export type AmericanSplit = (typeof VALID_AMERICAN_SPLITS)[number];
827
+ export interface AmericanSplitBet {
828
+ amount: Big$1.Big;
829
+ values: AmericanSplit;
830
+ }
831
+ declare const VALID_EUROPEAN_STREETS: readonly [
832
+ readonly [
833
+ 0,
834
+ 1,
835
+ 2
836
+ ],
837
+ readonly [
838
+ 0,
839
+ 2,
840
+ 3
841
+ ],
842
+ readonly [
843
+ 1,
844
+ 2,
845
+ 3
846
+ ],
847
+ readonly [
848
+ 4,
849
+ 5,
850
+ 6
851
+ ],
852
+ readonly [
853
+ 7,
854
+ 8,
855
+ 9
856
+ ],
857
+ readonly [
858
+ 10,
859
+ 11,
860
+ 12
861
+ ],
862
+ readonly [
863
+ 13,
864
+ 14,
865
+ 15
866
+ ],
867
+ readonly [
868
+ 16,
869
+ 17,
870
+ 18
871
+ ],
872
+ readonly [
873
+ 19,
874
+ 20,
875
+ 21
876
+ ],
877
+ readonly [
878
+ 22,
879
+ 23,
880
+ 24
881
+ ],
882
+ readonly [
883
+ 25,
884
+ 26,
885
+ 27
886
+ ],
887
+ readonly [
888
+ 28,
889
+ 29,
890
+ 30
891
+ ],
892
+ readonly [
893
+ 31,
894
+ 32,
895
+ 33
896
+ ],
897
+ readonly [
898
+ 34,
899
+ 35,
900
+ 36
901
+ ]
902
+ ];
903
+ export type EuropeanStreet = (typeof VALID_EUROPEAN_STREETS)[number];
904
+ export interface EuropeanStreetBet {
905
+ amount: Big$1.Big;
906
+ values: EuropeanStreet;
907
+ }
908
+ declare const VALID_AMERICAN_STREETS: readonly [
909
+ readonly [
910
+ 0,
911
+ 1,
912
+ 2
913
+ ],
914
+ readonly [
915
+ 0,
916
+ 2,
917
+ 37
918
+ ],
919
+ readonly [
920
+ 1,
921
+ 2,
922
+ 3
923
+ ],
924
+ readonly [
925
+ 2,
926
+ 3,
927
+ 37
928
+ ],
929
+ readonly [
930
+ 4,
931
+ 5,
932
+ 6
933
+ ],
934
+ readonly [
935
+ 7,
936
+ 8,
937
+ 9
938
+ ],
939
+ readonly [
940
+ 10,
941
+ 11,
942
+ 12
943
+ ],
944
+ readonly [
945
+ 13,
946
+ 14,
947
+ 15
948
+ ],
949
+ readonly [
950
+ 16,
951
+ 17,
952
+ 18
953
+ ],
954
+ readonly [
955
+ 19,
956
+ 20,
957
+ 21
958
+ ],
959
+ readonly [
960
+ 22,
961
+ 23,
962
+ 24
963
+ ],
964
+ readonly [
965
+ 25,
966
+ 26,
967
+ 27
968
+ ],
969
+ readonly [
970
+ 28,
971
+ 29,
972
+ 30
973
+ ],
974
+ readonly [
975
+ 31,
976
+ 32,
977
+ 33
978
+ ],
979
+ readonly [
980
+ 34,
981
+ 35,
982
+ 36
983
+ ]
984
+ ];
985
+ export type AmericanStreet = (typeof VALID_AMERICAN_STREETS)[number];
986
+ export interface AmericanStreetBet {
987
+ amount: Big$1.Big;
988
+ values: AmericanStreet;
989
+ }
990
+ declare const VALID_EUROPEAN_CORNERS: readonly [
991
+ readonly [
992
+ 0,
993
+ 1,
994
+ 2,
995
+ 3
996
+ ],
997
+ readonly [
998
+ 1,
999
+ 2,
1000
+ 4,
1001
+ 5
1002
+ ],
1003
+ readonly [
1004
+ 2,
1005
+ 3,
1006
+ 5,
1007
+ 6
1008
+ ],
1009
+ readonly [
1010
+ 4,
1011
+ 5,
1012
+ 7,
1013
+ 8
1014
+ ],
1015
+ readonly [
1016
+ 5,
1017
+ 6,
1018
+ 8,
1019
+ 9
1020
+ ],
1021
+ readonly [
1022
+ 7,
1023
+ 8,
1024
+ 10,
1025
+ 11
1026
+ ],
1027
+ readonly [
1028
+ 8,
1029
+ 9,
1030
+ 11,
1031
+ 12
1032
+ ],
1033
+ readonly [
1034
+ 10,
1035
+ 11,
1036
+ 13,
1037
+ 14
1038
+ ],
1039
+ readonly [
1040
+ 11,
1041
+ 12,
1042
+ 14,
1043
+ 15
1044
+ ],
1045
+ readonly [
1046
+ 13,
1047
+ 14,
1048
+ 16,
1049
+ 17
1050
+ ],
1051
+ readonly [
1052
+ 14,
1053
+ 15,
1054
+ 17,
1055
+ 18
1056
+ ],
1057
+ readonly [
1058
+ 16,
1059
+ 17,
1060
+ 19,
1061
+ 20
1062
+ ],
1063
+ readonly [
1064
+ 17,
1065
+ 18,
1066
+ 20,
1067
+ 21
1068
+ ],
1069
+ readonly [
1070
+ 19,
1071
+ 20,
1072
+ 22,
1073
+ 23
1074
+ ],
1075
+ readonly [
1076
+ 20,
1077
+ 21,
1078
+ 23,
1079
+ 24
1080
+ ],
1081
+ readonly [
1082
+ 22,
1083
+ 23,
1084
+ 25,
1085
+ 26
1086
+ ],
1087
+ readonly [
1088
+ 23,
1089
+ 24,
1090
+ 26,
1091
+ 27
1092
+ ],
1093
+ readonly [
1094
+ 25,
1095
+ 26,
1096
+ 28,
1097
+ 29
1098
+ ],
1099
+ readonly [
1100
+ 26,
1101
+ 27,
1102
+ 29,
1103
+ 30
1104
+ ],
1105
+ readonly [
1106
+ 28,
1107
+ 29,
1108
+ 31,
1109
+ 32
1110
+ ],
1111
+ readonly [
1112
+ 29,
1113
+ 30,
1114
+ 32,
1115
+ 33
1116
+ ],
1117
+ readonly [
1118
+ 31,
1119
+ 32,
1120
+ 34,
1121
+ 35
1122
+ ],
1123
+ readonly [
1124
+ 32,
1125
+ 33,
1126
+ 35,
1127
+ 36
1128
+ ]
1129
+ ];
1130
+ export type EuropeanCorner = (typeof VALID_EUROPEAN_CORNERS)[number];
1131
+ export interface EuropeanCornerBet {
1132
+ amount: Big$1.Big;
1133
+ values: EuropeanCorner;
1134
+ }
1135
+ declare const VALID_AMERICAN_CORNERS: readonly [
1136
+ readonly [
1137
+ 1,
1138
+ 2,
1139
+ 4,
1140
+ 5
1141
+ ],
1142
+ readonly [
1143
+ 2,
1144
+ 3,
1145
+ 5,
1146
+ 6
1147
+ ],
1148
+ readonly [
1149
+ 4,
1150
+ 5,
1151
+ 7,
1152
+ 8
1153
+ ],
1154
+ readonly [
1155
+ 5,
1156
+ 6,
1157
+ 8,
1158
+ 9
1159
+ ],
1160
+ readonly [
1161
+ 7,
1162
+ 8,
1163
+ 10,
1164
+ 11
1165
+ ],
1166
+ readonly [
1167
+ 8,
1168
+ 9,
1169
+ 11,
1170
+ 12
1171
+ ],
1172
+ readonly [
1173
+ 10,
1174
+ 11,
1175
+ 13,
1176
+ 14
1177
+ ],
1178
+ readonly [
1179
+ 11,
1180
+ 12,
1181
+ 14,
1182
+ 15
1183
+ ],
1184
+ readonly [
1185
+ 13,
1186
+ 14,
1187
+ 16,
1188
+ 17
1189
+ ],
1190
+ readonly [
1191
+ 14,
1192
+ 15,
1193
+ 17,
1194
+ 18
1195
+ ],
1196
+ readonly [
1197
+ 16,
1198
+ 17,
1199
+ 19,
1200
+ 20
1201
+ ],
1202
+ readonly [
1203
+ 17,
1204
+ 18,
1205
+ 20,
1206
+ 21
1207
+ ],
1208
+ readonly [
1209
+ 19,
1210
+ 20,
1211
+ 22,
1212
+ 23
1213
+ ],
1214
+ readonly [
1215
+ 20,
1216
+ 21,
1217
+ 23,
1218
+ 24
1219
+ ],
1220
+ readonly [
1221
+ 22,
1222
+ 23,
1223
+ 25,
1224
+ 26
1225
+ ],
1226
+ readonly [
1227
+ 23,
1228
+ 24,
1229
+ 26,
1230
+ 27
1231
+ ],
1232
+ readonly [
1233
+ 25,
1234
+ 26,
1235
+ 28,
1236
+ 29
1237
+ ],
1238
+ readonly [
1239
+ 26,
1240
+ 27,
1241
+ 29,
1242
+ 30
1243
+ ],
1244
+ readonly [
1245
+ 28,
1246
+ 29,
1247
+ 31,
1248
+ 32
1249
+ ],
1250
+ readonly [
1251
+ 29,
1252
+ 30,
1253
+ 32,
1254
+ 33
1255
+ ],
1256
+ readonly [
1257
+ 31,
1258
+ 32,
1259
+ 34,
1260
+ 35
1261
+ ],
1262
+ readonly [
1263
+ 32,
1264
+ 33,
1265
+ 35,
1266
+ 36
1267
+ ]
1268
+ ];
1269
+ export type AmericanCorner = (typeof VALID_AMERICAN_CORNERS)[number];
1270
+ export interface AmericanCornerBet {
1271
+ amount: Big$1.Big;
1272
+ values: AmericanCorner;
1273
+ }
1274
+ export interface AmericanBasketBet {
1275
+ amount: Big$1.Big;
1276
+ }
1277
+ declare const VALID_EUROPEAN_DOUBLE_STREETS: readonly [
1278
+ readonly [
1279
+ 1,
1280
+ 2,
1281
+ 3,
1282
+ 4,
1283
+ 5,
1284
+ 6
1285
+ ],
1286
+ readonly [
1287
+ 4,
1288
+ 5,
1289
+ 6,
1290
+ 7,
1291
+ 8,
1292
+ 9
1293
+ ],
1294
+ readonly [
1295
+ 7,
1296
+ 8,
1297
+ 9,
1298
+ 10,
1299
+ 11,
1300
+ 12
1301
+ ],
1302
+ readonly [
1303
+ 10,
1304
+ 11,
1305
+ 12,
1306
+ 13,
1307
+ 14,
1308
+ 15
1309
+ ],
1310
+ readonly [
1311
+ 13,
1312
+ 14,
1313
+ 15,
1314
+ 16,
1315
+ 17,
1316
+ 18
1317
+ ],
1318
+ readonly [
1319
+ 16,
1320
+ 17,
1321
+ 18,
1322
+ 19,
1323
+ 20,
1324
+ 21
1325
+ ],
1326
+ readonly [
1327
+ 19,
1328
+ 20,
1329
+ 21,
1330
+ 22,
1331
+ 23,
1332
+ 24
1333
+ ],
1334
+ readonly [
1335
+ 22,
1336
+ 23,
1337
+ 24,
1338
+ 25,
1339
+ 26,
1340
+ 27
1341
+ ],
1342
+ readonly [
1343
+ 25,
1344
+ 26,
1345
+ 27,
1346
+ 28,
1347
+ 29,
1348
+ 30
1349
+ ],
1350
+ readonly [
1351
+ 28,
1352
+ 29,
1353
+ 30,
1354
+ 31,
1355
+ 32,
1356
+ 33
1357
+ ],
1358
+ readonly [
1359
+ 31,
1360
+ 32,
1361
+ 33,
1362
+ 34,
1363
+ 35,
1364
+ 36
1365
+ ]
1366
+ ];
1367
+ export type EuropeanDoubleStreet = (typeof VALID_EUROPEAN_DOUBLE_STREETS)[number];
1368
+ export interface EuropeanDoubleStreetBet {
1369
+ amount: Big$1.Big;
1370
+ values: EuropeanDoubleStreet;
1371
+ }
1372
+ declare const VALID_AMERICAN_DOUBLE_STREETS: readonly [
1373
+ readonly [
1374
+ 1,
1375
+ 2,
1376
+ 3,
1377
+ 4,
1378
+ 5,
1379
+ 6
1380
+ ],
1381
+ readonly [
1382
+ 4,
1383
+ 5,
1384
+ 6,
1385
+ 7,
1386
+ 8,
1387
+ 9
1388
+ ],
1389
+ readonly [
1390
+ 7,
1391
+ 8,
1392
+ 9,
1393
+ 10,
1394
+ 11,
1395
+ 12
1396
+ ],
1397
+ readonly [
1398
+ 10,
1399
+ 11,
1400
+ 12,
1401
+ 13,
1402
+ 14,
1403
+ 15
1404
+ ],
1405
+ readonly [
1406
+ 13,
1407
+ 14,
1408
+ 15,
1409
+ 16,
1410
+ 17,
1411
+ 18
1412
+ ],
1413
+ readonly [
1414
+ 16,
1415
+ 17,
1416
+ 18,
1417
+ 19,
1418
+ 20,
1419
+ 21
1420
+ ],
1421
+ readonly [
1422
+ 19,
1423
+ 20,
1424
+ 21,
1425
+ 22,
1426
+ 23,
1427
+ 24
1428
+ ],
1429
+ readonly [
1430
+ 22,
1431
+ 23,
1432
+ 24,
1433
+ 25,
1434
+ 26,
1435
+ 27
1436
+ ],
1437
+ readonly [
1438
+ 25,
1439
+ 26,
1440
+ 27,
1441
+ 28,
1442
+ 29,
1443
+ 30
1444
+ ],
1445
+ readonly [
1446
+ 28,
1447
+ 29,
1448
+ 30,
1449
+ 31,
1450
+ 32,
1451
+ 33
1452
+ ],
1453
+ readonly [
1454
+ 31,
1455
+ 32,
1456
+ 33,
1457
+ 34,
1458
+ 35,
1459
+ 36
1460
+ ]
1461
+ ];
1462
+ export type AmericanDoubleStreet = (typeof VALID_AMERICAN_DOUBLE_STREETS)[number];
1463
+ export interface AmericanDoubleStreetBet {
1464
+ amount: Big$1.Big;
1465
+ values: AmericanDoubleStreet;
1466
+ }
1467
+ declare enum Parity {
1468
+ EVEN = "EVEN",
1469
+ ODD = "ODD"
1470
+ }
1471
+ export interface ParityBet {
1472
+ amount: Big$1.Big;
1473
+ parity: Parity;
1474
+ }
1475
+ declare enum Color {
1476
+ RED = "RED",
1477
+ BLACK = "BLACK"
1478
+ }
1479
+ export interface ColorBet {
1480
+ amount: Big$1.Big;
1481
+ color: Color;
1482
+ }
1483
+ declare enum Half {
1484
+ LOW = "LOW",
1485
+ HIGH = "HIGH"
1486
+ }
1487
+ export interface HalfBet {
1488
+ amount: Big$1.Big;
1489
+ half: Half;
1490
+ }
1491
+ declare enum Column {
1492
+ TOP = "TOP",
1493
+ MIDDLE = "MIDDLE",
1494
+ BOTTOM = "BOTTOM"
1495
+ }
1496
+ export interface ColumnBet {
1497
+ amount: Big$1.Big;
1498
+ column: Column;
1499
+ }
1500
+ declare enum Dozen {
1501
+ FIRST = "FIRST",
1502
+ SECOND = "SECOND",
1503
+ THIRD = "THIRD"
1504
+ }
1505
+ export interface DozenBet {
1506
+ amount: Big$1.Big;
1507
+ dozen: Dozen;
1508
+ }
1509
+ export interface EuropeanRouletteGameInputs {
1510
+ straightBets: EuropeanStraightBet[];
1511
+ splitBets: EuropeanSplitBet[];
1512
+ streetBets: EuropeanStreetBet[];
1513
+ cornerBets: EuropeanCornerBet[];
1514
+ doubleStreetBets: EuropeanDoubleStreetBet[];
1515
+ parityBets: ParityBet[];
1516
+ colorBets: ColorBet[];
1517
+ halfBets: HalfBet[];
1518
+ columnBets: ColumnBet[];
1519
+ dozenBets: DozenBet[];
1520
+ }
1521
+ export interface AmericanRouletteGameInputs {
1522
+ straightBets: AmericanStraightBet[];
1523
+ splitBets: AmericanSplitBet[];
1524
+ streetBets: AmericanStreetBet[];
1525
+ cornerBets: AmericanCornerBet[];
1526
+ basketBets: AmericanBasketBet[];
1527
+ doubleStreetBets: AmericanDoubleStreetBet[];
1528
+ parityBets: ParityBet[];
1529
+ colorBets: ColorBet[];
1530
+ halfBets: HalfBet[];
1531
+ columnBets: ColumnBet[];
1532
+ dozenBets: DozenBet[];
1533
+ }
1534
+ export type RouletteGameInputs = {
1535
+ type: "european";
1536
+ inputs: EuropeanRouletteGameInputs;
1537
+ } | {
1538
+ type: "american";
1539
+ inputs: AmericanRouletteGameInputs;
1540
+ };
1541
+ export interface EuropeanRouletteBetOutcomes {
1542
+ winningBets: EuropeanRouletteGameInputs;
1543
+ losingBets: EuropeanRouletteGameInputs;
1544
+ }
1545
+ export interface AmericanRouletteBetOutcomes {
1546
+ winningBets: AmericanRouletteGameInputs;
1547
+ losingBets: AmericanRouletteGameInputs;
1548
+ }
1549
+ export type RouletteGameOutputs = {
1550
+ type: "european";
1551
+ betOutcomes: EuropeanRouletteBetOutcomes;
1552
+ } | {
1553
+ type: "american";
1554
+ betOutcomes: AmericanRouletteBetOutcomes;
1555
+ };
1556
+ export declare class Roulette extends Game<RouletteGameInputs, RouletteGameOutputs> {
1557
+ private readonly europeanGame;
1558
+ private readonly americanGame;
1559
+ constructor();
1560
+ protected determineGameResult(request: GetGameResultRequest<RouletteGameInputs>): GameResult<RouletteGameOutputs>;
1561
+ }
1562
+ export declare enum WheelRiskLevel {
1563
+ LOW_RISK = "LOW_RISK",
1564
+ MEDIUM_RISK = "MEDIUM_RISK",
1565
+ HIGH_RISK = "HIGH_RISK"
1566
+ }
1567
+ export declare enum WheelSegments {
1568
+ TEN = 10,
1569
+ TWENTY = 20,
1570
+ THIRTY = 30,
1571
+ FORTY = 40,
1572
+ FIFTY = 50
1573
+ }
1574
+ export interface WheelGameInputs {
1575
+ segments: WheelSegments;
1576
+ riskLevel: WheelRiskLevel;
1577
+ }
1578
+ export interface WheelMultipliers {
1579
+ segments: WheelSegments;
1580
+ payout: Record<WheelRiskLevel, number[]>;
1581
+ }
1582
+ export declare class Wheel extends Game<WheelGameInputs> {
1583
+ readonly multiplierOverrides?: WheelMultipliers[] | undefined;
1584
+ private get multipliers();
1585
+ constructor(multiplierOverrides?: WheelMultipliers[] | undefined);
1586
+ protected determineGameResult({ generator, gameInputs, edge }: GetGameResultRequest<WheelGameInputs>): GameResult;
1587
+ private validateMultiplierOverrides;
1588
+ }
1589
+
1590
+ export {};