@betorigami/game-calculations 9.0.0 → 9.0.2

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
@@ -1,75 +1,93 @@
1
- // Generated by dts-bundle-generator v9.5.1
2
-
3
- import Big$1 from 'big.js';
4
- import { Big as Big$1, Big as Big$2, Big as Big$3, Big as Big$4, Big as Big$5 } from 'big.js';
5
- import { ReadonlyDeep, Simplify } from 'type-fest';
6
-
1
+ import Big$1, { Big } from "big.js";
2
+ //#region src/cards/types.d.ts
3
+ export declare const MIN_CARD_VALUE = 0;
4
+ export declare const MAX_CARD_VALUE = 51;
5
+ export declare const CARD_VALUES: number[];
6
+ export declare const CARD_SUITS: readonly ["Spades", "Hearts", "Diamonds", "Clubs"];
7
+ export type CardSuit = (typeof CARD_SUITS)[number];
8
+ export declare const CARD_RANKS: readonly ["Ace", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King"];
9
+ export type CardRank = (typeof CARD_RANKS)[number];
10
+ export declare const FACE_CARD_RANKS: readonly CardRank[];
11
+ export type CardValue = (typeof CARD_VALUES)[number];
12
+ export type CardDto = {
13
+ rank: CardRank;
14
+ suit: CardSuit;
15
+ cardValue: CardValue;
16
+ };
17
+ export declare const CARD_SUIT_COLORS: Record<CardSuit, 'red' | 'black'>;
18
+ //#endregion
19
+ //#region src/errors/game.error.d.ts
7
20
  export declare enum GameErrorCode {
8
- UNSUPPORTED_EDGE = "UNSUPPORTED_EDGE",
9
- INPUT_VALIDATION_ERROR = "INPUT_VALIDATION_ERROR"
21
+ UNSUPPORTED_EDGE = "UNSUPPORTED_EDGE",
22
+ INPUT_VALIDATION_ERROR = "INPUT_VALIDATION_ERROR"
10
23
  }
11
24
  export declare class GameError extends Error {
12
- static createUnsupportedEdgeError(message: string): GameError;
13
- static createValidationError(message: string): GameError;
14
- static isGameError(error: unknown): error is GameError;
15
- errorCode: GameErrorCode;
16
- constructor(errorCode: GameErrorCode, message?: string);
17
- }
25
+ static createUnsupportedEdgeError(message: string): GameError;
26
+ static createValidationError(message: string): GameError;
27
+ static isGameError(error: unknown): error is GameError;
28
+ errorCode: GameErrorCode;
29
+ constructor(errorCode: GameErrorCode, message?: string);
30
+ }
31
+ //#endregion
32
+ //#region src/games/origami-game.d.ts
18
33
  export declare enum OrigamiGame {
19
- DICE = "DICE",
20
- MINES = "MINES",
21
- KENO = "KENO",
22
- LIMBO = "LIMBO",
23
- ADVANCED_DICE = "ADVANCED_DICE",
24
- BACCARAT = "BACCARAT",
25
- DIAMONDS = "DIAMONDS",
26
- PLINKO = "PLINKO",
27
- ROULETTE = "ROULETTE",
28
- WHEEL = "WHEEL",
29
- BLACKJACK = "BLACKJACK",
30
- BLITZ = "BLITZ",
31
- DARTS = "DARTS"
32
- }
34
+ DICE = "DICE",
35
+ MINES = "MINES",
36
+ KENO = "KENO",
37
+ LIMBO = "LIMBO",
38
+ ADVANCED_DICE = "ADVANCED_DICE",
39
+ BACCARAT = "BACCARAT",
40
+ DIAMONDS = "DIAMONDS",
41
+ PLINKO = "PLINKO",
42
+ ROULETTE = "ROULETTE",
43
+ WHEEL = "WHEEL",
44
+ BLACKJACK = "BLACKJACK",
45
+ BLITZ = "BLITZ",
46
+ DARTS = "DARTS"
47
+ }
48
+ //#endregion
49
+ //#region src/games/game.d.ts
33
50
  export interface Game {
34
- gameId: OrigamiGame;
35
- supportedEdgeConfigurations: [
36
- number,
37
- ...number[]
38
- ];
51
+ gameId: OrigamiGame;
52
+ supportedEdgeConfigurations: [number, ...number[]];
39
53
  }
54
+ //#endregion
55
+ //#region src/games/random.d.ts
40
56
  export type Proof = {
41
- proofHash: string;
42
- proofString: string;
57
+ proofHash: string;
58
+ proofString: string;
43
59
  };
44
60
  export type SingleRandomValue = {
45
- value: number;
46
- values: number[];
47
- count: 1;
48
- min: number;
49
- max: number;
61
+ value: number;
62
+ values: number[];
63
+ count: 1;
64
+ min: number;
65
+ max: number;
50
66
  } & Proof;
51
67
  export type MultipleRandomValues = {
52
- values: number[];
53
- count: number;
54
- min: number;
55
- max: number;
68
+ values: number[];
69
+ count: number;
70
+ min: number;
71
+ max: number;
56
72
  } & Proof;
57
73
  export interface RandomNumberGenerator {
58
- getRandomInt({ min, max }: {
59
- min: number;
60
- max: number;
61
- }): SingleRandomValue;
62
- getUniqueRandomInts({ min, max, count }: {
63
- min: number;
64
- max: number;
65
- count: number;
66
- }): MultipleRandomValues;
67
- getRandomIntsWithReplacement({ min, max, count }: {
68
- min: number;
69
- max: number;
70
- count: number;
71
- }): MultipleRandomValues;
72
- }
74
+ getRandomInt({ min, max }: {
75
+ min: number;
76
+ max: number;
77
+ }): SingleRandomValue;
78
+ getUniqueRandomInts({ min, max, count }: {
79
+ min: number;
80
+ max: number;
81
+ count: number;
82
+ }): MultipleRandomValues;
83
+ getRandomIntsWithReplacement({ min, max, count }: {
84
+ min: number;
85
+ max: number;
86
+ count: number;
87
+ }): MultipleRandomValues;
88
+ }
89
+ //#endregion
90
+ //#region src/games/payout.d.ts
73
91
  /**
74
92
  * A single exact payout amount from a game round.
75
93
  *
@@ -83,13 +101,13 @@ export interface RandomNumberGenerator {
83
101
  * package's.
84
102
  */
85
103
  export type PayoutLeg = Readonly<{
86
- amount: Big$1;
104
+ amount: Big$1;
87
105
  }>;
88
106
  /**
89
107
  * A round's payout, expressed as its constituent legs.
90
108
  */
91
109
  export type Payout = Readonly<{
92
- legs: readonly PayoutLeg[];
110
+ legs: readonly PayoutLeg[];
93
111
  }>;
94
112
  /**
95
113
  * Totals a round's payout.
@@ -99,35 +117,36 @@ export type Payout = Readonly<{
99
117
  * what a round pays.
100
118
  */
101
119
  export declare const sumPayout: (payout: Payout) => Big$1;
120
+ //#endregion
121
+ //#region src/games/single-action-game.d.ts
102
122
  export type EmptyGameOutput = {};
103
123
  export interface GetGameResultRequest<TGameInputs> {
104
- generator: RandomNumberGenerator;
105
- edge: number;
106
- gameInputs: TGameInputs;
124
+ generator: RandomNumberGenerator;
125
+ edge: number;
126
+ gameInputs: TGameInputs;
107
127
  }
108
128
  export interface GameResult<TGameOutputs = EmptyGameOutput> {
109
- isFinished: boolean;
110
- payout: Payout;
111
- payoutMultiplier: Big$1;
112
- outputs: TGameOutputs & {
113
- result: number[];
114
- };
115
- randomValues: SingleRandomValue | MultipleRandomValues;
129
+ isFinished: boolean;
130
+ payout: Payout;
131
+ payoutMultiplier: Big$1;
132
+ outputs: TGameOutputs & {
133
+ result: number[];
134
+ };
135
+ randomValues: SingleRandomValue | MultipleRandomValues;
116
136
  }
117
137
  export declare abstract class SingleActionGame<TGameInputs, TGameOutputs = EmptyGameOutput> implements Game {
118
- readonly gameId: OrigamiGame;
119
- protected constructor(gameId: OrigamiGame);
120
- abstract get supportedEdgeConfigurations(): [
121
- number,
122
- ...number[]
123
- ];
124
- abstract getBetAmount(gameInputs: TGameInputs): Big$1;
125
- getGameResult(request: GetGameResultRequest<TGameInputs>): GameResult<TGameOutputs>;
126
- protected abstract determineGameResult(request: GetGameResultRequest<TGameInputs>): GameResult<TGameOutputs>;
127
- }
138
+ readonly gameId: OrigamiGame;
139
+ protected constructor(gameId: OrigamiGame);
140
+ abstract get supportedEdgeConfigurations(): [number, ...number[]];
141
+ abstract getBetAmount(gameInputs: TGameInputs): Big$1;
142
+ getGameResult(request: GetGameResultRequest<TGameInputs>): GameResult<TGameOutputs>;
143
+ protected abstract determineGameResult(request: GetGameResultRequest<TGameInputs>): GameResult<TGameOutputs>;
144
+ }
145
+ //#endregion
146
+ //#region src/games/advanced-dice/advanced-dice.d.ts
128
147
  export type Bounds = {
129
- lower: number;
130
- upper: number;
148
+ lower: number;
149
+ upper: number;
131
150
  };
132
151
  export declare const RANDOM_MIN_VALUE = 0;
133
152
  export declare const RANDOM_MAX_VALUE = 10000;
@@ -139,192 +158,143 @@ export declare const advancedDiceGetInclusiveBoundsRange: (bounds: Bounds) => nu
139
158
  export declare const advancedDiceIsWithinBoundsExclusive: (bounds: Bounds, result: number) => boolean;
140
159
  export declare const advancedDiceGetExclusiveBoundsRange: (bounds: Bounds) => number;
141
160
  export declare enum RollType {
142
- ROLL_BETWEEN = "ROLL_BETWEEN",
143
- ROLL_OUTSIDE = "ROLL_OUTSIDE",
144
- ROLL_BETWEEN_TWO = "ROLL_BETWEEN_TWO"
161
+ ROLL_BETWEEN = "ROLL_BETWEEN",
162
+ ROLL_OUTSIDE = "ROLL_OUTSIDE",
163
+ ROLL_BETWEEN_TWO = "ROLL_BETWEEN_TWO"
145
164
  }
146
165
  export type RollBetween = {
147
- mode: RollType.ROLL_BETWEEN;
148
- bounds: Bounds;
149
- betAmount: Big$1.Big;
166
+ mode: RollType.ROLL_BETWEEN;
167
+ bounds: Bounds;
168
+ betAmount: Big;
150
169
  };
151
170
  export type RollOutside = {
152
- mode: RollType.ROLL_OUTSIDE;
153
- bounds: Bounds;
154
- betAmount: Big$1.Big;
171
+ mode: RollType.ROLL_OUTSIDE;
172
+ bounds: Bounds;
173
+ betAmount: Big;
155
174
  };
156
175
  export type RollBetweenTwo = {
157
- mode: RollType.ROLL_BETWEEN_TWO;
158
- firstBounds: Bounds;
159
- secondBounds: Bounds;
160
- betAmount: Big$1.Big;
176
+ mode: RollType.ROLL_BETWEEN_TWO;
177
+ firstBounds: Bounds;
178
+ secondBounds: Bounds;
179
+ betAmount: Big;
161
180
  };
162
181
  export type AdvancedDiceInputs = RollBetween | RollOutside | RollBetweenTwo;
163
- export type AdvancedDiceSelection = Pick<RollBetween, "mode" | "bounds"> | Pick<RollOutside, "mode" | "bounds"> | Pick<RollBetweenTwo, "mode" | "firstBounds" | "secondBounds">;
164
- export declare const calculateAdvancedDiceWinChance: (gameInputs: AdvancedDiceSelection) => Big$1.Big;
182
+ export type AdvancedDiceSelection = Pick<RollBetween, 'mode' | 'bounds'> | Pick<RollOutside, 'mode' | 'bounds'> | Pick<RollBetweenTwo, 'mode' | 'firstBounds' | 'secondBounds'>;
183
+ export declare const calculateAdvancedDiceWinChance: (gameInputs: AdvancedDiceSelection) => Big;
165
184
  export declare const validateAdvancedDiceInputs: (gameInputs: AdvancedDiceSelection) => void;
166
185
  export declare class AdvancedDice extends SingleActionGame<AdvancedDiceInputs> {
167
- constructor();
168
- get supportedEdgeConfigurations(): [
169
- number,
170
- ...number[]
171
- ];
172
- getBetAmount(gameInputs: AdvancedDiceInputs): Big$1.Big;
173
- protected determineGameResult({ generator, edge, gameInputs }: GetGameResultRequest<AdvancedDiceInputs>): GameResult;
186
+ constructor();
187
+ get supportedEdgeConfigurations(): [number, ...number[]];
188
+ getBetAmount(gameInputs: AdvancedDiceInputs): Big;
189
+ protected determineGameResult({ generator, edge, gameInputs }: GetGameResultRequest<AdvancedDiceInputs>): GameResult;
174
190
  }
191
+ //#endregion
192
+ //#region src/games/baccarat/baccarat.d.ts
175
193
  export interface Bet {
176
- amount: Big$1;
177
- type: BaccaratBetType;
194
+ amount: Big$1;
195
+ type: BaccaratBetType;
178
196
  }
179
197
  export interface BaccaratGameInputs {
180
- bets: Bet[];
181
- }
182
- export declare const VALID_SUITS: readonly [
183
- "Clubs",
184
- "Diamonds",
185
- "Hearts",
186
- "Spades"
187
- ];
188
- export declare const VALID_RANKS: readonly [
189
- "Ace",
190
- "2",
191
- "3",
192
- "4",
193
- "5",
194
- "6",
195
- "7",
196
- "8",
197
- "9",
198
- "10",
199
- "Jack",
200
- "Queen",
201
- "King"
202
- ];
198
+ bets: Bet[];
199
+ }
200
+ export declare const VALID_SUITS: readonly ["Clubs", "Diamonds", "Hearts", "Spades"];
201
+ export declare const VALID_RANKS: readonly ["Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"];
203
202
  export type Suit = (typeof VALID_SUITS)[number];
204
203
  export type Rank = (typeof VALID_RANKS)[number];
205
204
  export interface Card {
206
- suit: Suit;
207
- rank: Rank;
205
+ suit: Suit;
206
+ rank: Rank;
208
207
  }
209
208
  export declare enum BaccaratOutcome {
210
- PLAYER_WIN = "PLAYER_WIN",
211
- TIE = "TIE",
212
- BANKER_WIN = "BANKER_WIN"
209
+ PLAYER_WIN = "PLAYER_WIN",
210
+ TIE = "TIE",
211
+ BANKER_WIN = "BANKER_WIN"
213
212
  }
214
213
  export declare enum BaccaratBetType {
215
- PLAYER = "PLAYER",
216
- TIE = "TIE",
217
- BANKER = "BANKER"
214
+ PLAYER = "PLAYER",
215
+ TIE = "TIE",
216
+ BANKER = "BANKER"
218
217
  }
219
218
  export interface BaccaratGameOutputs {
220
- playerCards: Card[];
221
- playerHandValue: number;
222
- bankerCards: Card[];
223
- bankerHandValue: number;
224
- gameOutcome: BaccaratOutcome;
219
+ playerCards: Card[];
220
+ playerHandValue: number;
221
+ bankerCards: Card[];
222
+ bankerHandValue: number;
223
+ gameOutcome: BaccaratOutcome;
225
224
  }
226
225
  export declare const calculateBaccaratBetAmount: (gameInputs: BaccaratGameInputs) => Big$1;
227
226
  export declare class Baccarat extends SingleActionGame<BaccaratGameInputs, BaccaratGameOutputs> {
228
- constructor();
229
- get supportedEdgeConfigurations(): [
230
- number,
231
- ...number[]
232
- ];
233
- getBetAmount(gameInputs: BaccaratGameInputs): Big$1;
234
- protected determineGameResult({ generator, gameInputs }: GetGameResultRequest<BaccaratGameInputs>): GameResult<BaccaratGameOutputs>;
235
- private validateGameInputs;
236
- private mapRandomValueToCard;
237
- private isNaturalWin;
238
- private mapRandomValueToCardValue;
239
- private shouldDrawThirdPlayerCard;
240
- private shouldDrawThirdBankerCard;
241
- }
242
- declare const CARD_VALUES: number[];
243
- declare const CARD_SUITS: readonly [
244
- "Spades",
245
- "Hearts",
246
- "Diamonds",
247
- "Clubs"
248
- ];
249
- export type CardSuit = (typeof CARD_SUITS)[number];
250
- declare const CARD_RANKS: readonly [
251
- "Ace",
252
- "Two",
253
- "Three",
254
- "Four",
255
- "Five",
256
- "Six",
257
- "Seven",
258
- "Eight",
259
- "Nine",
260
- "Ten",
261
- "Jack",
262
- "Queen",
263
- "King"
264
- ];
265
- export type CardRank = (typeof CARD_RANKS)[number];
266
- export type CardValue = (typeof CARD_VALUES)[number];
267
- export type CardDto = {
268
- rank: CardRank;
269
- suit: CardSuit;
270
- cardValue: CardValue;
271
- };
227
+ constructor();
228
+ get supportedEdgeConfigurations(): [number, ...number[]];
229
+ getBetAmount(gameInputs: BaccaratGameInputs): Big$1;
230
+ protected determineGameResult({ generator, gameInputs }: GetGameResultRequest<BaccaratGameInputs>): GameResult<BaccaratGameOutputs>;
231
+ private validateGameInputs;
232
+ private mapRandomValueToCard;
233
+ private isNaturalWin;
234
+ private mapRandomValueToCardValue;
235
+ private shouldDrawThirdPlayerCard;
236
+ private shouldDrawThirdBankerCard;
237
+ }
238
+ //#endregion
239
+ //#region src/games/blackjack/blackjack.types.d.ts
272
240
  export interface BlackjackHandDto {
273
- cards: ReadonlyArray<CardDto>;
274
- value: number;
241
+ cards: ReadonlyArray<CardDto>;
242
+ value: number;
275
243
  }
276
244
  export declare enum BlackjackOutcome {
277
- WIN = "WIN",
278
- LOSE = "LOSE",
279
- PUSH = "PUSH",
280
- PLAYER_BLACKJACK = "PLAYER_BLACKJACK"
245
+ WIN = "WIN",
246
+ LOSE = "LOSE",
247
+ PUSH = "PUSH",
248
+ PLAYER_BLACKJACK = "PLAYER_BLACKJACK"
281
249
  }
282
250
  export declare enum InsuranceOutcome {
283
- WON = "WON",
284
- LOST = "LOST"
251
+ WON = "WON",
252
+ LOST = "LOST"
285
253
  }
286
254
  export declare enum BlackjackActionType {
287
- START = "START",
288
- HIT = "BLACKJACK_HIT",
289
- STAND = "BLACKJACK_STAND",
290
- BUY_INSURANCE = "BLACKJACK_BUY_INSURANCE",
291
- REJECT_INSURANCE = "BLACKJACK_REJECT_INSURANCE",
292
- DOUBLE_DOWN = "BLACKJACK_DOUBLE_DOWN",
293
- SPLIT = "BLACKJACK_SPLIT"
255
+ START = "START",
256
+ HIT = "BLACKJACK_HIT",
257
+ STAND = "BLACKJACK_STAND",
258
+ BUY_INSURANCE = "BLACKJACK_BUY_INSURANCE",
259
+ REJECT_INSURANCE = "BLACKJACK_REJECT_INSURANCE",
260
+ DOUBLE_DOWN = "BLACKJACK_DOUBLE_DOWN",
261
+ SPLIT = "BLACKJACK_SPLIT"
294
262
  }
295
263
  export declare enum PairBonusType {
296
- EXACT_PAIR = "EXACT_PAIR",
297
- COLORED_PAIR = "COLORED_PAIR",
298
- MIXED_PAIR = "MIXED_PAIR",
299
- LOSS = "LOSS"
264
+ EXACT_PAIR = "EXACT_PAIR",
265
+ COLORED_PAIR = "COLORED_PAIR",
266
+ MIXED_PAIR = "MIXED_PAIR",
267
+ LOSS = "LOSS"
300
268
  }
301
269
  export declare enum ThreeCardBonusType {
302
- SUITED_TRIPS = "SUITED_TRIPS",
303
- STRAIGHT_FLUSH = "STRAIGHT_FLUSH",
304
- THREE_OF_A_KIND = "THREE_OF_A_KIND",
305
- STRAIGHT = "STRAIGHT",
306
- FLUSH = "FLUSH",
307
- LOSS = "LOSS"
270
+ SUITED_TRIPS = "SUITED_TRIPS",
271
+ STRAIGHT_FLUSH = "STRAIGHT_FLUSH",
272
+ THREE_OF_A_KIND = "THREE_OF_A_KIND",
273
+ STRAIGHT = "STRAIGHT",
274
+ FLUSH = "FLUSH",
275
+ LOSS = "LOSS"
308
276
  }
309
277
  export type BetAmounts = Readonly<{
310
- mainBetAmount: Big$1;
311
- pairBonusAmount: Big$1;
312
- threeCardBonusAmount: Big$1;
278
+ mainBetAmount: Big$1;
279
+ pairBonusAmount: Big$1;
280
+ threeCardBonusAmount: Big$1;
313
281
  }>;
314
282
  export type PairBonusResult = Readonly<{
315
- betAmount: string;
316
- payoutMultiplier: number;
317
- result: PairBonusType;
283
+ betAmount: string;
284
+ payoutMultiplier: number;
285
+ result: PairBonusType;
318
286
  }>;
319
287
  export type ThreeCardBonusResult = Readonly<{
320
- betAmount: string;
321
- payoutMultiplier: number;
322
- result: ThreeCardBonusType;
288
+ betAmount: string;
289
+ payoutMultiplier: number;
290
+ result: ThreeCardBonusType;
323
291
  }>;
324
292
  export type SideBetResults = Readonly<{
325
- pairBonus: PairBonusResult | null;
326
- threeCardBonus: ThreeCardBonusResult | null;
293
+ pairBonus: PairBonusResult | null;
294
+ threeCardBonus: ThreeCardBonusResult | null;
327
295
  }>;
296
+ //#endregion
297
+ //#region src/games/blackjack/blackjack.constants.d.ts
328
298
  export declare const BLACKJACK_MULTIPLIER = 2.5;
329
299
  export declare const WIN_MULTIPLIER = 2;
330
300
  export declare const PUSH_MULTIPLIER = 1;
@@ -343,412 +313,595 @@ export declare const FACE_CARD_VALUE = 10;
343
313
  export declare const BASE_PAYOUT_MULTIPLIERS: Record<BlackjackOutcome, number>;
344
314
  export declare const PAIR_BONUS_PAYOUTS: Record<PairBonusType, number>;
345
315
  export declare const THREE_CARD_BONUS_PAYOUTS: Record<ThreeCardBonusType, number>;
346
- declare class Card$1 {
347
- readonly value: CardValue;
348
- constructor(rawValue: number);
349
- get suit(): CardSuit;
350
- get rank(): CardRank;
351
- toDto(): CardDto;
316
+ //#endregion
317
+ //#region ../../node_modules/.pnpm/type-fest@5.9.0/node_modules/type-fest/source/primitive.d.ts
318
+ /**
319
+ Matches any [primitive value](https://developer.mozilla.org/en-US/docs/Glossary/Primitive).
320
+
321
+ @category Type
322
+ */
323
+ type Primitive = null | undefined | string | number | boolean | symbol | bigint;
324
+ //#endregion
325
+ //#region ../../node_modules/.pnpm/type-fest@5.9.0/node_modules/type-fest/source/internal/type.d.ts
326
+ /**
327
+ Matches any primitive, `void`, `Date`, or `RegExp` value.
328
+ */
329
+ type BuiltIns = Primitive | void | Date | RegExp;
330
+ /**
331
+ Test if the given function has multiple call signatures.
332
+
333
+ Needed to handle the case of a single call signature with properties.
334
+
335
+ Multiple call signatures cannot currently be supported due to a TypeScript limitation.
336
+ @see https://github.com/microsoft/TypeScript/issues/29732
337
+ */
338
+ type HasMultipleCallSignatures<T extends (...arguments_: any[]) => unknown> = T extends {
339
+ (...arguments_: infer A): unknown;
340
+ (...arguments_: infer B): unknown;
341
+ } ? B extends A ? A extends B ? false : true : true : false;
342
+ //#endregion
343
+ //#region ../../node_modules/.pnpm/type-fest@5.9.0/node_modules/type-fest/source/simplify.d.ts
344
+ /**
345
+ Useful to flatten the type output to improve type hints shown in editors. And also to transform an interface into a type to aide with assignability.
346
+
347
+ @example
348
+ ```
349
+ import type {Simplify} from 'type-fest';
350
+
351
+ type PositionProps = {
352
+ top: number;
353
+ left: number;
354
+ };
355
+
356
+ type SizeProps = {
357
+ width: number;
358
+ height: number;
359
+ };
360
+
361
+ // In your editor, hovering over `Props` will show a flattened object with all the properties.
362
+ type Props = Simplify<PositionProps & SizeProps>;
363
+ ```
364
+
365
+ Sometimes it is desired to pass a value as a function argument that has a different type. At first inspection it may seem assignable, and then you discover it is not because the `value`'s type definition was defined as an interface. In the following example, `fn` requires an argument of type `Record<string, unknown>`. If the value is defined as a literal, then it is assignable. And if the `value` is defined as type using the `Simplify` utility the value is assignable. But if the `value` is defined as an interface, it is not assignable because the interface is not sealed and elsewhere a non-string property could be added to the interface.
366
+
367
+ If the type definition must be an interface (perhaps it was defined in a third-party npm package), then the `value` can be defined as `const value: Simplify<SomeInterface> = ...`. Then `value` will be assignable to the `fn` argument. Or the `value` can be cast as `Simplify<SomeInterface>` if you can't re-declare the `value`.
368
+
369
+ @example
370
+ ```
371
+ import type {Simplify} from 'type-fest';
372
+
373
+ interface SomeInterface {
374
+ foo: number;
375
+ bar?: string;
376
+ baz: number | undefined;
377
+ }
378
+
379
+ type SomeType = {
380
+ foo: number;
381
+ bar?: string;
382
+ baz: number | undefined;
383
+ };
384
+
385
+ const literal = {foo: 123, bar: 'hello', baz: 456};
386
+ const someType: SomeType = literal;
387
+ const someInterface: SomeInterface = literal;
388
+
389
+ declare function fn(object: Record<string, unknown>): void;
390
+
391
+ fn(literal); // Good: literal object type is sealed
392
+ fn(someType); // Good: type is sealed
393
+ // @ts-expect-error
394
+ fn(someInterface); // Error: Index signature for type 'string' is missing in type 'someInterface'. Because `interface` can be re-opened
395
+ fn(someInterface as Simplify<SomeInterface>); // Good: transform an `interface` into a `type`
396
+ ```
397
+
398
+ @link https://github.com/microsoft/TypeScript/issues/15300
399
+ @see {@link SimplifyDeep}
400
+ @category Object
401
+ */
402
+ type Simplify<T> = { [KeyType in keyof T]: T[KeyType]; } & {};
403
+ //#endregion
404
+ //#region ../../node_modules/.pnpm/type-fest@5.9.0/node_modules/type-fest/source/readonly-deep.d.ts
405
+ /**
406
+ Create a deeply immutable version of another type.
407
+
408
+ This is useful when a deeply nested structure needs to be exposed as completely immutable, for example, an imported JSON module or when receiving an API response that is passed around.
409
+
410
+ Please upvote [this issue](https://github.com/microsoft/TypeScript/issues/13923) if you want to have this type as a built-in in TypeScript.
411
+
412
+ Use [`Readonly<T>`](https://www.typescriptlang.org/docs/handbook/utility-types.html#readonlytype) if you only need one level deep.
413
+
414
+ @example
415
+ ```
416
+ import type {ReadonlyDeep} from 'type-fest';
417
+
418
+ declare const foo: {
419
+ a: string;
420
+ b: {c: number};
421
+ d: Array<{e: number}>;
422
+ };
423
+
424
+ foo.a = 'bar'; // Allowed
425
+
426
+ foo.b = {c: 3}; // Allowed
427
+
428
+ foo.b.c = 4; // Allowed
429
+
430
+ foo.d = [{e: 5}]; // Allowed
431
+
432
+ foo.d.push({e: 6}); // Allowed
433
+
434
+ const last = foo.d.at(-1);
435
+ if (last) {
436
+ last.e = 7; // Allowed
352
437
  }
438
+
439
+ declare const readonlyFoo: ReadonlyDeep<typeof foo>;
440
+
441
+ // @ts-expect-error
442
+ readonlyFoo.a = 'bar';
443
+ // Error: Cannot assign to 'a' because it is a read-only property.
444
+
445
+ // @ts-expect-error
446
+ readonlyFoo.b = {c: 3};
447
+ // Error: Cannot assign to 'b' because it is a read-only property.
448
+
449
+ // @ts-expect-error
450
+ readonlyFoo.b.c = 4;
451
+ // Error: Cannot assign to 'c' because it is a read-only property.
452
+
453
+ // @ts-expect-error
454
+ readonlyFoo.d = [{e: 5}];
455
+ // Error: Cannot assign to 'd' because it is a read-only property.
456
+
457
+ // @ts-expect-error
458
+ readonlyFoo.d.push({e: 6});
459
+ // Error: Property 'push' does not exist on type 'ReadonlyArray<{readonly e: number}>'.
460
+
461
+ const readonlyLast = readonlyFoo.d.at(-1);
462
+ if (readonlyLast) {
463
+ // @ts-expect-error
464
+ readonlyLast.e = 8;
465
+ // Error: Cannot assign to 'e' because it is a read-only property.
466
+ }
467
+ ```
468
+
469
+ Note that types containing overloaded functions are not made deeply readonly due to a [TypeScript limitation](https://github.com/microsoft/TypeScript/issues/29732).
470
+
471
+ @category Object
472
+ @category Array
473
+ @category Set
474
+ @category Map
475
+ */
476
+ type ReadonlyDeep<T> = T extends BuiltIns ? T : T extends (new (...arguments_: any[]) => unknown) ? T // Skip class constructors
477
+ : T extends ((...arguments_: any[]) => unknown) ? {} extends _ReadonlyObjectDeep<T> ? T : HasMultipleCallSignatures<T> extends true ? T : ((...arguments_: Parameters<T>) => ReturnType<T>) & _ReadonlyObjectDeep<T> : T extends Readonly<ReadonlyMap<infer KeyType, infer ValueType>> ? ReadonlyMapDeep<KeyType, ValueType> : T extends Readonly<ReadonlySet<infer ItemType>> ? ReadonlySetDeep<ItemType> :
478
+ // Identify tuples to avoid converting them to arrays inadvertently; special case `readonly [...never[]]`, as it emerges undesirably from recursive invocations of ReadonlyDeep below.
479
+ T extends readonly [] | readonly [...never[]] ? readonly [] : T extends readonly [infer U, ...infer V] ? readonly [ReadonlyDeep<U>, ...ReadonlyDeep<V>] : T extends readonly [...infer U, infer V] ? readonly [...ReadonlyDeep<U>, ReadonlyDeep<V>] : T extends ReadonlyArray<infer ItemType> ? ReadonlyArray<ReadonlyDeep<ItemType>> : T extends object ? _ReadonlyObjectDeep<T> : unknown;
480
+ /**
481
+ Same as `ReadonlyDeep`, but accepts only `ReadonlyMap`s as inputs. Internal helper for `ReadonlyDeep`.
482
+ */
483
+ type ReadonlyMapDeep<KeyType, ValueType> = {} & Readonly<ReadonlyMap<ReadonlyDeep<KeyType>, ReadonlyDeep<ValueType>>>;
484
+ /**
485
+ Same as `ReadonlyDeep`, but accepts only `ReadonlySet`s as inputs. Internal helper for `ReadonlyDeep`.
486
+ */
487
+ type ReadonlySetDeep<ItemType> = {} & Readonly<ReadonlySet<ReadonlyDeep<ItemType>>>;
488
+ /**
489
+ Same as `ReadonlyDeep`, but accepts only `object`s as inputs. Internal helper for `ReadonlyDeep`.
490
+ */
491
+ type _ReadonlyObjectDeep<ObjectType extends object> = { readonly [KeyType in keyof ObjectType]: ReadonlyDeep<ObjectType[KeyType]>; };
492
+ //#endregion
493
+ //#region src/cards/card.d.ts
494
+ declare class Card$1 {
495
+ readonly value: CardValue;
496
+ constructor(rawValue: number);
497
+ get suit(): CardSuit;
498
+ get rank(): CardRank;
499
+ toDto(): CardDto;
500
+ }
501
+ //#endregion
502
+ //#region src/games/blackjack/card/blackjack-card.d.ts
353
503
  declare class BlackjackCard extends Card$1 {
354
- get numericRank(): number;
355
- static fromValue(value: CardValue): BlackjackCard;
504
+ get numericRank(): number;
505
+ static fromValue(value: CardValue): BlackjackCard;
356
506
  }
507
+ //#endregion
508
+ //#region src/games/blackjack/hand/blackjack-hand-value.d.ts
357
509
  declare class BlackjackHandValue {
358
- readonly cards: ReadonlyArray<BlackjackCard>;
359
- readonly hardHandValue: number;
360
- readonly softHandValue: number | null;
361
- constructor(cards: ReadonlyArray<BlackjackCard>);
362
- get cardCount(): number;
363
- get hasSoftHandValue(): boolean;
364
- get isBusted(): boolean;
365
- get isBlackjack(): boolean;
366
- get highestHandValue(): number;
367
- }
510
+ readonly cards: ReadonlyArray<BlackjackCard>;
511
+ readonly hardHandValue: number;
512
+ readonly softHandValue: number | null;
513
+ constructor(cards: ReadonlyArray<BlackjackCard>);
514
+ get cardCount(): number;
515
+ get hasSoftHandValue(): boolean;
516
+ get isBusted(): boolean;
517
+ get isBlackjack(): boolean;
518
+ get highestHandValue(): number;
519
+ }
520
+ //#endregion
521
+ //#region src/games/blackjack/hand/blackjack-hand.d.ts
368
522
  declare abstract class BlackjackHand {
369
- readonly cards: ReadonlyArray<BlackjackCard>;
370
- protected readonly value: BlackjackHandValue;
371
- protected constructor(rawCards: ReadonlyArray<CardValue>);
372
- abstract addDrawnCards(newCards: ReadonlyArray<CardValue>): BlackjackHand;
373
- get isBusted(): boolean;
374
- get isBlackjack(): boolean;
375
- get highestHandValue(): number;
376
- get rawValues(): ReadonlyArray<CardValue>;
377
- toDto(): BlackjackHandDto;
378
- }
523
+ readonly cards: ReadonlyArray<BlackjackCard>;
524
+ protected readonly value: BlackjackHandValue;
525
+ protected constructor(rawCards: ReadonlyArray<CardValue>);
526
+ abstract addDrawnCards(newCards: ReadonlyArray<CardValue>): BlackjackHand;
527
+ get isBusted(): boolean;
528
+ get isBlackjack(): boolean;
529
+ get highestHandValue(): number;
530
+ get rawValues(): ReadonlyArray<CardValue>;
531
+ toDto(): BlackjackHandDto;
532
+ }
533
+ //#endregion
534
+ //#region src/games/blackjack/hand/dealer-hand.d.ts
379
535
  declare class DealerHand extends BlackjackHand {
380
- private readonly otherCards;
381
- readonly upCard: BlackjackCard;
382
- readonly holeCard: BlackjackCard;
383
- private constructor();
384
- static withInitialDeal(params: {
385
- upCard: CardValue;
386
- holeCard: CardValue;
387
- }): DealerHand;
388
- addDrawnCards(newCards: ReadonlyArray<CardValue>): DealerHand;
389
- toDto(revealHoleCard?: boolean): BlackjackHandDto;
390
- }
536
+ private readonly otherCards;
537
+ readonly upCard: BlackjackCard;
538
+ readonly holeCard: BlackjackCard;
539
+ private constructor();
540
+ static withInitialDeal(params: {
541
+ upCard: CardValue;
542
+ holeCard: CardValue;
543
+ }): DealerHand;
544
+ addDrawnCards(newCards: ReadonlyArray<CardValue>): DealerHand;
545
+ toDto(revealHoleCard?: boolean): BlackjackHandDto;
546
+ }
547
+ //#endregion
548
+ //#region src/games/blackjack/hand/player-hand.d.ts
391
549
  declare class PlayerHand extends BlackjackHand {
392
- static withInitialDeal(initialCards: readonly [
393
- CardValue,
394
- CardValue
395
- ]): PlayerHand;
396
- addDrawnCards(newCards: ReadonlyArray<CardValue>): PlayerHand;
550
+ static withInitialDeal(initialCards: readonly [CardValue, CardValue]): PlayerHand;
551
+ addDrawnCards(newCards: ReadonlyArray<CardValue>): PlayerHand;
397
552
  }
553
+ //#endregion
554
+ //#region src/games/random-value-pool.d.ts
398
555
  export declare class RandomValuePool {
399
- private readonly source;
400
- private index;
401
- private constructor();
402
- static from(result: MultipleRandomValues, count: number): RandomValuePool;
403
- get consumedValues(): number[];
404
- toMultipleRandomValues(): MultipleRandomValues;
405
- takeOne(): number;
406
- take(count: number): ReadonlyArray<number>;
407
- }
556
+ private readonly source;
557
+ private index;
558
+ private constructor();
559
+ static from(result: MultipleRandomValues, count: number): RandomValuePool;
560
+ get consumedValues(): number[];
561
+ toMultipleRandomValues(): MultipleRandomValues;
562
+ takeOne(): number;
563
+ take(count: number): ReadonlyArray<number>;
564
+ }
565
+ //#endregion
566
+ //#region src/games/multi-action-game.d.ts
408
567
  export type BaseInProgressState = Readonly<{
409
- isFinished: false;
410
- multiplier: Big$1;
568
+ isFinished: false;
569
+ multiplier: Big$1;
411
570
  }>;
412
571
  export type BaseFinishedState = Readonly<{
413
- isFinished: true;
414
- payout: Payout;
415
- multiplier: Big$1;
416
- randomValues: number[];
572
+ isFinished: true;
573
+ payout: Payout;
574
+ multiplier: Big$1;
575
+ randomValues: number[];
417
576
  }>;
418
577
  export type BaseGameState = BaseInProgressState | BaseFinishedState;
419
578
  export type GameContext<TAction, TState extends BaseGameState, TConfig> = {
420
- readonly playerArgument: TAction;
421
- readonly state: TState;
422
- readonly config: TConfig;
423
- readonly additionalBetAmount?: Big$1;
579
+ readonly playerArgument: TAction;
580
+ readonly state: TState;
581
+ readonly config: TConfig;
582
+ readonly additionalBetAmount?: Big$1;
424
583
  };
425
584
  export type RandomValuePoolEvent = Readonly<{
426
- randomValuePool: RandomValuePool;
585
+ randomValuePool: RandomValuePool;
427
586
  }>;
428
587
  export type UntypedGameContext = GameContext<{
429
- readonly type: string;
588
+ readonly type: string;
430
589
  }, BaseGameState, unknown>;
431
590
  export type PlayResult = UntypedGameContext & {
432
- readonly proof: Proof;
591
+ readonly proof: Proof;
433
592
  };
434
593
  export interface GameStore<TInternalState extends BaseGameState, TAction, TConfig> {
435
- send(event: {
436
- readonly type: string;
437
- } & RandomValuePoolEvent & Record<string, unknown>): void;
438
- getSnapshot(): {
439
- readonly context: GameContext<TAction, TInternalState, TConfig>;
440
- };
594
+ send(event: {
595
+ readonly type: string;
596
+ } & RandomValuePoolEvent & Record<string, unknown>): void;
597
+ getSnapshot(): {
598
+ readonly context: GameContext<TAction, TInternalState, TConfig>;
599
+ };
441
600
  }
442
601
  export declare abstract class MultiActionGame<TInternalState extends BaseGameState, TExternalState extends BaseGameState, TAction extends {
443
- readonly type: string;
602
+ readonly type: string;
444
603
  }, TConfig> implements Game {
445
- readonly gameId: OrigamiGame;
446
- readonly edge: number;
447
- protected constructor(gameId: OrigamiGame, edge: number);
448
- abstract get supportedEdgeConfigurations(): [
449
- number,
450
- ...number[]
451
- ];
452
- abstract getValidNextActionTypes(state: TExternalState): ReadonlyArray<TAction["type"]>;
453
- protected abstract createGameStore(): GameStore<TInternalState, TAction, TConfig>;
454
- protected abstract generateRandomValues(generator: RandomNumberGenerator): RandomValuePool;
455
- protected abstract toExternalState(internal: TInternalState): TExternalState;
456
- play(generator: RandomNumberGenerator, action: {
457
- readonly type: string;
458
- } & Record<string, unknown>, previousActions?: readonly UntypedGameContext[]): PlayResult;
459
- private validateEdge;
460
- }
604
+ readonly gameId: OrigamiGame;
605
+ readonly edge: number;
606
+ protected constructor(gameId: OrigamiGame, edge: number);
607
+ abstract get supportedEdgeConfigurations(): [number, ...number[]];
608
+ abstract getValidNextActionTypes(state: TExternalState): ReadonlyArray<TAction['type']>;
609
+ protected abstract createGameStore(): GameStore<TInternalState, TAction, TConfig>;
610
+ protected abstract generateRandomValues(generator: RandomNumberGenerator): RandomValuePool;
611
+ protected abstract toExternalState(internal: TInternalState): TExternalState;
612
+ play(generator: RandomNumberGenerator, action: {
613
+ readonly type: string;
614
+ } & Record<string, unknown>, previousActions?: readonly UntypedGameContext[]): PlayResult;
615
+ private validateEdge;
616
+ }
617
+ //#endregion
618
+ //#region src/games/blackjack/insurance-stake.d.ts
461
619
  export type RoundInsuranceStake = (unroundedStake: Big$1) => Big$1;
462
620
  export declare const calculateInsuranceStake: (mainBetAmount: Big$1, roundInsuranceStake: RoundInsuranceStake) => Big$1;
463
- export type BlackjackStartAction = Readonly<{
464
- type: BlackjackActionType.START;
465
- mainBetAmount: string;
466
- pairBonusAmount: string;
467
- threeCardBonusAmount: string;
621
+ //#endregion
622
+ //#region src/games/blackjack/blackjack.d.ts
623
+ type BlackjackStartAction = Readonly<{
624
+ type: BlackjackActionType.START;
625
+ mainBetAmount: string;
626
+ pairBonusAmount: string;
627
+ threeCardBonusAmount: string;
468
628
  }>;
469
- export type BlackjackHitAction = Readonly<{
470
- type: BlackjackActionType.HIT;
629
+ type BlackjackHitAction = Readonly<{
630
+ type: BlackjackActionType.HIT;
471
631
  }>;
472
- export type BlackjackStandAction = Readonly<{
473
- type: BlackjackActionType.STAND;
632
+ type BlackjackStandAction = Readonly<{
633
+ type: BlackjackActionType.STAND;
474
634
  }>;
475
- export type BlackjackBuyInsuranceAction = Readonly<{
476
- type: BlackjackActionType.BUY_INSURANCE;
635
+ type BlackjackBuyInsuranceAction = Readonly<{
636
+ type: BlackjackActionType.BUY_INSURANCE;
477
637
  }>;
478
- export type BlackjackRejectInsuranceAction = Readonly<{
479
- type: BlackjackActionType.REJECT_INSURANCE;
638
+ type BlackjackRejectInsuranceAction = Readonly<{
639
+ type: BlackjackActionType.REJECT_INSURANCE;
480
640
  }>;
481
- export type BlackjackDoubleDownAction = Readonly<{
482
- type: BlackjackActionType.DOUBLE_DOWN;
641
+ type BlackjackDoubleDownAction = Readonly<{
642
+ type: BlackjackActionType.DOUBLE_DOWN;
483
643
  }>;
484
- export type BlackjackSplitAction = Readonly<{
485
- type: BlackjackActionType.SPLIT;
644
+ type BlackjackSplitAction = Readonly<{
645
+ type: BlackjackActionType.SPLIT;
486
646
  }>;
487
- export type BlackjackAction = BlackjackStartAction | BlackjackHitAction | BlackjackStandAction | BlackjackBuyInsuranceAction | BlackjackRejectInsuranceAction | BlackjackDoubleDownAction | BlackjackSplitAction;
488
- export type BlackjackSingleHandStateBase = Readonly<{
489
- playerHand: BlackjackHandDto;
490
- dealerHand: BlackjackHandDto;
491
- sideBetResults: SideBetResults;
647
+ type BlackjackAction = BlackjackStartAction | BlackjackHitAction | BlackjackStandAction | BlackjackBuyInsuranceAction | BlackjackRejectInsuranceAction | BlackjackDoubleDownAction | BlackjackSplitAction;
648
+ type BlackjackSingleHandStateBase = Readonly<{
649
+ playerHand: BlackjackHandDto;
650
+ dealerHand: BlackjackHandDto;
651
+ sideBetResults: SideBetResults;
492
652
  }>;
493
- export type BlackjackAwaitingInsuranceState = Simplify<BlackjackSingleHandStateBase & BaseInProgressState & {
494
- phase: "awaiting-insurance";
653
+ type BlackjackAwaitingInsuranceState = Simplify<BlackjackSingleHandStateBase & BaseInProgressState & {
654
+ phase: 'awaiting-insurance';
495
655
  }>;
496
- export type BlackjackPlayerTurnState = Simplify<BlackjackSingleHandStateBase & BaseInProgressState & {
497
- phase: "player-turn";
656
+ type BlackjackPlayerTurnState = Simplify<BlackjackSingleHandStateBase & BaseInProgressState & {
657
+ phase: 'player-turn';
498
658
  }>;
499
- export type BlackjackSplitHandStateBase = Readonly<{
500
- mainHand: BlackjackHandDto;
501
- splitHand: BlackjackHandDto;
502
- dealerHand: BlackjackHandDto;
503
- sideBetResults: SideBetResults;
659
+ type BlackjackSplitHandStateBase = Readonly<{
660
+ mainHand: BlackjackHandDto;
661
+ splitHand: BlackjackHandDto;
662
+ dealerHand: BlackjackHandDto;
663
+ sideBetResults: SideBetResults;
504
664
  }>;
505
- export type BlackjackPlayingMainHandState = Simplify<BlackjackSplitHandStateBase & BaseInProgressState & {
506
- phase: "playing-main-hand";
665
+ type BlackjackPlayingMainHandState = Simplify<BlackjackSplitHandStateBase & BaseInProgressState & {
666
+ phase: 'playing-main-hand';
507
667
  }>;
508
- export type BlackjackPlayingSplitHandState = Simplify<BlackjackSplitHandStateBase & BaseInProgressState & {
509
- phase: "playing-split-hand";
668
+ type BlackjackPlayingSplitHandState = Simplify<BlackjackSplitHandStateBase & BaseInProgressState & {
669
+ phase: 'playing-split-hand';
510
670
  }>;
511
- export type BlackjackFinishedState = Simplify<BlackjackSingleHandStateBase & BaseFinishedState & {
512
- outcome: BlackjackOutcome;
513
- insuranceOutcome?: InsuranceOutcome;
671
+ type BlackjackFinishedState = Simplify<BlackjackSingleHandStateBase & BaseFinishedState & {
672
+ outcome: BlackjackOutcome;
673
+ insuranceOutcome?: InsuranceOutcome;
514
674
  }>;
515
- export type BlackjackSplitFinishedState = Simplify<BlackjackSplitHandStateBase & BaseFinishedState & {
516
- mainOutcome: BlackjackOutcome;
517
- splitOutcome: BlackjackOutcome;
518
- insuranceOutcome?: InsuranceOutcome;
675
+ type BlackjackSplitFinishedState = Simplify<BlackjackSplitHandStateBase & BaseFinishedState & {
676
+ mainOutcome: BlackjackOutcome;
677
+ splitOutcome: BlackjackOutcome;
678
+ insuranceOutcome?: InsuranceOutcome;
519
679
  }>;
520
680
  export type BlackjackState = BlackjackAwaitingInsuranceState | BlackjackPlayerTurnState | BlackjackPlayingMainHandState | BlackjackPlayingSplitHandState | BlackjackFinishedState | BlackjackSplitFinishedState;
521
- export type BlackjackConfig = Record<string, never>;
522
- export type BlackjackInternalUninitialisedState = BaseInProgressState & {
523
- readonly phase: "uninitialised";
681
+ type BlackjackConfig = Record<string, never>;
682
+ type BlackjackInternalUninitialisedState = BaseInProgressState & {
683
+ readonly phase: 'uninitialised';
524
684
  };
525
- export type BlackjackInternalAwaitingInsuranceState = BaseInProgressState & {
526
- readonly phase: "awaiting-insurance";
527
- readonly playerHand: PlayerHand;
528
- readonly dealerHand: DealerHand;
529
- readonly betAmounts: BetAmounts;
530
- readonly sideBetResults: SideBetResults;
685
+ type BlackjackInternalAwaitingInsuranceState = BaseInProgressState & {
686
+ readonly phase: 'awaiting-insurance';
687
+ readonly playerHand: PlayerHand;
688
+ readonly dealerHand: DealerHand;
689
+ readonly betAmounts: BetAmounts;
690
+ readonly sideBetResults: SideBetResults;
531
691
  };
532
- export type BlackjackInternalInProgressState = BaseInProgressState & {
533
- readonly phase: "in-progress";
534
- readonly playerHand: PlayerHand;
535
- readonly dealerHand: DealerHand;
536
- readonly insuranceOutcome: InsuranceOutcome | undefined;
537
- readonly betAmounts: BetAmounts;
538
- readonly sideBetResults: SideBetResults;
692
+ type BlackjackInternalInProgressState = BaseInProgressState & {
693
+ readonly phase: 'in-progress';
694
+ readonly playerHand: PlayerHand;
695
+ readonly dealerHand: DealerHand;
696
+ readonly insuranceOutcome: InsuranceOutcome | undefined;
697
+ readonly betAmounts: BetAmounts;
698
+ readonly sideBetResults: SideBetResults;
539
699
  };
540
- export type BlackjackInternalPlayingMainHandState = BaseInProgressState & {
541
- readonly phase: "playing-main-hand";
542
- readonly mainHand: PlayerHand;
543
- readonly splitHand: PlayerHand;
544
- readonly dealerHand: DealerHand;
545
- readonly insuranceOutcome: InsuranceOutcome | undefined;
546
- readonly mainHandDoubledDown: boolean;
547
- readonly betAmounts: BetAmounts;
548
- readonly sideBetResults: SideBetResults;
700
+ type BlackjackInternalPlayingMainHandState = BaseInProgressState & {
701
+ readonly phase: 'playing-main-hand';
702
+ readonly mainHand: PlayerHand;
703
+ readonly splitHand: PlayerHand;
704
+ readonly dealerHand: DealerHand;
705
+ readonly insuranceOutcome: InsuranceOutcome | undefined;
706
+ readonly mainHandDoubledDown: boolean;
707
+ readonly betAmounts: BetAmounts;
708
+ readonly sideBetResults: SideBetResults;
549
709
  };
550
- export type BlackjackInternalPlayingSplitHandState = BaseInProgressState & {
551
- readonly phase: "playing-split-hand";
552
- readonly mainHand: PlayerHand;
553
- readonly splitHand: PlayerHand;
554
- readonly dealerHand: DealerHand;
555
- readonly insuranceOutcome: InsuranceOutcome | undefined;
556
- readonly mainHandDoubledDown: boolean;
557
- readonly splitHandDoubledDown: boolean;
558
- readonly betAmounts: BetAmounts;
559
- readonly sideBetResults: SideBetResults;
710
+ type BlackjackInternalPlayingSplitHandState = BaseInProgressState & {
711
+ readonly phase: 'playing-split-hand';
712
+ readonly mainHand: PlayerHand;
713
+ readonly splitHand: PlayerHand;
714
+ readonly dealerHand: DealerHand;
715
+ readonly insuranceOutcome: InsuranceOutcome | undefined;
716
+ readonly mainHandDoubledDown: boolean;
717
+ readonly splitHandDoubledDown: boolean;
718
+ readonly betAmounts: BetAmounts;
719
+ readonly sideBetResults: SideBetResults;
560
720
  };
561
- export type BlackjackInternalFinishedState = BaseFinishedState & {
562
- readonly phase: "finished";
563
- readonly playerHand: PlayerHand;
564
- readonly dealerHand: DealerHand;
565
- readonly outcome: BlackjackOutcome;
566
- readonly insuranceOutcome?: InsuranceOutcome;
567
- readonly sideBetResults: SideBetResults;
721
+ type BlackjackInternalFinishedState = BaseFinishedState & {
722
+ readonly phase: 'finished';
723
+ readonly playerHand: PlayerHand;
724
+ readonly dealerHand: DealerHand;
725
+ readonly outcome: BlackjackOutcome;
726
+ readonly insuranceOutcome?: InsuranceOutcome;
727
+ readonly sideBetResults: SideBetResults;
568
728
  };
569
- export type BlackjackInternalSplitFinishedState = BaseFinishedState & {
570
- readonly phase: "split-finished";
571
- readonly mainHand: PlayerHand;
572
- readonly splitHand: PlayerHand;
573
- readonly dealerHand: DealerHand;
574
- readonly mainOutcome: BlackjackOutcome;
575
- readonly splitOutcome: BlackjackOutcome;
576
- readonly insuranceOutcome?: InsuranceOutcome;
577
- readonly sideBetResults: SideBetResults;
729
+ type BlackjackInternalSplitFinishedState = BaseFinishedState & {
730
+ readonly phase: 'split-finished';
731
+ readonly mainHand: PlayerHand;
732
+ readonly splitHand: PlayerHand;
733
+ readonly dealerHand: DealerHand;
734
+ readonly mainOutcome: BlackjackOutcome;
735
+ readonly splitOutcome: BlackjackOutcome;
736
+ readonly insuranceOutcome?: InsuranceOutcome;
737
+ readonly sideBetResults: SideBetResults;
578
738
  };
579
- export type BlackjackInternalState = BlackjackInternalUninitialisedState | BlackjackInternalAwaitingInsuranceState | BlackjackInternalInProgressState | BlackjackInternalPlayingMainHandState | BlackjackInternalPlayingSplitHandState | BlackjackInternalFinishedState | BlackjackInternalSplitFinishedState;
739
+ type BlackjackInternalState = BlackjackInternalUninitialisedState | BlackjackInternalAwaitingInsuranceState | BlackjackInternalInProgressState | BlackjackInternalPlayingMainHandState | BlackjackInternalPlayingSplitHandState | BlackjackInternalFinishedState | BlackjackInternalSplitFinishedState;
580
740
  export type BlackjackGameContext = GameContext<BlackjackAction, BlackjackState, BlackjackConfig>;
581
741
  export declare class Blackjack extends MultiActionGame<BlackjackInternalState, BlackjackState, BlackjackAction, BlackjackConfig> {
582
- private readonly roundInsuranceStake;
583
- constructor(edge: number, roundInsuranceStake: RoundInsuranceStake);
584
- get supportedEdgeConfigurations(): [
585
- number,
586
- ...number[]
587
- ];
588
- protected generateRandomValues(generator: RandomNumberGenerator): RandomValuePool;
589
- protected toExternalState(internal: BlackjackInternalState): BlackjackState;
590
- protected createGameStore(): GameStore<BlackjackInternalState, BlackjackAction, BlackjackConfig>;
591
- getValidNextActionTypes(state: BlackjackState): readonly BlackjackActionType[];
592
- }
742
+ private readonly roundInsuranceStake;
743
+ constructor(edge: number, roundInsuranceStake: RoundInsuranceStake);
744
+ get supportedEdgeConfigurations(): [number, ...number[]];
745
+ protected generateRandomValues(generator: RandomNumberGenerator): RandomValuePool;
746
+ protected toExternalState(internal: BlackjackInternalState): BlackjackState;
747
+ protected createGameStore(): GameStore<BlackjackInternalState, BlackjackAction, BlackjackConfig>;
748
+ getValidNextActionTypes(state: BlackjackState): readonly BlackjackActionType[];
749
+ }
750
+ //#endregion
751
+ //#region src/games/blitz/blitz.d.ts
593
752
  export interface BlitzGameInputs {
594
- pickCount: number;
595
- betAmount: Big$1;
753
+ pickCount: number;
754
+ betAmount: Big$1;
596
755
  }
597
756
  export interface BlitzGameOutputs {
598
- cards: CardDto[];
599
- result: number[];
757
+ cards: CardDto[];
758
+ result: number[];
600
759
  }
601
760
  export declare const getBlitzDefaults: () => {
602
- minPicks: number;
603
- maxPicks: number;
761
+ minPicks: number;
762
+ maxPicks: number;
604
763
  };
605
764
  export declare const hasBlitzWon: (drawnCards: number[]) => boolean;
606
765
  /** Returns the probability of winning a Blitz game with a given number of picks between 0-1 */
607
766
  export declare const calculateBlitzWinChance: (picks: number) => Big$1;
608
767
  export declare class Blitz extends SingleActionGame<BlitzGameInputs, BlitzGameOutputs> {
609
- constructor();
610
- get supportedEdgeConfigurations(): [
611
- number,
612
- ...number[]
613
- ];
614
- getBetAmount(gameInputs: BlitzGameInputs): Big$1;
615
- protected determineGameResult({ generator, gameInputs, edge }: GetGameResultRequest<BlitzGameInputs>): GameResult<BlitzGameOutputs>;
768
+ constructor();
769
+ get supportedEdgeConfigurations(): [number, ...number[]];
770
+ getBetAmount(gameInputs: BlitzGameInputs): Big$1;
771
+ protected determineGameResult({ generator, gameInputs, edge }: GetGameResultRequest<BlitzGameInputs>): GameResult<BlitzGameOutputs>;
616
772
  }
773
+ //#endregion
774
+ //#region src/games/blitz/blitz.constants.d.ts
617
775
  export declare const BLITZ_MIN_CARD_RANGE = 0;
618
776
  export declare const BLITZ_MAX_CARD_RANGE = 51;
619
777
  export declare const BLITZ_CARD_COUNT = 52;
620
778
  export declare const BLITZ_RANDOM_NUMBER_COUNT = 52;
779
+ //#endregion
780
+ //#region src/games/darts/darts.constants.d.ts
621
781
  export declare const DARTS_MIN_VALUE = 0;
622
782
  export declare const DARTS_MAX_VALUE = 4294967295;
623
783
  export declare enum DARTS_DIFFICULTY_LEVEL {
624
- EASY = "EASY",
625
- MEDIUM = "MEDIUM",
626
- HARD = "HARD",
627
- EXPERT = "EXPERT"
784
+ EASY = "EASY",
785
+ MEDIUM = "MEDIUM",
786
+ HARD = "HARD",
787
+ EXPERT = "EXPERT"
628
788
  }
789
+ //#endregion
790
+ //#region src/games/darts/darts.d.ts
629
791
  export interface DartsGameInputs {
630
- difficultyLevel: DARTS_DIFFICULTY_LEVEL;
631
- betAmount: Big$1;
792
+ difficultyLevel: DARTS_DIFFICULTY_LEVEL;
793
+ betAmount: Big$1;
632
794
  }
633
795
  export declare class Darts extends SingleActionGame<DartsGameInputs> {
634
- constructor();
635
- get supportedEdgeConfigurations(): [
636
- number,
637
- ...number[]
638
- ];
639
- getBetAmount(gameInputs: DartsGameInputs): Big$1;
640
- protected determineGameResult({ generator, gameInputs }: GetGameResultRequest<DartsGameInputs>): GameResult;
641
- }
642
- export type Segment = "YELLOW" | "ORANGE" | "RED";
796
+ constructor();
797
+ get supportedEdgeConfigurations(): [number, ...number[]];
798
+ getBetAmount(gameInputs: DartsGameInputs): Big$1;
799
+ protected determineGameResult({ generator, gameInputs }: GetGameResultRequest<DartsGameInputs>): GameResult;
800
+ }
801
+ //#endregion
802
+ //#region src/games/darts/darts-difficulty-config.d.ts
803
+ export type Segment = 'YELLOW' | 'ORANGE' | 'RED';
643
804
  export type DartboardConfig = ReadonlyDeep<{
644
- distanceBoundaries: {
645
- bullseye: number;
646
- ringOne: number;
647
- ringTwo: number;
648
- ringThree: number;
649
- };
650
- multipliers: {
651
- bullseye: number;
652
- ringOne: number;
653
- ringTwo: number;
654
- ringThree: Readonly<Record<Segment, number>>;
655
- ringFour: number;
656
- };
657
- segments: ReadonlyArray<Segment>;
805
+ distanceBoundaries: {
806
+ bullseye: number;
807
+ ringOne: number;
808
+ ringTwo: number;
809
+ ringThree: number;
810
+ };
811
+ multipliers: {
812
+ bullseye: number;
813
+ ringOne: number;
814
+ ringTwo: number;
815
+ ringThree: Readonly<Record<Segment, number>>;
816
+ ringFour: number;
817
+ };
818
+ segments: ReadonlyArray<Segment>;
658
819
  }>;
659
820
  export declare const getMaxMultiplierForDifficulty: (difficultyLevel: DARTS_DIFFICULTY_LEVEL) => number;
660
821
  export declare const DARTS_BOARD_CONFIGS: Record<DARTS_DIFFICULTY_LEVEL, DartboardConfig>;
822
+ //#endregion
823
+ //#region src/games/infrastructure/multiplier.container.d.ts
661
824
  declare class MultiplierContainer<TMultipliers> {
662
- readonly multipliers: Map<number, TMultipliers>;
663
- constructor(multipliers: Map<number, TMultipliers>);
664
- getMultipliers(edge: number): TMultipliers;
665
- getAllMultipliers(): {
666
- edge: number;
667
- multipliers: TMultipliers;
668
- }[];
669
- }
825
+ readonly multipliers: Map<number, TMultipliers>;
826
+ constructor(multipliers: Map<number, TMultipliers>);
827
+ getMultipliers(edge: number): TMultipliers;
828
+ getAllMultipliers(): {
829
+ edge: number;
830
+ multipliers: TMultipliers;
831
+ }[];
832
+ }
833
+ //#endregion
834
+ //#region src/games/diamonds/diamonds.d.ts
670
835
  export interface DiamondsGameInputs {
671
- betAmount: Big$1;
836
+ betAmount: Big$1;
672
837
  }
673
838
  export declare enum DiamondsResultType {
674
- PAIR = "PAIR",
675
- TWO_PAIR = "TWO_PAIR",
676
- THREE_OF_A_KIND = "THREE_OF_A_KIND",
677
- FULL_HOUSE = "FULL_HOUSE",
678
- FOUR_OF_A_KIND = "FOUR_OF_A_KIND",
679
- FIVE_OF_A_KIND = "FIVE_OF_A_KIND"
839
+ PAIR = "PAIR",
840
+ TWO_PAIR = "TWO_PAIR",
841
+ THREE_OF_A_KIND = "THREE_OF_A_KIND",
842
+ FULL_HOUSE = "FULL_HOUSE",
843
+ FOUR_OF_A_KIND = "FOUR_OF_A_KIND",
844
+ FIVE_OF_A_KIND = "FIVE_OF_A_KIND"
680
845
  }
681
846
  export type DiamondsMultipliers = Record<keyof typeof DiamondsResultType, number>;
682
847
  export declare const diamondsMultipliers: MultiplierContainer<DiamondsMultipliers>;
683
848
  export declare class Diamonds extends SingleActionGame<DiamondsGameInputs> {
684
- constructor();
685
- get supportedEdgeConfigurations(): [
686
- number,
687
- ...number[]
688
- ];
689
- getBetAmount(gameInputs: DiamondsGameInputs): Big$1;
690
- protected determineGameResult({ generator, edge, gameInputs }: GetGameResultRequest<DiamondsGameInputs>): GameResult;
691
- private calculatePayoutMultiplier;
692
- private classifyResult;
693
- }
849
+ constructor();
850
+ get supportedEdgeConfigurations(): [number, ...number[]];
851
+ getBetAmount(gameInputs: DiamondsGameInputs): Big$1;
852
+ protected determineGameResult({ generator, edge, gameInputs }: GetGameResultRequest<DiamondsGameInputs>): GameResult;
853
+ private calculatePayoutMultiplier;
854
+ private classifyResult;
855
+ }
856
+ //#endregion
857
+ //#region src/games/dice/dice.d.ts
694
858
  export declare enum DiceDirection {
695
- ABOVE = "ABOVE",
696
- BELOW = "BELOW"
859
+ ABOVE = "ABOVE",
860
+ BELOW = "BELOW"
697
861
  }
698
862
  export interface DiceGameInputs {
699
- direction: DiceDirection;
700
- selectedValue: number;
701
- betAmount: Big$1;
863
+ direction: DiceDirection;
864
+ selectedValue: number;
865
+ betAmount: Big$1;
702
866
  }
703
- export type DiceSelection = Pick<DiceGameInputs, "direction" | "selectedValue">;
867
+ export type DiceSelection = Pick<DiceGameInputs, 'direction' | 'selectedValue'>;
704
868
  export declare const DICE_MIN_ROLL = 0;
705
869
  export declare const DICE_MAX_ROLL = 10000;
706
870
  export declare const DICE_EFFECTIVE_RANGE: number;
707
871
  export declare const calculateDiceWinChance: (gameInputs: DiceSelection) => Big$1;
708
872
  export declare const hasDiceWon: (gameInputs: DiceSelection, rolledValue: number) => boolean;
709
873
  export declare class Dice extends SingleActionGame<DiceGameInputs> {
710
- constructor();
711
- get supportedEdgeConfigurations(): [
712
- number,
713
- ...number[]
714
- ];
715
- getBetAmount(gameInputs: DiceGameInputs): Big$1;
716
- protected determineGameResult({ generator, edge, gameInputs }: GetGameResultRequest<DiceGameInputs>): GameResult;
874
+ constructor();
875
+ get supportedEdgeConfigurations(): [number, ...number[]];
876
+ getBetAmount(gameInputs: DiceGameInputs): Big$1;
877
+ protected determineGameResult({ generator, edge, gameInputs }: GetGameResultRequest<DiceGameInputs>): GameResult;
717
878
  }
879
+ //#endregion
880
+ //#region src/games/keno/keno.constants.d.ts
718
881
  export declare enum KenoRiskLevel {
719
- CLASSIC = "CLASSIC",
720
- LOW_RISK = "LOW_RISK",
721
- MEDIUM_RISK = "MEDIUM_RISK",
722
- HIGH_RISK = "HIGH_RISK"
723
- }
724
- export declare const TILE_COUNTS: readonly [
725
- 1,
726
- 2,
727
- 3,
728
- 4,
729
- 5,
730
- 6,
731
- 7,
732
- 8,
733
- 9,
734
- 10
735
- ];
882
+ CLASSIC = "CLASSIC",
883
+ LOW_RISK = "LOW_RISK",
884
+ MEDIUM_RISK = "MEDIUM_RISK",
885
+ HIGH_RISK = "HIGH_RISK"
886
+ }
887
+ export declare const TILE_COUNTS: readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
736
888
  export type TileCount = (typeof TILE_COUNTS)[number];
737
889
  export declare const isTileCount: (value: number) => value is TileCount;
890
+ //#endregion
891
+ //#region src/games/keno/keno.d.ts
738
892
  export interface KenoGameInputs {
739
- riskLevel: KenoRiskLevel;
740
- selectedNumbers: number[];
741
- betAmount: Big$1;
893
+ riskLevel: KenoRiskLevel;
894
+ selectedNumbers: number[];
895
+ betAmount: Big$1;
742
896
  }
743
897
  export declare class Keno extends SingleActionGame<KenoGameInputs> {
744
- constructor();
745
- get supportedEdgeConfigurations(): [
746
- number,
747
- ...number[]
748
- ];
749
- getBetAmount(gameInputs: KenoGameInputs): Big$1;
750
- protected determineGameResult({ generator, edge, gameInputs }: GetGameResultRequest<KenoGameInputs>): GameResult;
898
+ constructor();
899
+ get supportedEdgeConfigurations(): [number, ...number[]];
900
+ getBetAmount(gameInputs: KenoGameInputs): Big$1;
901
+ protected determineGameResult({ generator, edge, gameInputs }: GetGameResultRequest<KenoGameInputs>): GameResult;
751
902
  }
903
+ //#endregion
904
+ //#region src/games/keno/keno.multipliers.d.ts
752
905
  export type KenoMultipliers = Record<TileCount, Record<KenoRiskLevel, number[]>>;
753
906
  export declare const rtp99Multipliers: KenoMultipliers;
754
907
  export declare const rtp98Multipliers: KenoMultipliers;
@@ -756,1514 +909,347 @@ export declare const rtp97Multipliers: KenoMultipliers;
756
909
  export declare const rtp96Multipliers: KenoMultipliers;
757
910
  export declare const rtp92Multipliers: KenoMultipliers;
758
911
  export declare const kenoMultipliers: MultiplierContainer<KenoMultipliers>;
912
+ //#endregion
913
+ //#region src/games/limbo/limbo.d.ts
759
914
  export interface LimboGameInputs {
760
- targetMultiplier: number;
761
- betAmount: Big$1;
915
+ targetMultiplier: number;
916
+ betAmount: Big$1;
762
917
  }
763
918
  export interface LimboGameOutputs {
764
- randomMultiplier: Big$1;
919
+ randomMultiplier: Big$1;
765
920
  }
766
921
  export declare class Limbo extends SingleActionGame<LimboGameInputs, LimboGameOutputs> {
767
- constructor();
768
- get supportedEdgeConfigurations(): [
769
- number,
770
- ...number[]
771
- ];
772
- getBetAmount(gameInputs: LimboGameInputs): Big$1;
773
- protected determineGameResult({ generator, edge, gameInputs }: GetGameResultRequest<LimboGameInputs>): GameResult<LimboGameOutputs>;
922
+ constructor();
923
+ get supportedEdgeConfigurations(): [number, ...number[]];
924
+ getBetAmount(gameInputs: LimboGameInputs): Big$1;
925
+ protected determineGameResult({ generator, edge, gameInputs }: GetGameResultRequest<LimboGameInputs>): GameResult<LimboGameOutputs>;
774
926
  }
927
+ //#endregion
928
+ //#region src/games/mines/mines.d.ts
775
929
  export interface MinesGameInputs {
776
- minesCount: number;
777
- selectedTiles: number[];
778
- hasCashedOut: boolean;
779
- betAmount: Big$1;
930
+ minesCount: number;
931
+ selectedTiles: number[];
932
+ hasCashedOut: boolean;
933
+ betAmount: Big$1;
780
934
  }
781
935
  export declare class Mines extends SingleActionGame<MinesGameInputs> {
782
- constructor();
783
- get supportedEdgeConfigurations(): [
784
- number,
785
- ...number[]
786
- ];
787
- getBetAmount(gameInputs: MinesGameInputs): Big$1;
788
- protected determineGameResult({ generator, edge, gameInputs }: GetGameResultRequest<MinesGameInputs>): GameResult;
936
+ constructor();
937
+ get supportedEdgeConfigurations(): [number, ...number[]];
938
+ getBetAmount(gameInputs: MinesGameInputs): Big$1;
939
+ protected determineGameResult({ generator, edge, gameInputs }: GetGameResultRequest<MinesGameInputs>): GameResult;
789
940
  }
941
+ //#endregion
942
+ //#region src/games/plinko/plinko.constants.d.ts
790
943
  export declare enum PlinkoRiskLevel {
791
- LOW_RISK = "LOW_RISK",
792
- MEDIUM_RISK = "MEDIUM_RISK",
793
- HIGH_RISK = "HIGH_RISK"
944
+ LOW_RISK = "LOW_RISK",
945
+ MEDIUM_RISK = "MEDIUM_RISK",
946
+ HIGH_RISK = "HIGH_RISK"
794
947
  }
948
+ //#endregion
949
+ //#region src/games/plinko/plinko.d.ts
795
950
  export interface PlinkoGameInputs {
796
- numberOfRows: number;
797
- riskLevel: PlinkoRiskLevel;
798
- betAmount: Big$1.Big;
951
+ numberOfRows: number;
952
+ riskLevel: PlinkoRiskLevel;
953
+ betAmount: Big;
799
954
  }
800
955
  export declare class Plinko extends SingleActionGame<PlinkoGameInputs> {
801
- constructor();
802
- get supportedEdgeConfigurations(): [
803
- number,
804
- ...number[]
805
- ];
806
- getBetAmount(gameInputs: PlinkoGameInputs): Big$1.Big;
807
- protected determineGameResult({ generator, gameInputs, edge }: GetGameResultRequest<PlinkoGameInputs>): GameResult;
808
- }
809
- export declare const PLINKO_ROW_COUNTS: readonly [
810
- 8,
811
- 9,
812
- 10,
813
- 11,
814
- 12,
815
- 13,
816
- 14,
817
- 15,
818
- 16
819
- ];
956
+ constructor();
957
+ get supportedEdgeConfigurations(): [number, ...number[]];
958
+ getBetAmount(gameInputs: PlinkoGameInputs): Big;
959
+ protected determineGameResult({ generator, gameInputs, edge }: GetGameResultRequest<PlinkoGameInputs>): GameResult;
960
+ }
961
+ //#endregion
962
+ //#region src/games/plinko/plinko.multipliers.d.ts
963
+ export declare const PLINKO_ROW_COUNTS: readonly [8, 9, 10, 11, 12, 13, 14, 15, 16];
820
964
  export type PlinkoRowCount = (typeof PLINKO_ROW_COUNTS)[number];
821
965
  export type PlinkoMultiplierSet = Record<PlinkoRowCount, number[]>;
822
966
  export type PlinkoMultipliers = Record<PlinkoRiskLevel, PlinkoMultiplierSet>;
823
967
  export declare const plinkoMultipliers: MultiplierContainer<PlinkoMultipliers>;
824
- export declare const VALID_EUROPEAN_STRAIGHTS: readonly [
825
- 0,
826
- 1,
827
- 2,
828
- 3,
829
- 4,
830
- 5,
831
- 6,
832
- 7,
833
- 8,
834
- 9,
835
- 10,
836
- 11,
837
- 12,
838
- 13,
839
- 14,
840
- 15,
841
- 16,
842
- 17,
843
- 18,
844
- 19,
845
- 20,
846
- 21,
847
- 22,
848
- 23,
849
- 24,
850
- 25,
851
- 26,
852
- 27,
853
- 28,
854
- 29,
855
- 30,
856
- 31,
857
- 32,
858
- 33,
859
- 34,
860
- 35,
861
- 36
862
- ];
968
+ //#endregion
969
+ //#region src/games/roulette/roulette.types.d.ts
970
+ export declare const VALID_EUROPEAN_STRAIGHTS: readonly [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36];
863
971
  export type EuropeanStraight = (typeof VALID_EUROPEAN_STRAIGHTS)[number];
864
- export declare const VALID_AMERICAN_STRAIGHTS: readonly [
865
- 37,
866
- 0,
867
- 1,
868
- 2,
869
- 3,
870
- 4,
871
- 5,
872
- 6,
873
- 7,
874
- 8,
875
- 9,
876
- 10,
877
- 11,
878
- 12,
879
- 13,
880
- 14,
881
- 15,
882
- 16,
883
- 17,
884
- 18,
885
- 19,
886
- 20,
887
- 21,
888
- 22,
889
- 23,
890
- 24,
891
- 25,
892
- 26,
893
- 27,
894
- 28,
895
- 29,
896
- 30,
897
- 31,
898
- 32,
899
- 33,
900
- 34,
901
- 35,
902
- 36
903
- ];
972
+ export declare const VALID_AMERICAN_STRAIGHTS: readonly [37, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36];
904
973
  export type AmericanStraight = (typeof VALID_AMERICAN_STRAIGHTS)[number];
905
974
  export interface EuropeanStraightBet extends BaseBet {
906
- value: EuropeanStraight;
975
+ value: EuropeanStraight;
907
976
  }
908
977
  export interface AmericanStraightBet extends BaseBet {
909
- value: AmericanStraight;
910
- }
911
- export declare const VALID_EUROPEAN_SPLITS: readonly [
912
- readonly [
913
- 0,
914
- 1
915
- ],
916
- readonly [
917
- 0,
918
- 2
919
- ],
920
- readonly [
921
- 0,
922
- 3
923
- ],
924
- readonly [
925
- 1,
926
- 2
927
- ],
928
- readonly [
929
- 1,
930
- 4
931
- ],
932
- readonly [
933
- 2,
934
- 3
935
- ],
936
- readonly [
937
- 2,
938
- 5
939
- ],
940
- readonly [
941
- 3,
942
- 6
943
- ],
944
- readonly [
945
- 4,
946
- 5
947
- ],
948
- readonly [
949
- 4,
950
- 7
951
- ],
952
- readonly [
953
- 5,
954
- 6
955
- ],
956
- readonly [
957
- 5,
958
- 8
959
- ],
960
- readonly [
961
- 6,
962
- 9
963
- ],
964
- readonly [
965
- 7,
966
- 8
967
- ],
968
- readonly [
969
- 7,
970
- 10
971
- ],
972
- readonly [
973
- 8,
974
- 9
975
- ],
976
- readonly [
977
- 8,
978
- 11
979
- ],
980
- readonly [
981
- 9,
982
- 12
983
- ],
984
- readonly [
985
- 10,
986
- 11
987
- ],
988
- readonly [
989
- 10,
990
- 13
991
- ],
992
- readonly [
993
- 11,
994
- 12
995
- ],
996
- readonly [
997
- 11,
998
- 14
999
- ],
1000
- readonly [
1001
- 12,
1002
- 15
1003
- ],
1004
- readonly [
1005
- 13,
1006
- 14
1007
- ],
1008
- readonly [
1009
- 13,
1010
- 16
1011
- ],
1012
- readonly [
1013
- 14,
1014
- 15
1015
- ],
1016
- readonly [
1017
- 14,
1018
- 17
1019
- ],
1020
- readonly [
1021
- 15,
1022
- 18
1023
- ],
1024
- readonly [
1025
- 16,
1026
- 17
1027
- ],
1028
- readonly [
1029
- 16,
1030
- 19
1031
- ],
1032
- readonly [
1033
- 17,
1034
- 18
1035
- ],
1036
- readonly [
1037
- 17,
1038
- 20
1039
- ],
1040
- readonly [
1041
- 18,
1042
- 21
1043
- ],
1044
- readonly [
1045
- 19,
1046
- 20
1047
- ],
1048
- readonly [
1049
- 19,
1050
- 22
1051
- ],
1052
- readonly [
1053
- 20,
1054
- 21
1055
- ],
1056
- readonly [
1057
- 20,
1058
- 23
1059
- ],
1060
- readonly [
1061
- 21,
1062
- 24
1063
- ],
1064
- readonly [
1065
- 22,
1066
- 23
1067
- ],
1068
- readonly [
1069
- 22,
1070
- 25
1071
- ],
1072
- readonly [
1073
- 23,
1074
- 24
1075
- ],
1076
- readonly [
1077
- 23,
1078
- 26
1079
- ],
1080
- readonly [
1081
- 24,
1082
- 27
1083
- ],
1084
- readonly [
1085
- 25,
1086
- 26
1087
- ],
1088
- readonly [
1089
- 25,
1090
- 28
1091
- ],
1092
- readonly [
1093
- 26,
1094
- 27
1095
- ],
1096
- readonly [
1097
- 26,
1098
- 29
1099
- ],
1100
- readonly [
1101
- 27,
1102
- 30
1103
- ],
1104
- readonly [
1105
- 28,
1106
- 29
1107
- ],
1108
- readonly [
1109
- 28,
1110
- 31
1111
- ],
1112
- readonly [
1113
- 29,
1114
- 30
1115
- ],
1116
- readonly [
1117
- 29,
1118
- 32
1119
- ],
1120
- readonly [
1121
- 30,
1122
- 33
1123
- ],
1124
- readonly [
1125
- 31,
1126
- 32
1127
- ],
1128
- readonly [
1129
- 31,
1130
- 34
1131
- ],
1132
- readonly [
1133
- 32,
1134
- 33
1135
- ],
1136
- readonly [
1137
- 32,
1138
- 35
1139
- ],
1140
- readonly [
1141
- 33,
1142
- 36
1143
- ],
1144
- readonly [
1145
- 34,
1146
- 35
1147
- ],
1148
- readonly [
1149
- 35,
1150
- 36
1151
- ]
1152
- ];
978
+ value: AmericanStraight;
979
+ }
980
+ export declare const VALID_EUROPEAN_SPLITS: readonly [readonly [0, 1], readonly [0, 2], readonly [0, 3], readonly [1, 2], readonly [1, 4], readonly [2, 3], readonly [2, 5], readonly [3, 6], readonly [4, 5], readonly [4, 7], readonly [5, 6], readonly [5, 8], readonly [6, 9], readonly [7, 8], readonly [7, 10], readonly [8, 9], readonly [8, 11], readonly [9, 12], readonly [10, 11], readonly [10, 13], readonly [11, 12], readonly [11, 14], readonly [12, 15], readonly [13, 14], readonly [13, 16], readonly [14, 15], readonly [14, 17], readonly [15, 18], readonly [16, 17], readonly [16, 19], readonly [17, 18], readonly [17, 20], readonly [18, 21], readonly [19, 20], readonly [19, 22], readonly [20, 21], readonly [20, 23], readonly [21, 24], readonly [22, 23], readonly [22, 25], readonly [23, 24], readonly [23, 26], readonly [24, 27], readonly [25, 26], readonly [25, 28], readonly [26, 27], readonly [26, 29], readonly [27, 30], readonly [28, 29], readonly [28, 31], readonly [29, 30], readonly [29, 32], readonly [30, 33], readonly [31, 32], readonly [31, 34], readonly [32, 33], readonly [32, 35], readonly [33, 36], readonly [34, 35], readonly [35, 36]];
1153
981
  export type EuropeanSplit = (typeof VALID_EUROPEAN_SPLITS)[number];
1154
982
  export interface EuropeanSplitBet extends BaseBet {
1155
- values: EuropeanSplit;
1156
- }
1157
- export declare const VALID_AMERICAN_SPLITS: readonly [
1158
- readonly [
1159
- 0,
1160
- 1
1161
- ],
1162
- readonly [
1163
- 0,
1164
- 37
1165
- ],
1166
- readonly [
1167
- 3,
1168
- 37
1169
- ],
1170
- readonly [
1171
- 1,
1172
- 2
1173
- ],
1174
- readonly [
1175
- 1,
1176
- 4
1177
- ],
1178
- readonly [
1179
- 2,
1180
- 3
1181
- ],
1182
- readonly [
1183
- 2,
1184
- 5
1185
- ],
1186
- readonly [
1187
- 3,
1188
- 6
1189
- ],
1190
- readonly [
1191
- 4,
1192
- 5
1193
- ],
1194
- readonly [
1195
- 4,
1196
- 7
1197
- ],
1198
- readonly [
1199
- 5,
1200
- 6
1201
- ],
1202
- readonly [
1203
- 5,
1204
- 8
1205
- ],
1206
- readonly [
1207
- 6,
1208
- 9
1209
- ],
1210
- readonly [
1211
- 7,
1212
- 8
1213
- ],
1214
- readonly [
1215
- 7,
1216
- 10
1217
- ],
1218
- readonly [
1219
- 8,
1220
- 9
1221
- ],
1222
- readonly [
1223
- 8,
1224
- 11
1225
- ],
1226
- readonly [
1227
- 9,
1228
- 12
1229
- ],
1230
- readonly [
1231
- 10,
1232
- 11
1233
- ],
1234
- readonly [
1235
- 10,
1236
- 13
1237
- ],
1238
- readonly [
1239
- 11,
1240
- 12
1241
- ],
1242
- readonly [
1243
- 11,
1244
- 14
1245
- ],
1246
- readonly [
1247
- 12,
1248
- 15
1249
- ],
1250
- readonly [
1251
- 13,
1252
- 14
1253
- ],
1254
- readonly [
1255
- 13,
1256
- 16
1257
- ],
1258
- readonly [
1259
- 14,
1260
- 15
1261
- ],
1262
- readonly [
1263
- 14,
1264
- 17
1265
- ],
1266
- readonly [
1267
- 15,
1268
- 18
1269
- ],
1270
- readonly [
1271
- 16,
1272
- 17
1273
- ],
1274
- readonly [
1275
- 16,
1276
- 19
1277
- ],
1278
- readonly [
1279
- 17,
1280
- 18
1281
- ],
1282
- readonly [
1283
- 17,
1284
- 20
1285
- ],
1286
- readonly [
1287
- 18,
1288
- 21
1289
- ],
1290
- readonly [
1291
- 19,
1292
- 20
1293
- ],
1294
- readonly [
1295
- 19,
1296
- 22
1297
- ],
1298
- readonly [
1299
- 20,
1300
- 21
1301
- ],
1302
- readonly [
1303
- 20,
1304
- 23
1305
- ],
1306
- readonly [
1307
- 21,
1308
- 24
1309
- ],
1310
- readonly [
1311
- 22,
1312
- 23
1313
- ],
1314
- readonly [
1315
- 22,
1316
- 25
1317
- ],
1318
- readonly [
1319
- 23,
1320
- 24
1321
- ],
1322
- readonly [
1323
- 23,
1324
- 26
1325
- ],
1326
- readonly [
1327
- 24,
1328
- 27
1329
- ],
1330
- readonly [
1331
- 25,
1332
- 26
1333
- ],
1334
- readonly [
1335
- 25,
1336
- 28
1337
- ],
1338
- readonly [
1339
- 26,
1340
- 27
1341
- ],
1342
- readonly [
1343
- 26,
1344
- 29
1345
- ],
1346
- readonly [
1347
- 27,
1348
- 30
1349
- ],
1350
- readonly [
1351
- 28,
1352
- 29
1353
- ],
1354
- readonly [
1355
- 28,
1356
- 31
1357
- ],
1358
- readonly [
1359
- 29,
1360
- 30
1361
- ],
1362
- readonly [
1363
- 29,
1364
- 32
1365
- ],
1366
- readonly [
1367
- 30,
1368
- 33
1369
- ],
1370
- readonly [
1371
- 31,
1372
- 32
1373
- ],
1374
- readonly [
1375
- 31,
1376
- 34
1377
- ],
1378
- readonly [
1379
- 32,
1380
- 33
1381
- ],
1382
- readonly [
1383
- 32,
1384
- 35
1385
- ],
1386
- readonly [
1387
- 33,
1388
- 36
1389
- ],
1390
- readonly [
1391
- 34,
1392
- 35
1393
- ],
1394
- readonly [
1395
- 35,
1396
- 36
1397
- ]
1398
- ];
983
+ values: EuropeanSplit;
984
+ }
985
+ export declare const VALID_AMERICAN_SPLITS: readonly [readonly [0, 1], readonly [0, 37], readonly [3, 37], readonly [1, 2], readonly [1, 4], readonly [2, 3], readonly [2, 5], readonly [3, 6], readonly [4, 5], readonly [4, 7], readonly [5, 6], readonly [5, 8], readonly [6, 9], readonly [7, 8], readonly [7, 10], readonly [8, 9], readonly [8, 11], readonly [9, 12], readonly [10, 11], readonly [10, 13], readonly [11, 12], readonly [11, 14], readonly [12, 15], readonly [13, 14], readonly [13, 16], readonly [14, 15], readonly [14, 17], readonly [15, 18], readonly [16, 17], readonly [16, 19], readonly [17, 18], readonly [17, 20], readonly [18, 21], readonly [19, 20], readonly [19, 22], readonly [20, 21], readonly [20, 23], readonly [21, 24], readonly [22, 23], readonly [22, 25], readonly [23, 24], readonly [23, 26], readonly [24, 27], readonly [25, 26], readonly [25, 28], readonly [26, 27], readonly [26, 29], readonly [27, 30], readonly [28, 29], readonly [28, 31], readonly [29, 30], readonly [29, 32], readonly [30, 33], readonly [31, 32], readonly [31, 34], readonly [32, 33], readonly [32, 35], readonly [33, 36], readonly [34, 35], readonly [35, 36]];
1399
986
  export type AmericanSplit = (typeof VALID_AMERICAN_SPLITS)[number];
1400
987
  export interface AmericanSplitBet extends BaseBet {
1401
- values: AmericanSplit;
1402
- }
1403
- export declare const VALID_EUROPEAN_STREETS: readonly [
1404
- readonly [
1405
- 0,
1406
- 1,
1407
- 2
1408
- ],
1409
- readonly [
1410
- 0,
1411
- 2,
1412
- 3
1413
- ],
1414
- readonly [
1415
- 1,
1416
- 2,
1417
- 3
1418
- ],
1419
- readonly [
1420
- 4,
1421
- 5,
1422
- 6
1423
- ],
1424
- readonly [
1425
- 7,
1426
- 8,
1427
- 9
1428
- ],
1429
- readonly [
1430
- 10,
1431
- 11,
1432
- 12
1433
- ],
1434
- readonly [
1435
- 13,
1436
- 14,
1437
- 15
1438
- ],
1439
- readonly [
1440
- 16,
1441
- 17,
1442
- 18
1443
- ],
1444
- readonly [
1445
- 19,
1446
- 20,
1447
- 21
1448
- ],
1449
- readonly [
1450
- 22,
1451
- 23,
1452
- 24
1453
- ],
1454
- readonly [
1455
- 25,
1456
- 26,
1457
- 27
1458
- ],
1459
- readonly [
1460
- 28,
1461
- 29,
1462
- 30
1463
- ],
1464
- readonly [
1465
- 31,
1466
- 32,
1467
- 33
1468
- ],
1469
- readonly [
1470
- 34,
1471
- 35,
1472
- 36
1473
- ]
1474
- ];
988
+ values: AmericanSplit;
989
+ }
990
+ export declare const VALID_EUROPEAN_STREETS: readonly [readonly [0, 1, 2], readonly [0, 2, 3], readonly [1, 2, 3], readonly [4, 5, 6], readonly [7, 8, 9], readonly [10, 11, 12], readonly [13, 14, 15], readonly [16, 17, 18], readonly [19, 20, 21], readonly [22, 23, 24], readonly [25, 26, 27], readonly [28, 29, 30], readonly [31, 32, 33], readonly [34, 35, 36]];
1475
991
  export type EuropeanStreet = (typeof VALID_EUROPEAN_STREETS)[number];
1476
992
  export interface BaseBet {
1477
- amount: Big$1.Big;
993
+ amount: Big;
1478
994
  }
1479
995
  export interface EuropeanStreetBet extends BaseBet {
1480
- values: EuropeanStreet;
1481
- }
1482
- export declare const VALID_AMERICAN_STREETS: readonly [
1483
- readonly [
1484
- 0,
1485
- 1,
1486
- 2
1487
- ],
1488
- readonly [
1489
- 0,
1490
- 2,
1491
- 37
1492
- ],
1493
- readonly [
1494
- 1,
1495
- 2,
1496
- 3
1497
- ],
1498
- readonly [
1499
- 2,
1500
- 3,
1501
- 37
1502
- ],
1503
- readonly [
1504
- 4,
1505
- 5,
1506
- 6
1507
- ],
1508
- readonly [
1509
- 7,
1510
- 8,
1511
- 9
1512
- ],
1513
- readonly [
1514
- 10,
1515
- 11,
1516
- 12
1517
- ],
1518
- readonly [
1519
- 13,
1520
- 14,
1521
- 15
1522
- ],
1523
- readonly [
1524
- 16,
1525
- 17,
1526
- 18
1527
- ],
1528
- readonly [
1529
- 19,
1530
- 20,
1531
- 21
1532
- ],
1533
- readonly [
1534
- 22,
1535
- 23,
1536
- 24
1537
- ],
1538
- readonly [
1539
- 25,
1540
- 26,
1541
- 27
1542
- ],
1543
- readonly [
1544
- 28,
1545
- 29,
1546
- 30
1547
- ],
1548
- readonly [
1549
- 31,
1550
- 32,
1551
- 33
1552
- ],
1553
- readonly [
1554
- 34,
1555
- 35,
1556
- 36
1557
- ]
1558
- ];
996
+ values: EuropeanStreet;
997
+ }
998
+ export declare const VALID_AMERICAN_STREETS: readonly [readonly [0, 1, 2], readonly [0, 2, 37], readonly [1, 2, 3], readonly [2, 3, 37], readonly [4, 5, 6], readonly [7, 8, 9], readonly [10, 11, 12], readonly [13, 14, 15], readonly [16, 17, 18], readonly [19, 20, 21], readonly [22, 23, 24], readonly [25, 26, 27], readonly [28, 29, 30], readonly [31, 32, 33], readonly [34, 35, 36]];
1559
999
  export type AmericanStreet = (typeof VALID_AMERICAN_STREETS)[number];
1560
1000
  export interface AmericanStreetBet extends BaseBet {
1561
- values: AmericanStreet;
1562
- }
1563
- export declare const VALID_EUROPEAN_CORNERS: readonly [
1564
- readonly [
1565
- 0,
1566
- 1,
1567
- 2,
1568
- 3
1569
- ],
1570
- readonly [
1571
- 1,
1572
- 2,
1573
- 4,
1574
- 5
1575
- ],
1576
- readonly [
1577
- 2,
1578
- 3,
1579
- 5,
1580
- 6
1581
- ],
1582
- readonly [
1583
- 4,
1584
- 5,
1585
- 7,
1586
- 8
1587
- ],
1588
- readonly [
1589
- 5,
1590
- 6,
1591
- 8,
1592
- 9
1593
- ],
1594
- readonly [
1595
- 7,
1596
- 8,
1597
- 10,
1598
- 11
1599
- ],
1600
- readonly [
1601
- 8,
1602
- 9,
1603
- 11,
1604
- 12
1605
- ],
1606
- readonly [
1607
- 10,
1608
- 11,
1609
- 13,
1610
- 14
1611
- ],
1612
- readonly [
1613
- 11,
1614
- 12,
1615
- 14,
1616
- 15
1617
- ],
1618
- readonly [
1619
- 13,
1620
- 14,
1621
- 16,
1622
- 17
1623
- ],
1624
- readonly [
1625
- 14,
1626
- 15,
1627
- 17,
1628
- 18
1629
- ],
1630
- readonly [
1631
- 16,
1632
- 17,
1633
- 19,
1634
- 20
1635
- ],
1636
- readonly [
1637
- 17,
1638
- 18,
1639
- 20,
1640
- 21
1641
- ],
1642
- readonly [
1643
- 19,
1644
- 20,
1645
- 22,
1646
- 23
1647
- ],
1648
- readonly [
1649
- 20,
1650
- 21,
1651
- 23,
1652
- 24
1653
- ],
1654
- readonly [
1655
- 22,
1656
- 23,
1657
- 25,
1658
- 26
1659
- ],
1660
- readonly [
1661
- 23,
1662
- 24,
1663
- 26,
1664
- 27
1665
- ],
1666
- readonly [
1667
- 25,
1668
- 26,
1669
- 28,
1670
- 29
1671
- ],
1672
- readonly [
1673
- 26,
1674
- 27,
1675
- 29,
1676
- 30
1677
- ],
1678
- readonly [
1679
- 28,
1680
- 29,
1681
- 31,
1682
- 32
1683
- ],
1684
- readonly [
1685
- 29,
1686
- 30,
1687
- 32,
1688
- 33
1689
- ],
1690
- readonly [
1691
- 31,
1692
- 32,
1693
- 34,
1694
- 35
1695
- ],
1696
- readonly [
1697
- 32,
1698
- 33,
1699
- 35,
1700
- 36
1701
- ]
1702
- ];
1001
+ values: AmericanStreet;
1002
+ }
1003
+ export declare const VALID_EUROPEAN_CORNERS: readonly [readonly [0, 1, 2, 3], readonly [1, 2, 4, 5], readonly [2, 3, 5, 6], readonly [4, 5, 7, 8], readonly [5, 6, 8, 9], readonly [7, 8, 10, 11], readonly [8, 9, 11, 12], readonly [10, 11, 13, 14], readonly [11, 12, 14, 15], readonly [13, 14, 16, 17], readonly [14, 15, 17, 18], readonly [16, 17, 19, 20], readonly [17, 18, 20, 21], readonly [19, 20, 22, 23], readonly [20, 21, 23, 24], readonly [22, 23, 25, 26], readonly [23, 24, 26, 27], readonly [25, 26, 28, 29], readonly [26, 27, 29, 30], readonly [28, 29, 31, 32], readonly [29, 30, 32, 33], readonly [31, 32, 34, 35], readonly [32, 33, 35, 36]];
1703
1004
  export type EuropeanCorner = (typeof VALID_EUROPEAN_CORNERS)[number];
1704
1005
  export interface EuropeanCornerBet extends BaseBet {
1705
- values: EuropeanCorner;
1706
- }
1707
- export declare const VALID_AMERICAN_CORNERS: readonly [
1708
- readonly [
1709
- 1,
1710
- 2,
1711
- 4,
1712
- 5
1713
- ],
1714
- readonly [
1715
- 2,
1716
- 3,
1717
- 5,
1718
- 6
1719
- ],
1720
- readonly [
1721
- 4,
1722
- 5,
1723
- 7,
1724
- 8
1725
- ],
1726
- readonly [
1727
- 5,
1728
- 6,
1729
- 8,
1730
- 9
1731
- ],
1732
- readonly [
1733
- 7,
1734
- 8,
1735
- 10,
1736
- 11
1737
- ],
1738
- readonly [
1739
- 8,
1740
- 9,
1741
- 11,
1742
- 12
1743
- ],
1744
- readonly [
1745
- 10,
1746
- 11,
1747
- 13,
1748
- 14
1749
- ],
1750
- readonly [
1751
- 11,
1752
- 12,
1753
- 14,
1754
- 15
1755
- ],
1756
- readonly [
1757
- 13,
1758
- 14,
1759
- 16,
1760
- 17
1761
- ],
1762
- readonly [
1763
- 14,
1764
- 15,
1765
- 17,
1766
- 18
1767
- ],
1768
- readonly [
1769
- 16,
1770
- 17,
1771
- 19,
1772
- 20
1773
- ],
1774
- readonly [
1775
- 17,
1776
- 18,
1777
- 20,
1778
- 21
1779
- ],
1780
- readonly [
1781
- 19,
1782
- 20,
1783
- 22,
1784
- 23
1785
- ],
1786
- readonly [
1787
- 20,
1788
- 21,
1789
- 23,
1790
- 24
1791
- ],
1792
- readonly [
1793
- 22,
1794
- 23,
1795
- 25,
1796
- 26
1797
- ],
1798
- readonly [
1799
- 23,
1800
- 24,
1801
- 26,
1802
- 27
1803
- ],
1804
- readonly [
1805
- 25,
1806
- 26,
1807
- 28,
1808
- 29
1809
- ],
1810
- readonly [
1811
- 26,
1812
- 27,
1813
- 29,
1814
- 30
1815
- ],
1816
- readonly [
1817
- 28,
1818
- 29,
1819
- 31,
1820
- 32
1821
- ],
1822
- readonly [
1823
- 29,
1824
- 30,
1825
- 32,
1826
- 33
1827
- ],
1828
- readonly [
1829
- 31,
1830
- 32,
1831
- 34,
1832
- 35
1833
- ],
1834
- readonly [
1835
- 32,
1836
- 33,
1837
- 35,
1838
- 36
1839
- ]
1840
- ];
1006
+ values: EuropeanCorner;
1007
+ }
1008
+ export declare const VALID_AMERICAN_CORNERS: readonly [readonly [1, 2, 4, 5], readonly [2, 3, 5, 6], readonly [4, 5, 7, 8], readonly [5, 6, 8, 9], readonly [7, 8, 10, 11], readonly [8, 9, 11, 12], readonly [10, 11, 13, 14], readonly [11, 12, 14, 15], readonly [13, 14, 16, 17], readonly [14, 15, 17, 18], readonly [16, 17, 19, 20], readonly [17, 18, 20, 21], readonly [19, 20, 22, 23], readonly [20, 21, 23, 24], readonly [22, 23, 25, 26], readonly [23, 24, 26, 27], readonly [25, 26, 28, 29], readonly [26, 27, 29, 30], readonly [28, 29, 31, 32], readonly [29, 30, 32, 33], readonly [31, 32, 34, 35], readonly [32, 33, 35, 36]];
1841
1009
  export type AmericanCorner = (typeof VALID_AMERICAN_CORNERS)[number];
1842
1010
  export interface AmericanCornerBet extends BaseBet {
1843
- values: AmericanCorner;
1844
- }
1845
- export declare const AMERICAN_BASKET: readonly [
1846
- 0,
1847
- 1,
1848
- 2,
1849
- 3,
1850
- 37
1851
- ];
1852
- export interface AmericanBasketBet extends BaseBet {
1853
- }
1854
- export declare const VALID_EUROPEAN_DOUBLE_STREETS: readonly [
1855
- readonly [
1856
- 1,
1857
- 2,
1858
- 3,
1859
- 4,
1860
- 5,
1861
- 6
1862
- ],
1863
- readonly [
1864
- 4,
1865
- 5,
1866
- 6,
1867
- 7,
1868
- 8,
1869
- 9
1870
- ],
1871
- readonly [
1872
- 7,
1873
- 8,
1874
- 9,
1875
- 10,
1876
- 11,
1877
- 12
1878
- ],
1879
- readonly [
1880
- 10,
1881
- 11,
1882
- 12,
1883
- 13,
1884
- 14,
1885
- 15
1886
- ],
1887
- readonly [
1888
- 13,
1889
- 14,
1890
- 15,
1891
- 16,
1892
- 17,
1893
- 18
1894
- ],
1895
- readonly [
1896
- 16,
1897
- 17,
1898
- 18,
1899
- 19,
1900
- 20,
1901
- 21
1902
- ],
1903
- readonly [
1904
- 19,
1905
- 20,
1906
- 21,
1907
- 22,
1908
- 23,
1909
- 24
1910
- ],
1911
- readonly [
1912
- 22,
1913
- 23,
1914
- 24,
1915
- 25,
1916
- 26,
1917
- 27
1918
- ],
1919
- readonly [
1920
- 25,
1921
- 26,
1922
- 27,
1923
- 28,
1924
- 29,
1925
- 30
1926
- ],
1927
- readonly [
1928
- 28,
1929
- 29,
1930
- 30,
1931
- 31,
1932
- 32,
1933
- 33
1934
- ],
1935
- readonly [
1936
- 31,
1937
- 32,
1938
- 33,
1939
- 34,
1940
- 35,
1941
- 36
1942
- ]
1943
- ];
1011
+ values: AmericanCorner;
1012
+ }
1013
+ export declare const AMERICAN_BASKET: readonly [0, 1, 2, 3, 37];
1014
+ export interface AmericanBasketBet extends BaseBet {}
1015
+ export declare const VALID_EUROPEAN_DOUBLE_STREETS: readonly [readonly [1, 2, 3, 4, 5, 6], readonly [4, 5, 6, 7, 8, 9], readonly [7, 8, 9, 10, 11, 12], readonly [10, 11, 12, 13, 14, 15], readonly [13, 14, 15, 16, 17, 18], readonly [16, 17, 18, 19, 20, 21], readonly [19, 20, 21, 22, 23, 24], readonly [22, 23, 24, 25, 26, 27], readonly [25, 26, 27, 28, 29, 30], readonly [28, 29, 30, 31, 32, 33], readonly [31, 32, 33, 34, 35, 36]];
1944
1016
  export type EuropeanDoubleStreet = (typeof VALID_EUROPEAN_DOUBLE_STREETS)[number];
1945
1017
  export interface EuropeanDoubleStreetBet extends BaseBet {
1946
- values: EuropeanDoubleStreet;
1947
- }
1948
- export declare const VALID_AMERICAN_DOUBLE_STREETS: readonly [
1949
- readonly [
1950
- 1,
1951
- 2,
1952
- 3,
1953
- 4,
1954
- 5,
1955
- 6
1956
- ],
1957
- readonly [
1958
- 4,
1959
- 5,
1960
- 6,
1961
- 7,
1962
- 8,
1963
- 9
1964
- ],
1965
- readonly [
1966
- 7,
1967
- 8,
1968
- 9,
1969
- 10,
1970
- 11,
1971
- 12
1972
- ],
1973
- readonly [
1974
- 10,
1975
- 11,
1976
- 12,
1977
- 13,
1978
- 14,
1979
- 15
1980
- ],
1981
- readonly [
1982
- 13,
1983
- 14,
1984
- 15,
1985
- 16,
1986
- 17,
1987
- 18
1988
- ],
1989
- readonly [
1990
- 16,
1991
- 17,
1992
- 18,
1993
- 19,
1994
- 20,
1995
- 21
1996
- ],
1997
- readonly [
1998
- 19,
1999
- 20,
2000
- 21,
2001
- 22,
2002
- 23,
2003
- 24
2004
- ],
2005
- readonly [
2006
- 22,
2007
- 23,
2008
- 24,
2009
- 25,
2010
- 26,
2011
- 27
2012
- ],
2013
- readonly [
2014
- 25,
2015
- 26,
2016
- 27,
2017
- 28,
2018
- 29,
2019
- 30
2020
- ],
2021
- readonly [
2022
- 28,
2023
- 29,
2024
- 30,
2025
- 31,
2026
- 32,
2027
- 33
2028
- ],
2029
- readonly [
2030
- 31,
2031
- 32,
2032
- 33,
2033
- 34,
2034
- 35,
2035
- 36
2036
- ]
2037
- ];
1018
+ values: EuropeanDoubleStreet;
1019
+ }
1020
+ export declare const VALID_AMERICAN_DOUBLE_STREETS: readonly [readonly [1, 2, 3, 4, 5, 6], readonly [4, 5, 6, 7, 8, 9], readonly [7, 8, 9, 10, 11, 12], readonly [10, 11, 12, 13, 14, 15], readonly [13, 14, 15, 16, 17, 18], readonly [16, 17, 18, 19, 20, 21], readonly [19, 20, 21, 22, 23, 24], readonly [22, 23, 24, 25, 26, 27], readonly [25, 26, 27, 28, 29, 30], readonly [28, 29, 30, 31, 32, 33], readonly [31, 32, 33, 34, 35, 36]];
2038
1021
  export type AmericanDoubleStreet = (typeof VALID_AMERICAN_DOUBLE_STREETS)[number];
2039
1022
  export interface AmericanDoubleStreetBet extends BaseBet {
2040
- values: AmericanDoubleStreet;
1023
+ values: AmericanDoubleStreet;
2041
1024
  }
2042
1025
  export declare enum Parity {
2043
- EVEN = "EVEN",
2044
- ODD = "ODD"
1026
+ EVEN = "EVEN",
1027
+ ODD = "ODD"
2045
1028
  }
2046
1029
  export interface ParityBet extends BaseBet {
2047
- parity: Parity;
1030
+ parity: Parity;
2048
1031
  }
2049
1032
  export declare enum Color {
2050
- RED = "RED",
2051
- BLACK = "BLACK"
1033
+ RED = "RED",
1034
+ BLACK = "BLACK"
2052
1035
  }
2053
1036
  export interface ColorBet extends BaseBet {
2054
- color: Color;
1037
+ color: Color;
2055
1038
  }
2056
1039
  export declare enum Half {
2057
- LOW = "LOW",
2058
- HIGH = "HIGH"
1040
+ LOW = "LOW",
1041
+ HIGH = "HIGH"
2059
1042
  }
2060
1043
  export interface HalfBet extends BaseBet {
2061
- half: Half;
1044
+ half: Half;
2062
1045
  }
2063
1046
  export declare enum Column {
2064
- TOP = "TOP",
2065
- MIDDLE = "MIDDLE",
2066
- BOTTOM = "BOTTOM"
1047
+ TOP = "TOP",
1048
+ MIDDLE = "MIDDLE",
1049
+ BOTTOM = "BOTTOM"
2067
1050
  }
2068
1051
  export interface ColumnBet extends BaseBet {
2069
- column: Column;
1052
+ column: Column;
2070
1053
  }
2071
1054
  export declare enum Dozen {
2072
- FIRST = "FIRST",
2073
- SECOND = "SECOND",
2074
- THIRD = "THIRD"
1055
+ FIRST = "FIRST",
1056
+ SECOND = "SECOND",
1057
+ THIRD = "THIRD"
2075
1058
  }
2076
1059
  export interface DozenBet extends BaseBet {
2077
- dozen: Dozen;
1060
+ dozen: Dozen;
2078
1061
  }
2079
1062
  export interface EuropeanRouletteGameInputs {
2080
- straightBets: EuropeanStraightBet[];
2081
- splitBets: EuropeanSplitBet[];
2082
- streetBets: EuropeanStreetBet[];
2083
- cornerBets: EuropeanCornerBet[];
2084
- doubleStreetBets: EuropeanDoubleStreetBet[];
2085
- parityBets: ParityBet[];
2086
- colorBets: ColorBet[];
2087
- halfBets: HalfBet[];
2088
- columnBets: ColumnBet[];
2089
- dozenBets: DozenBet[];
1063
+ straightBets: EuropeanStraightBet[];
1064
+ splitBets: EuropeanSplitBet[];
1065
+ streetBets: EuropeanStreetBet[];
1066
+ cornerBets: EuropeanCornerBet[];
1067
+ doubleStreetBets: EuropeanDoubleStreetBet[];
1068
+ parityBets: ParityBet[];
1069
+ colorBets: ColorBet[];
1070
+ halfBets: HalfBet[];
1071
+ columnBets: ColumnBet[];
1072
+ dozenBets: DozenBet[];
2090
1073
  }
2091
1074
  export interface AmericanRouletteGameInputs {
2092
- straightBets: AmericanStraightBet[];
2093
- splitBets: AmericanSplitBet[];
2094
- streetBets: AmericanStreetBet[];
2095
- cornerBets: AmericanCornerBet[];
2096
- basketBets: AmericanBasketBet[];
2097
- doubleStreetBets: AmericanDoubleStreetBet[];
2098
- parityBets: ParityBet[];
2099
- colorBets: ColorBet[];
2100
- halfBets: HalfBet[];
2101
- columnBets: ColumnBet[];
2102
- dozenBets: DozenBet[];
1075
+ straightBets: AmericanStraightBet[];
1076
+ splitBets: AmericanSplitBet[];
1077
+ streetBets: AmericanStreetBet[];
1078
+ cornerBets: AmericanCornerBet[];
1079
+ basketBets: AmericanBasketBet[];
1080
+ doubleStreetBets: AmericanDoubleStreetBet[];
1081
+ parityBets: ParityBet[];
1082
+ colorBets: ColorBet[];
1083
+ halfBets: HalfBet[];
1084
+ columnBets: ColumnBet[];
1085
+ dozenBets: DozenBet[];
2103
1086
  }
2104
1087
  export declare enum RouletteType {
2105
- AMERICAN = "AMERICAN",
2106
- EUROPEAN = "EUROPEAN"
1088
+ AMERICAN = "AMERICAN",
1089
+ EUROPEAN = "EUROPEAN"
2107
1090
  }
2108
1091
  export declare const EUROPEAN_HOUSE_EDGE = 2.7;
2109
1092
  export declare const AMERICAN_HOUSE_EDGE = 5.3;
2110
1093
  export type RouletteGameInputs = {
2111
- type: RouletteType.EUROPEAN;
2112
- inputs: EuropeanRouletteGameInputs;
1094
+ type: RouletteType.EUROPEAN;
1095
+ inputs: EuropeanRouletteGameInputs;
2113
1096
  } | {
2114
- type: RouletteType.AMERICAN;
2115
- inputs: AmericanRouletteGameInputs;
1097
+ type: RouletteType.AMERICAN;
1098
+ inputs: AmericanRouletteGameInputs;
2116
1099
  };
2117
1100
  export interface EuropeanRouletteBetOutcomes {
2118
- winningBets: EuropeanRouletteGameInputs;
2119
- losingBets: EuropeanRouletteGameInputs;
1101
+ winningBets: EuropeanRouletteGameInputs;
1102
+ losingBets: EuropeanRouletteGameInputs;
2120
1103
  }
2121
1104
  export interface AmericanRouletteBetOutcomes {
2122
- winningBets: AmericanRouletteGameInputs;
2123
- losingBets: AmericanRouletteGameInputs;
1105
+ winningBets: AmericanRouletteGameInputs;
1106
+ losingBets: AmericanRouletteGameInputs;
2124
1107
  }
2125
1108
  export interface EuropeanRouletteGameOutputs {
2126
- betOutcomes: EuropeanRouletteBetOutcomes;
2127
- result: number[];
1109
+ betOutcomes: EuropeanRouletteBetOutcomes;
1110
+ result: number[];
2128
1111
  }
2129
1112
  export interface AmericanRouletteGameOutputs {
2130
- betOutcomes: AmericanRouletteBetOutcomes;
2131
- result: number[];
1113
+ betOutcomes: AmericanRouletteBetOutcomes;
1114
+ result: number[];
2132
1115
  }
2133
1116
  export type RouletteGameOutputs = {
2134
- type: "european";
2135
- betOutcomes: EuropeanRouletteBetOutcomes;
2136
- result: number[];
1117
+ type: 'european';
1118
+ betOutcomes: EuropeanRouletteBetOutcomes;
1119
+ result: number[];
2137
1120
  } | {
2138
- type: "american";
2139
- betOutcomes: AmericanRouletteBetOutcomes;
2140
- result: number[];
1121
+ type: 'american';
1122
+ betOutcomes: AmericanRouletteBetOutcomes;
1123
+ result: number[];
2141
1124
  };
1125
+ //#endregion
1126
+ //#region src/games/roulette/roulette.d.ts
2142
1127
  export declare const PAYOUT_MULTIPLIERS: Record<keyof EuropeanRouletteGameInputs | keyof AmericanRouletteGameInputs, number>;
2143
1128
  export declare const TOP_COLUMN: number[];
2144
1129
  export declare const MIDDLE_COLUMN: number[];
2145
1130
  export declare const BOTTOM_COLUMN: number[];
2146
1131
  export declare const RED_NUMBERS: number[];
2147
1132
  export declare const BLACK_NUMBERS: number[];
2148
- export type BetPredicate = (bet: BaseBet, result: number) => boolean;
1133
+ type BetPredicate = (bet: BaseBet, result: number) => boolean;
2149
1134
  declare abstract class BaseRoulette<TInputs extends {
2150
- straightBets: BaseBet[];
2151
- splitBets: BaseBet[];
2152
- streetBets: BaseBet[];
2153
- cornerBets: BaseBet[];
2154
- doubleStreetBets: BaseBet[];
2155
- parityBets: BaseBet[];
2156
- colorBets: BaseBet[];
2157
- halfBets: BaseBet[];
2158
- columnBets: BaseBet[];
2159
- dozenBets: BaseBet[];
1135
+ straightBets: BaseBet[];
1136
+ splitBets: BaseBet[];
1137
+ streetBets: BaseBet[];
1138
+ cornerBets: BaseBet[];
1139
+ doubleStreetBets: BaseBet[];
1140
+ parityBets: BaseBet[];
1141
+ colorBets: BaseBet[];
1142
+ halfBets: BaseBet[];
1143
+ columnBets: BaseBet[];
1144
+ dozenBets: BaseBet[];
2160
1145
  }, TOutputs extends {
2161
- betOutcomes: {
2162
- winningBets: TInputs;
2163
- losingBets: TInputs;
2164
- };
2165
- result: number[];
1146
+ betOutcomes: {
1147
+ winningBets: TInputs;
1148
+ losingBets: TInputs;
1149
+ };
1150
+ result: number[];
2166
1151
  }> extends SingleActionGame<TInputs, TOutputs> {
2167
- protected abstract readonly maxNumber: number;
2168
- constructor();
2169
- determineGameResult({ generator, gameInputs }: GetGameResultRequest<TInputs>): GameResult<TOutputs>;
2170
- getBetAmount(gameInputs: TInputs): Big$1.Big;
2171
- getPayoutDetails(gameInputs: TInputs, gameResult: number): {
2172
- payoutMultiplier: Big$1.Big;
2173
- payout: Payout;
2174
- };
2175
- protected determineBetOutcomes(inputs: TInputs, result: number): {
2176
- winningBets: TInputs;
2177
- losingBets: TInputs;
2178
- };
2179
- protected calculateTotalAmount(bets: {
2180
- amount: Big$1.Big;
2181
- }[]): Big$1.Big;
2182
- protected isWinningStraightBet(bet: BaseBet, gameResult: number): boolean;
2183
- protected isWinningSplitBet(bet: BaseBet, gameResult: number): boolean;
2184
- protected isWinningStreetBet(bet: BaseBet, gameResult: number): boolean;
2185
- protected isWinningCornerBet(bet: BaseBet, gameResult: number): boolean;
2186
- protected isWinningDoubleStreetBet(bet: BaseBet, gameResult: number): boolean;
2187
- protected isWinningColorBet(bet: BaseBet, gameResult: number): boolean;
2188
- protected isWinningHalfBet(bet: BaseBet, gameResult: number): boolean;
2189
- protected isWinningColumnBet(bet: BaseBet, gameResult: number): boolean;
2190
- protected isWinningDozenBet(bet: BaseBet, gameResult: number): boolean;
2191
- protected isWinningParityBet(bet: BaseBet, gameResult: number): boolean;
2192
- protected getBetTotals(inputs: TInputs): Record<keyof TInputs, Big$1.Big>;
2193
- protected calculateTotalBetAmount(totals: Record<keyof TInputs, Big$1.Big>): Big$1.Big;
2194
- protected abstract validateInputs(inputs: TInputs): void;
2195
- protected abstract readonly betPredicates: Record<keyof TInputs, BetPredicate>;
2196
- private partitionBets;
2197
- /**
2198
- * One leg per bet actually placed, in the order the inputs list them. A bet type the player
2199
- * left empty contributes nothing, so an untouched part of the table produces no leg at all.
2200
- */
2201
- protected calculatePayoutLegs(inputs: TInputs, result: number): PayoutLeg[];
1152
+ protected abstract readonly maxNumber: number;
1153
+ constructor();
1154
+ determineGameResult({ generator, gameInputs }: GetGameResultRequest<TInputs>): GameResult<TOutputs>;
1155
+ getBetAmount(gameInputs: TInputs): Big;
1156
+ getPayoutDetails(gameInputs: TInputs, gameResult: number): {
1157
+ payoutMultiplier: Big;
1158
+ payout: Payout;
1159
+ };
1160
+ protected determineBetOutcomes(inputs: TInputs, result: number): {
1161
+ winningBets: TInputs;
1162
+ losingBets: TInputs;
1163
+ };
1164
+ protected calculateTotalAmount(bets: {
1165
+ amount: Big;
1166
+ }[]): Big;
1167
+ protected isWinningStraightBet(bet: BaseBet, gameResult: number): boolean;
1168
+ protected isWinningSplitBet(bet: BaseBet, gameResult: number): boolean;
1169
+ protected isWinningStreetBet(bet: BaseBet, gameResult: number): boolean;
1170
+ protected isWinningCornerBet(bet: BaseBet, gameResult: number): boolean;
1171
+ protected isWinningDoubleStreetBet(bet: BaseBet, gameResult: number): boolean;
1172
+ protected isWinningColorBet(bet: BaseBet, gameResult: number): boolean;
1173
+ protected isWinningHalfBet(bet: BaseBet, gameResult: number): boolean;
1174
+ protected isWinningColumnBet(bet: BaseBet, gameResult: number): boolean;
1175
+ protected isWinningDozenBet(bet: BaseBet, gameResult: number): boolean;
1176
+ protected isWinningParityBet(bet: BaseBet, gameResult: number): boolean;
1177
+ protected getBetTotals(inputs: TInputs): Record<keyof TInputs, Big>;
1178
+ protected calculateTotalBetAmount(totals: Record<keyof TInputs, Big>): Big;
1179
+ protected abstract validateInputs(inputs: TInputs): void;
1180
+ protected abstract readonly betPredicates: Record<keyof TInputs, BetPredicate>;
1181
+ private partitionBets;
1182
+ /**
1183
+ * One leg per bet actually placed, in the order the inputs list them. A bet type the player
1184
+ * left empty contributes nothing, so an untouched part of the table produces no leg at all.
1185
+ */
1186
+ protected calculatePayoutLegs(inputs: TInputs, result: number): PayoutLeg[];
2202
1187
  }
2203
1188
  export declare class EuropeanRoulette extends BaseRoulette<EuropeanRouletteGameInputs, EuropeanRouletteGameOutputs> {
2204
- protected readonly maxNumber = 36;
2205
- protected readonly betPredicates: Record<keyof EuropeanRouletteGameInputs, BetPredicate>;
2206
- get supportedEdgeConfigurations(): [
2207
- number,
2208
- ...number[]
2209
- ];
2210
- protected validateInputs(inputs: EuropeanRouletteGameInputs): void;
1189
+ protected readonly maxNumber = 36;
1190
+ protected readonly betPredicates: Record<keyof EuropeanRouletteGameInputs, BetPredicate>;
1191
+ get supportedEdgeConfigurations(): [number, ...number[]];
1192
+ protected validateInputs(inputs: EuropeanRouletteGameInputs): void;
2211
1193
  }
2212
1194
  export declare class AmericanRoulette extends BaseRoulette<AmericanRouletteGameInputs, AmericanRouletteGameOutputs> {
2213
- protected readonly maxNumber = 37;
2214
- protected readonly betPredicates: Record<keyof AmericanRouletteGameInputs, BetPredicate>;
2215
- get supportedEdgeConfigurations(): [
2216
- number,
2217
- ...number[]
2218
- ];
2219
- protected validateInputs(inputs: AmericanRouletteGameInputs): void;
2220
- protected isWinningBasketBet(_bet: BaseBet, gameResult: number): boolean;
1195
+ protected readonly maxNumber = 37;
1196
+ protected readonly betPredicates: Record<keyof AmericanRouletteGameInputs, BetPredicate>;
1197
+ get supportedEdgeConfigurations(): [number, ...number[]];
1198
+ protected validateInputs(inputs: AmericanRouletteGameInputs): void;
1199
+ protected isWinningBasketBet(_bet: BaseBet, gameResult: number): boolean;
2221
1200
  }
2222
1201
  export declare class Roulette extends SingleActionGame<RouletteGameInputs, RouletteGameOutputs> {
2223
- private readonly europeanGame;
2224
- private readonly americanGame;
2225
- constructor();
2226
- get supportedEdgeConfigurations(): [
2227
- number,
2228
- ...number[]
2229
- ];
2230
- getBetAmount(gameInputs: RouletteGameInputs): Big$1.Big;
2231
- protected determineGameResult(request: GetGameResultRequest<RouletteGameInputs>): GameResult<RouletteGameOutputs>;
2232
- }
2233
- export declare const calculateRouletteBetAmount: (gameInputs: RouletteGameInputs) => Big$1.Big;
1202
+ private readonly europeanGame;
1203
+ private readonly americanGame;
1204
+ constructor();
1205
+ get supportedEdgeConfigurations(): [number, ...number[]];
1206
+ getBetAmount(gameInputs: RouletteGameInputs): Big;
1207
+ protected determineGameResult(request: GetGameResultRequest<RouletteGameInputs>): GameResult<RouletteGameOutputs>;
1208
+ }
1209
+ export declare const calculateRouletteBetAmount: (gameInputs: RouletteGameInputs) => Big;
1210
+ //#endregion
1211
+ //#region src/games/roulette/roulette.validation.d.ts
2234
1212
  export declare const validateRouletteGameInputs: (gameInputs: RouletteGameInputs, edge: number) => void;
1213
+ //#endregion
1214
+ //#region src/games/wheel/wheel.constants.d.ts
2235
1215
  export declare enum WheelRiskLevel {
2236
- LOW_RISK = "LOW_RISK",
2237
- MEDIUM_RISK = "MEDIUM_RISK",
2238
- HIGH_RISK = "HIGH_RISK"
1216
+ LOW_RISK = "LOW_RISK",
1217
+ MEDIUM_RISK = "MEDIUM_RISK",
1218
+ HIGH_RISK = "HIGH_RISK"
2239
1219
  }
2240
1220
  export declare enum WheelSegments {
2241
- TEN = 10,
2242
- TWENTY = 20,
2243
- THIRTY = 30,
2244
- FORTY = 40,
2245
- FIFTY = 50
2246
- }
1221
+ TEN = 10,
1222
+ TWENTY = 20,
1223
+ THIRTY = 30,
1224
+ FORTY = 40,
1225
+ FIFTY = 50
1226
+ }
1227
+ //#endregion
1228
+ //#region src/games/wheel/wheel.d.ts
2247
1229
  export interface WheelGameInputs {
2248
- segments: WheelSegments;
2249
- riskLevel: WheelRiskLevel;
2250
- betAmount: Big$1.Big;
1230
+ segments: WheelSegments;
1231
+ riskLevel: WheelRiskLevel;
1232
+ betAmount: Big;
2251
1233
  }
2252
1234
  export declare class Wheel extends SingleActionGame<WheelGameInputs> {
2253
- constructor();
2254
- get supportedEdgeConfigurations(): [
2255
- number,
2256
- ...number[]
2257
- ];
2258
- getBetAmount(gameInputs: WheelGameInputs): Big$1.Big;
2259
- protected determineGameResult({ generator, gameInputs, edge }: GetGameResultRequest<WheelGameInputs>): GameResult;
1235
+ constructor();
1236
+ get supportedEdgeConfigurations(): [number, ...number[]];
1237
+ getBetAmount(gameInputs: WheelGameInputs): Big;
1238
+ protected determineGameResult({ generator, gameInputs, edge }: GetGameResultRequest<WheelGameInputs>): GameResult;
2260
1239
  }
1240
+ //#endregion
1241
+ //#region src/utils/big-max.d.ts
2261
1242
  export declare const bigMax: (a: Big$1, b: Big$1) => Big$1;
1243
+ //#endregion
1244
+ //#region src/utils/big-min.d.ts
2262
1245
  export declare const bigMin: (a: Big$1, b: Big$1) => Big$1;
1246
+ //#endregion
1247
+ //#region src/utils/multiplier-calculator.d.ts
2263
1248
  export declare abstract class MultiplierCalculator {
2264
- static withMultiplier(multiplier: Big$1, edge: number): Big$1;
2265
- static withWinChance(edge: number, winChance: Big$1): Big$1;
1249
+ static withMultiplier(multiplier: Big$1, edge: number): Big$1;
1250
+ static withWinChance(edge: number, winChance: Big$1): Big$1;
2266
1251
  }
1252
+ //#endregion
1253
+ //#region src/utils/ncr.d.ts
2267
1254
  export declare const nCr: (n: number, r: number) => number;
2268
-
2269
- export {};
1255
+ //#endregion