@betorigami/games 0.7.4 → 0.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/dist/index.d.ts +740 -6
  2. package/dist/index.mjs +3579 -6434
  3. package/package.json +11 -7
  4. package/dist/components/dice/DiceContent/DiceContent.d.ts +0 -14
  5. package/dist/components/dice/DiceContent/DiceContent.styles.d.ts +0 -1
  6. package/dist/components/dice/DiceContentBottom/DiceContentBottom.d.ts +0 -15
  7. package/dist/components/dice/DiceContentBottom/DiceContentBottom.styles.d.ts +0 -1
  8. package/dist/components/dice/DiceControls/DiceAuto.d.ts +0 -9
  9. package/dist/components/dice/DiceControls/DiceControls.styles.d.ts +0 -1
  10. package/dist/components/dice/DiceControls/DiceManual.d.ts +0 -10
  11. package/dist/components/dice/DiceGame.d.ts +0 -45
  12. package/dist/components/dice/DiceSlider/DiceSlider.d.ts +0 -16
  13. package/dist/components/dice/DiceSlider/DiceSlider.styles.d.ts +0 -1
  14. package/dist/components/dice/dice.api.d.ts +0 -71
  15. package/dist/components/dice/dice.mock.api.d.ts +0 -13
  16. package/dist/components/keno/KenoContent/KenoContent.d.ts +0 -17
  17. package/dist/components/keno/KenoContent/KenoContent.styles.d.ts +0 -1
  18. package/dist/components/keno/KenoContent/KenoContentBottom.d.ts +0 -15
  19. package/dist/components/keno/KenoContent/KenoContentBottom.styles.d.ts +0 -1
  20. package/dist/components/keno/KenoControls/KenoAuto.d.ts +0 -11
  21. package/dist/components/keno/KenoControls/KenoControls.styles.d.ts +0 -1
  22. package/dist/components/keno/KenoControls/KenoManual.d.ts +0 -11
  23. package/dist/components/keno/KenoGame.d.ts +0 -31
  24. package/dist/components/keno/KenoGrid/KenoGrid.d.ts +0 -15
  25. package/dist/components/keno/KenoGrid/KenoGrid.styles.d.ts +0 -1
  26. package/dist/components/keno/KenoTile/KenoTile.d.ts +0 -16
  27. package/dist/components/keno/KenoTile/KenoTile.styles.d.ts +0 -1
  28. package/dist/components/keno/keno.api.d.ts +0 -67
  29. package/dist/components/keno/keno.mock.api.d.ts +0 -15
  30. package/dist/components/limbo/LimboContent/LimboContent.d.ts +0 -13
  31. package/dist/components/limbo/LimboContent/LimboContent.styles.d.ts +0 -1
  32. package/dist/components/limbo/LimboContentBottom/LimboContentBottom.d.ts +0 -14
  33. package/dist/components/limbo/LimboContentBottom/LimboContentBottom.styles.d.ts +0 -1
  34. package/dist/components/limbo/LimboControls/LimboAuto.d.ts +0 -9
  35. package/dist/components/limbo/LimboControls/LimboControls.styles.d.ts +0 -1
  36. package/dist/components/limbo/LimboControls/LimboManual.d.ts +0 -11
  37. package/dist/components/limbo/LimboGame.d.ts +0 -27
  38. package/dist/components/limbo/Multiplier/LimboMultiplier.d.ts +0 -17
  39. package/dist/components/limbo/Multiplier/LimboMultiplier.styles.d.ts +0 -1
  40. package/dist/components/limbo/limbo.api.d.ts +0 -62
  41. package/dist/components/limbo/limbo.mock.api.d.ts +0 -13
  42. package/dist/components/mines/Controls/MinesAuto.d.ts +0 -14
  43. package/dist/components/mines/Controls/MinesControls.styles.d.ts +0 -1
  44. package/dist/components/mines/Controls/MinesManual.d.ts +0 -10
  45. package/dist/components/mines/MinesContent/MinesContent.d.ts +0 -16
  46. package/dist/components/mines/MinesContent/MinesContent.styles.d.ts +0 -1
  47. package/dist/components/mines/MinesGame.d.ts +0 -36
  48. package/dist/components/mines/MinesGrid/MinesGrid.d.ts +0 -31
  49. package/dist/components/mines/MinesGrid/MinesGrid.styles.d.ts +0 -1
  50. package/dist/components/mines/MinesTile/MinesTile.d.ts +0 -23
  51. package/dist/components/mines/MinesTile/MinesTile.styles.d.ts +0 -1
  52. package/dist/components/mines/mines.api.d.ts +0 -122
  53. package/dist/components/mines/mines.constants.d.ts +0 -23
  54. package/dist/components/mines/mines.mock.api.d.ts +0 -50
  55. package/dist/components/shared/BetResultModal/BetResultModal.d.ts +0 -48
  56. package/dist/components/shared/BetResultModal/BetResultModal.styles.d.ts +0 -1
  57. package/dist/components/shared/Button/Button.d.ts +0 -25
  58. package/dist/components/shared/Button/Button.styles.d.ts +0 -1
  59. package/dist/components/shared/Button/ButtonGroup.d.ts +0 -6
  60. package/dist/components/shared/Button/ButtonGroup.styles.d.ts +0 -1
  61. package/dist/components/shared/Drawer/Drawer.d.ts +0 -122
  62. package/dist/components/shared/Drawer/Drawer.styles.d.ts +0 -2
  63. package/dist/components/shared/FairnessDetails/FairnessDetails.d.ts +0 -24
  64. package/dist/components/shared/FairnessDetails/FairnessDetails.styles.d.ts +0 -1
  65. package/dist/components/shared/Footer/Footer.d.ts +0 -48
  66. package/dist/components/shared/Footer/Footer.styles.d.ts +0 -1
  67. package/dist/components/shared/GameComponent.d.ts +0 -35
  68. package/dist/components/shared/GameLayout/GameLayout.d.ts +0 -36
  69. package/dist/components/shared/GameLayout/GameLayout.styles.d.ts +0 -1
  70. package/dist/components/shared/GameOutcomeDisplay/GameOutcomeDisplay.d.ts +0 -39
  71. package/dist/components/shared/GameOutcomeDisplay/GameOutcomeDisplay.styles.d.ts +0 -1
  72. package/dist/components/shared/GameProviderWrapper.d.ts +0 -26
  73. package/dist/components/shared/GameSidebar/GameSidebar.d.ts +0 -14
  74. package/dist/components/shared/GameSidebar/GameSidebar.styles.d.ts +0 -1
  75. package/dist/components/shared/GameWinPopup/GameWinPopup.d.ts +0 -14
  76. package/dist/components/shared/GameWinPopup/GameWinPopup.styles.d.ts +0 -1
  77. package/dist/components/shared/GenericAutobet/BetCountInput.d.ts +0 -11
  78. package/dist/components/shared/GenericAutobet/GenericAutobet.d.ts +0 -41
  79. package/dist/components/shared/GenericAutobet/GenericAutobet.styles.d.ts +0 -1
  80. package/dist/components/shared/GenericAutobet/context/autobet.context.d.ts +0 -11
  81. package/dist/components/shared/HistoryPills/HistoryPills.d.ts +0 -20
  82. package/dist/components/shared/HistoryPills/HistoryPills.styles.d.ts +0 -1
  83. package/dist/components/shared/Inputs/BetAmountInput/BetAmountInput.d.ts +0 -20
  84. package/dist/components/shared/Inputs/CurrencyInput/RawCurrencyInput.d.ts +0 -46
  85. package/dist/components/shared/Inputs/Input/Input.d.ts +0 -73
  86. package/dist/components/shared/Inputs/Input/Input.styles.d.ts +0 -1
  87. package/dist/components/shared/LottieIcon/LottieIcon.d.ts +0 -22
  88. package/dist/components/shared/Modal/Modal.d.ts +0 -91
  89. package/dist/components/shared/Modal/Modal.styles.d.ts +0 -2
  90. package/dist/components/shared/Modal/Portal.d.ts +0 -13
  91. package/dist/components/shared/Select/Select.d.ts +0 -48
  92. package/dist/components/shared/Select/Select.styles.d.ts +0 -1
  93. package/dist/components/shared/Statistics/Statistics.d.ts +0 -43
  94. package/dist/components/shared/Statistics/Statistics.styles.d.ts +0 -1
  95. package/dist/components/shared/Toggle/Toggle.d.ts +0 -13
  96. package/dist/components/shared/Toggle/Toggle.styles.d.ts +0 -1
  97. package/dist/components/shared/Tooltip/Tooltip.d.ts +0 -55
  98. package/dist/components/shared/Tooltip/Tooltip.styles.d.ts +0 -1
  99. package/dist/components/shared/context/game.context.d.ts +0 -19
  100. package/dist/lottie-CF6R56sF.js +0 -5443
  101. package/dist/shared/component.styles.d.ts +0 -2
  102. package/dist/shared/constants.d.ts +0 -8
  103. package/dist/shared/event-map.d.ts +0 -132
  104. package/dist/shared/get-game-outcome.d.ts +0 -1
  105. package/dist/shared/icons/currencies/btcIcon.d.ts +0 -1
  106. package/dist/shared/icons/currencies/ethIcon.d.ts +0 -1
  107. package/dist/shared/icons/currencies/usdcIcon.d.ts +0 -1
  108. package/dist/shared/icons/diceCubeIcon.d.ts +0 -1
  109. package/dist/shared/icons/minesBombIcon.d.ts +0 -1
  110. package/dist/shared/icons/minesGemIcon.d.ts +0 -1
  111. package/dist/shared/origami-action.type.d.ts +0 -7
  112. package/dist/shared/origami-element.d.ts +0 -21
  113. package/dist/shared/sleep.d.ts +0 -1
  114. package/dist/shared/watch.d.ts +0 -26
  115. package/dist/utils/active-elements.d.ts +0 -15
  116. package/dist/utils/animate.d.ts +0 -22
  117. package/dist/utils/animation-registry.d.ts +0 -24
  118. package/dist/utils/blur-active-element.d.ts +0 -7
  119. package/dist/utils/event.d.ts +0 -2
  120. package/dist/utils/focus-trap.d.ts +0 -24
  121. package/dist/utils/scroll.d.ts +0 -22
  122. package/dist/utils/slot.controller.d.ts +0 -23
  123. package/dist/utils/tabbable.d.ts +0 -9
package/dist/index.d.ts CHANGED
@@ -1,6 +1,740 @@
1
- import { GameProviderWrapper } from './components/shared/GameProviderWrapper';
2
- import { DiceGame } from './components/dice/DiceGame';
3
- import { KenoGame } from './components/keno/KenoGame';
4
- import { LimboGame } from './components/limbo/LimboGame';
5
- import { MinesGame } from './components/mines/MinesGame';
6
- export { DiceGame, KenoGame, LimboGame, GameProviderWrapper, MinesGame };
1
+ // Generated by dts-bundle-generator v9.5.1
2
+
3
+ import { KenoRiskLevel } from '@betorigami/calculations';
4
+ import { ContextProvider } from '@lit/context';
5
+ import BigNumber from 'bignumber.js';
6
+ import { CSSResult, LitElement, PropertyValues } from 'lit';
7
+
8
+ declare enum Currency {
9
+ BTC = "BTC",
10
+ ETH = "ETH",
11
+ USDC = "USDC"
12
+ }
13
+ export type EventTypeRequiresDetail<T> = T extends keyof GlobalEventHandlersEventMap ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>> ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>> ? never : Partial<GlobalEventHandlersEventMap[T]["detail"]> extends GlobalEventHandlersEventMap[T]["detail"] ? never : T : never : never;
14
+ export type EventTypeDoesNotRequireDetail<T> = T extends keyof GlobalEventHandlersEventMap ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>> ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>> ? T : Partial<GlobalEventHandlersEventMap[T]["detail"]> extends GlobalEventHandlersEventMap[T]["detail"] ? T : never : T : T;
15
+ export type EventTypesWithRequiredDetail = {
16
+ [EventType in keyof GlobalEventHandlersEventMap as EventTypeRequiresDetail<EventType>]: true;
17
+ };
18
+ export type EventTypesWithoutRequiredDetail = {
19
+ [EventType in keyof GlobalEventHandlersEventMap as EventTypeDoesNotRequireDetail<EventType>]: true;
20
+ };
21
+ export type WithRequired<T, K extends keyof T> = T & {
22
+ [P in K]-?: T[P];
23
+ };
24
+ export type SlEventInit<T> = T extends keyof GlobalEventHandlersEventMap ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>> ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>> ? CustomEventInit<GlobalEventHandlersEventMap[T]["detail"]> : Partial<GlobalEventHandlersEventMap[T]["detail"]> extends GlobalEventHandlersEventMap[T]["detail"] ? CustomEventInit<GlobalEventHandlersEventMap[T]["detail"]> : WithRequired<CustomEventInit<GlobalEventHandlersEventMap[T]["detail"]>, "detail"> : CustomEventInit : CustomEventInit;
25
+ export type GetCustomEventType<T> = T extends keyof GlobalEventHandlersEventMap ? GlobalEventHandlersEventMap[T] extends CustomEvent<unknown> ? GlobalEventHandlersEventMap[T] : CustomEvent<unknown> : CustomEvent<unknown>;
26
+ declare class OrigamiElement extends LitElement {
27
+ static componentStyles: CSSResult[];
28
+ /** Emits a custom event with more convenient defaults. */
29
+ emit<T extends string & keyof EventTypesWithoutRequiredDetail>(name: EventTypeDoesNotRequireDetail<T>, options?: SlEventInit<T> | undefined): GetCustomEventType<T>;
30
+ emit<T extends string & keyof EventTypesWithRequiredDetail>(name: EventTypeRequiresDetail<T>, options: SlEventInit<T>): GetCustomEventType<T>;
31
+ }
32
+ export interface GameHost {
33
+ gameData: gameContextType;
34
+ addController(controller: any): void;
35
+ }
36
+ declare class SoundController {
37
+ private host;
38
+ private muted;
39
+ private audioCache;
40
+ constructor(host: GameHost);
41
+ preload(file: string): void;
42
+ play(file: string): Promise<void>;
43
+ stop(): void;
44
+ pause(): void;
45
+ }
46
+ export type gameContextType = {
47
+ amount: string;
48
+ updateBalance: (newAmount: BigNumber) => void;
49
+ currency: Currency;
50
+ isCryptoMode: boolean;
51
+ isTheatreMode: boolean;
52
+ showFavorites: boolean;
53
+ balance: number;
54
+ baseUrl: string;
55
+ authToken: string;
56
+ gameStatsOpen: boolean;
57
+ hotkeysOpenEnabled: boolean;
58
+ volume: number;
59
+ instantBetEnabled: boolean;
60
+ updateHotkeysOpenEnabled: (enabled: boolean) => void;
61
+ updateVolume: (volume: number) => void;
62
+ updateInstantBetEnabled: (enabled: boolean) => void;
63
+ autobetNumberOfBets: number;
64
+ updateAutobetNumberOfBets: (numberOfBets: number) => void;
65
+ soundController?: SoundController;
66
+ };
67
+ declare const gameContext: {
68
+ __context__: gameContextType;
69
+ };
70
+ export declare class GameProviderWrapper extends OrigamiElement {
71
+ currency: Currency;
72
+ isTheatreMode: boolean;
73
+ showFavorites: boolean;
74
+ balance: number;
75
+ baseUrl: string;
76
+ authToken: string;
77
+ isCryptoMode: boolean;
78
+ gameStatsOpen: boolean;
79
+ private betAmount;
80
+ private autobetNumberOfBets;
81
+ private hotkeysOpenEnabled;
82
+ private volume;
83
+ private instantBetEnabled;
84
+ private _soundController;
85
+ firstUpdated(): void;
86
+ protected _gameProvider: ContextProvider<typeof gameContext>;
87
+ connectedCallback(): void;
88
+ updated(changedProperties: PropertyValues): void;
89
+ get gameData(): gameContextType;
90
+ private updateProviderValue;
91
+ updateHotkeysOpenEnabled(enabled: boolean): void;
92
+ updateVolume(volume: number): void;
93
+ updateInstantBetEnabled(enabled: boolean): void;
94
+ updateAutobetNumberOfBets(numberOfBets: number): void;
95
+ updateBalance(newAmount: BigNumber): void;
96
+ render(): import("lit-html").TemplateResult<1>;
97
+ }
98
+ declare enum MinesGameOutcome {
99
+ WIN = "WIN",
100
+ LOSS = "LOSS"
101
+ }
102
+ declare enum MinesFlowState {
103
+ NO_GAME_ACTIVE = "NO_GAME_ACTIVE",
104
+ GAME_IN_PROGRESS = "GAME_IN_PROGRESS",
105
+ VIEWING_RESULTS = "VIEWING_RESULTS"
106
+ }
107
+ export interface MinesState {
108
+ currency?: Currency;
109
+ selectedTiles: number[];
110
+ mineLocations: number[];
111
+ outcome: MinesGameOutcome | null;
112
+ minesCount: number;
113
+ numMinesRemaining: number;
114
+ numGemsFound: number;
115
+ numGemsRemaining: number;
116
+ state: MinesFlowState;
117
+ betAmount: BigNumber;
118
+ }
119
+ export type AfterBetEffect = "Reset" | "Increase";
120
+ declare const defaultAutobetValues: {
121
+ onWinPercentage: string;
122
+ onLossPercentage: string;
123
+ stopOnProfit: string;
124
+ stopOnLoss: string;
125
+ onLossStrategy: AfterBetEffect;
126
+ onWinStrategy: AfterBetEffect;
127
+ };
128
+ export type AutobetValues = typeof defaultAutobetValues;
129
+ export type BetMode = "Manual" | "Auto";
130
+ declare enum OrigamiActionType {
131
+ START_BET = "START_BET",// bet started but not yet ended send to the /bet webhook
132
+ END_BET = "END_BET",// bet has been completed. Can be started and ended in 1 webhook or started in 1 and ended in another. send to the /bet webhook
133
+ ROLLBACK = "ROLLBACK",// send to the /rollback webhook
134
+ INTERMEDIATE_BET_ACTION = "INTERMEDIATE_BET_ACTION",// bet amount was increased without game ending, such as doubling down in blackjack
135
+ INTERMEDIATE_NON_BET_ACTION = "INTERMEDIATE_NON_BET_ACTION"
136
+ }
137
+ declare enum DiceDirection {
138
+ ABOVE = "ABOVE",
139
+ BELOW = "BELOW"
140
+ }
141
+ export interface DiceData {
142
+ resultValue: number;
143
+ userValue: number;
144
+ userDiceDirection: DiceDirection;
145
+ }
146
+ export interface Action {
147
+ id: string;
148
+ data: {
149
+ dice: DiceData;
150
+ };
151
+ type: OrigamiActionType;
152
+ actionIndex: number;
153
+ originalActionId: string | null;
154
+ betAmount: string;
155
+ payoutAmount: string;
156
+ }
157
+ export interface BetResult {
158
+ id: string;
159
+ tenantId: string;
160
+ userId: string;
161
+ usdRate: number;
162
+ gameId: string;
163
+ currency: Currency;
164
+ edge: number;
165
+ amount: string;
166
+ payout: string;
167
+ afterBalance: string;
168
+ maxPayoutReached: boolean;
169
+ multiplier: number;
170
+ clientSeed: string;
171
+ randomValue: string;
172
+ proof: string | null;
173
+ nonce: string | null;
174
+ completedAt: string | null;
175
+ actions: Action[];
176
+ }
177
+ export type DiceStartArgs = {
178
+ currency: Currency;
179
+ amount: string;
180
+ windowId?: string;
181
+ usdAmount?: number;
182
+ direction: DiceDirection;
183
+ selectedValue: number;
184
+ };
185
+ declare class DiceApi {
186
+ private authToken;
187
+ private baseUrl;
188
+ static totalDiceValue: number;
189
+ constructor(authToken: string, baseUrl: string);
190
+ startBet(data: DiceStartArgs): Promise<{
191
+ success: true;
192
+ data: BetResult;
193
+ error?: undefined;
194
+ } | {
195
+ success: false;
196
+ error: string;
197
+ data?: undefined;
198
+ }>;
199
+ static getMultiplier(selectedValue: number, diceDirection: DiceDirection): string;
200
+ static getWinChance(selectedValue: number, diceDirection: DiceDirection): string;
201
+ static getSelectedValueFromMultiplier(multiplier: number, diceDirection: DiceDirection): number;
202
+ static getSelectedValueFromWinChance(winChancePercentage: number, diceDirection: DiceDirection): number;
203
+ static getSelectedValueFromRollOver(selectedValue: number): number;
204
+ }
205
+ export interface KenoData {
206
+ /** The tiles selected by the player */
207
+ selectedTiles: number[];
208
+ /** The tiles containing gems (results) */
209
+ resultTiles: number[];
210
+ multiplier: number;
211
+ /** Risk level chosen by the player */
212
+ riskLevel: KenoRiskLevel;
213
+ }
214
+ interface Action$1 {
215
+ id: string;
216
+ data: {
217
+ keno: KenoData;
218
+ };
219
+ type: OrigamiActionType;
220
+ actionIndex: number;
221
+ originalActionId: string | null;
222
+ betAmount: string;
223
+ payoutAmount: string;
224
+ }
225
+ interface BetResult$1 {
226
+ id: string;
227
+ tenantId: string;
228
+ userId: string;
229
+ usdRate: number;
230
+ gameId: string;
231
+ currency: Currency;
232
+ edge: number;
233
+ amount: string;
234
+ payout: string;
235
+ afterBalance: string;
236
+ maxPayoutReached: boolean;
237
+ multiplier: number;
238
+ clientSeed: string;
239
+ randomValue: string;
240
+ proof: string | null;
241
+ nonce: string | null;
242
+ completedAt: string | null;
243
+ actions: Action$1[];
244
+ }
245
+ export type KenoStartArgs = {
246
+ currency: Currency;
247
+ amount: string;
248
+ windowId?: string;
249
+ usdAmount?: number;
250
+ riskLevel: KenoRiskLevel;
251
+ selectedTiles: number[];
252
+ };
253
+ declare class KenoApi {
254
+ private authToken;
255
+ private baseUrl;
256
+ constructor(authToken: string, baseUrl: string);
257
+ startBet(data: KenoStartArgs): Promise<{
258
+ success: true;
259
+ data: BetResult$1;
260
+ error?: undefined;
261
+ } | {
262
+ success: false;
263
+ error: string;
264
+ data?: undefined;
265
+ }>;
266
+ }
267
+ export interface LimboData {
268
+ targetMultiplier: number;
269
+ resultMultiplier: number;
270
+ }
271
+ interface Action$2 {
272
+ id: string;
273
+ data: {
274
+ limbo: LimboData;
275
+ };
276
+ type: OrigamiActionType;
277
+ actionIndex: number;
278
+ originalActionId: string | null;
279
+ betAmount: string;
280
+ payoutAmount: string;
281
+ }
282
+ interface BetResult$2 {
283
+ id: string;
284
+ tenantId: string;
285
+ userId: string;
286
+ usdRate: number;
287
+ gameId: string;
288
+ currency: Currency;
289
+ edge: number;
290
+ amount: string;
291
+ payout: string;
292
+ afterBalance: string;
293
+ maxPayoutReached: boolean;
294
+ multiplier: number;
295
+ clientSeed: string;
296
+ randomValue: string;
297
+ proof: string | null;
298
+ nonce: string | null;
299
+ completedAt: string | null;
300
+ actions: Action$2[];
301
+ }
302
+ export type LimboStartArgs = {
303
+ currency: Currency;
304
+ amount: string;
305
+ windowId?: string;
306
+ usdAmount?: number;
307
+ targetMultiplier: number;
308
+ };
309
+ declare class LimboApi {
310
+ private authToken;
311
+ private baseUrl;
312
+ constructor(authToken: string, baseUrl: string);
313
+ startBet: (data: LimboStartArgs) => Promise<{
314
+ success: true;
315
+ data: BetResult$2;
316
+ error?: undefined;
317
+ } | {
318
+ success: false;
319
+ error: string;
320
+ data?: undefined;
321
+ }>;
322
+ static calculateMultiplier(winChance: number): string;
323
+ static calculateWinChance(targetMultiplier: number): string;
324
+ static calculateProfitOnWin(amount: string, targetMultiplier: number): string;
325
+ }
326
+ export interface MinesData {
327
+ minesResult: number[];
328
+ minesCount: number;
329
+ winMultiplier: string;
330
+ selected: number[];
331
+ }
332
+ export interface MinesAction {
333
+ id: string;
334
+ data: {
335
+ mines: MinesData;
336
+ };
337
+ type: OrigamiActionType;
338
+ actionIndex: number;
339
+ originalActionId: string | null;
340
+ betAmount: string;
341
+ payoutAmount: string;
342
+ }
343
+ interface BetResult$3 {
344
+ id: string;
345
+ tenantId: string;
346
+ userId: string;
347
+ usdRate: number;
348
+ gameId: string;
349
+ currency: Currency;
350
+ edge: number;
351
+ amount: string;
352
+ payout: string;
353
+ afterBalance: string;
354
+ maxPayoutReached: boolean;
355
+ multiplier: number;
356
+ clientSeed: string;
357
+ randomValue: string;
358
+ proof: string | null;
359
+ nonce: string | null;
360
+ completedAt: string | null;
361
+ actions: MinesAction[];
362
+ }
363
+ export type MinesManualStartArgs = {
364
+ currency: Currency;
365
+ amount: string;
366
+ windowId?: string;
367
+ usdAmount?: number;
368
+ minesCount: number;
369
+ };
370
+ export type MinesNextArgs = {
371
+ betId: string;
372
+ selected: number[];
373
+ };
374
+ export type MinesAutoArgs = {
375
+ currency: Currency;
376
+ amount: string;
377
+ windowId?: string;
378
+ usdAmount?: number;
379
+ minesCount?: number;
380
+ selected: number[];
381
+ };
382
+ declare class MinesApi {
383
+ private authToken;
384
+ private baseUrl;
385
+ constructor(authToken: string, baseUrl: string);
386
+ startManualBet(data: MinesManualStartArgs): Promise<{
387
+ success: true;
388
+ data: BetResult$3;
389
+ error?: undefined;
390
+ } | {
391
+ success: false;
392
+ error: string;
393
+ data?: undefined;
394
+ }>;
395
+ getActiveBet(): Promise<{
396
+ success: false;
397
+ error: string;
398
+ data?: undefined;
399
+ } | {
400
+ success: true;
401
+ data: BetResult$3;
402
+ error?: undefined;
403
+ }>;
404
+ selectTile(minesNextArgs: MinesNextArgs): Promise<{
405
+ success: true;
406
+ data: BetResult$3;
407
+ error?: undefined;
408
+ } | {
409
+ success: false;
410
+ error: string;
411
+ data?: undefined;
412
+ }>;
413
+ cashout(): Promise<{
414
+ success: true;
415
+ data: BetResult$3;
416
+ error?: undefined;
417
+ } | {
418
+ success: false;
419
+ error: string;
420
+ data?: undefined;
421
+ }>;
422
+ autobetPlay(data: MinesAutoArgs): Promise<{
423
+ success: true;
424
+ data: BetResult$3;
425
+ error?: undefined;
426
+ } | {
427
+ success: false;
428
+ error: string;
429
+ data?: undefined;
430
+ }>;
431
+ static getInitialState: () => MinesState;
432
+ static deriveSelectedTiles: (actions?: Array<MinesAction> | null) => number[];
433
+ static deriveMineLocations: (actions?: Array<MinesAction> | null) => number[];
434
+ static getMinesBetInfo: (actions: MinesAction[]) => {
435
+ selected: number[];
436
+ mines: number[];
437
+ };
438
+ static deriveOutcome: (bet?: BetResult$3) => MinesGameOutcome | null;
439
+ static deriveAutoOutcome: (bet?: BetResult$3 | null) => MinesGameOutcome | null;
440
+ static calculateMinesMultiplier: (gemsFound: number, mines: number) => BigNumber;
441
+ static getState: (bet: BetResult$3) => MinesState;
442
+ }
443
+ export type AutobetToggleEvent = CustomEvent<AutobetValues & {
444
+ numberOfBets: string;
445
+ }>;
446
+ export type SliderChangeEvent = CustomEvent<{
447
+ value: number;
448
+ }>;
449
+ export type DiceMultiplierChangeEvent = CustomEvent<{
450
+ multiplier: string;
451
+ }>;
452
+ export type DiceWinChanceChangeEvent = CustomEvent<{
453
+ winChance: string;
454
+ }>;
455
+ export type LimboMultiplierChangeEvent = CustomEvent<{
456
+ multiplier: string;
457
+ }>;
458
+ export type LimboWinChanceChangeEvent = CustomEvent<{
459
+ winChance: string;
460
+ }>;
461
+ export type LimboMultiplierAnimationEndEvent = CustomEvent<{
462
+ resultMultiplier: number;
463
+ isWin: boolean;
464
+ betId: string;
465
+ }>;
466
+ export type KenoRiskChangeEvent = CustomEvent<{
467
+ value: KenoRiskLevel;
468
+ }>;
469
+ export type KenoTileClickEvent = CustomEvent<{
470
+ tile: number;
471
+ }>;
472
+ export interface AutobetSettings {
473
+ onWinStrategy: AfterBetEffect;
474
+ onLossStrategy: AfterBetEffect;
475
+ onWinPercentage: string | number;
476
+ onLossPercentage: string | number;
477
+ stopOnLoss: string;
478
+ stopOnProfit: string;
479
+ numberOfBets?: number;
480
+ autobetBets?: number;
481
+ }
482
+ export interface GameBetResult {
483
+ pnl: BigNumber;
484
+ gameOutcome: "Win" | "Loss" | "Draw";
485
+ hasError: boolean;
486
+ errorMessage?: string;
487
+ }
488
+ declare abstract class GameComponent extends OrigamiElement {
489
+ protected manualOrAuto: BetMode;
490
+ protected hasPendingBet: boolean;
491
+ protected autobetInProgress: boolean;
492
+ protected autobetStopping: boolean;
493
+ static soundsToPreload: string[];
494
+ static styles: import("lit").CSSResult[];
495
+ private gameConsumer;
496
+ get gameData(): gameContextType;
497
+ /**
498
+ * Common getter for when the toggle between Manual/Auto should be disabled
499
+ * Override in child classes if additional conditions are needed
500
+ */
501
+ get isToggleDisabled(): boolean;
502
+ /**
503
+ * Common getter for when inputs and controls should be disabled
504
+ * Override in child classes to add game-specific conditions
505
+ */
506
+ get areInputsDisabled(): boolean;
507
+ /**
508
+ * Returns appropriate delay based on instant bet setting
509
+ * Keeps minimal delay for animations while making betting feel instant
510
+ */
511
+ protected getDelay(normalDelay: number): number;
512
+ /**
513
+ * Forces UI update and waits for next frame - useful in instant mode
514
+ */
515
+ protected forceUIUpdate(): Promise<void>;
516
+ /**
517
+ * Executes an operation either instantly or with animation based on instant bet setting
518
+ * @param instantOperation - Function to execute in instant mode
519
+ * @param animatedOperation - Function to execute in normal mode
520
+ */
521
+ protected executeInstantOrAnimated<T>(instantOperation: () => Promise<T> | T, animatedOperation: () => Promise<T> | T): Promise<T>;
522
+ /**
523
+ * Ensures minimum display time for autobet results in instant mode
524
+ * @param hasWin - Whether the round was a win (longer display time)
525
+ * @param winDisplayTime - Display time for wins (default 500ms)
526
+ * @param lossDisplayTime - Display time for losses (default 500ms)
527
+ */
528
+ protected ensureMinimumDisplayTime(hasWin?: boolean, winDisplayTime?: number, lossDisplayTime?: number): Promise<void>;
529
+ firstUpdated(): void;
530
+ toggleAutobet(event: AutobetToggleEvent): Promise<void>;
531
+ protected abstract executeAutobet(_autobetSettings: AutobetSettings, _currentBetAmount: string): Promise<GameBetResult>;
532
+ protected adjustBetAmount(autobetSettings: AutobetSettings, gameOutcome: "Win" | "Loss" | "Draw", originalBetAmount: string, currentBetAmount: string): string;
533
+ protected isPnLWithinLimits(autobetSettings: AutobetSettings, totalPnL: BigNumber): boolean;
534
+ }
535
+ declare class MockDiceApi {
536
+ private static getRandomValueInRange;
537
+ startBet(data: DiceStartArgs): Promise<{
538
+ success: true;
539
+ data: BetResult;
540
+ }>;
541
+ }
542
+ export declare class DiceGame extends GameComponent {
543
+ static soundsToPreload: string[];
544
+ private diceDirection;
545
+ private selectedValue;
546
+ private isManualPlaying;
547
+ private showDice;
548
+ private isWin;
549
+ private resultValue;
550
+ private history;
551
+ private _diceManualEl?;
552
+ private _diceAutoEl?;
553
+ get isToggleDisabled(): boolean;
554
+ get areInputsDisabled(): boolean;
555
+ firstUpdated(): void;
556
+ private isSpacebarDisabled;
557
+ private handleSpacebar;
558
+ diceRollOverToggle: () => void;
559
+ constructor();
560
+ private decreaseSlider;
561
+ private increaseSlider;
562
+ get diceApi(): DiceApi | MockDiceApi;
563
+ dicePlay(): Promise<void>;
564
+ private handleBetExecution;
565
+ addToHistory(multiplier: number, won: boolean, id: string): void;
566
+ protected executeAutobet(_autobetSettings: AutobetSettings, currentBetAmount: string): Promise<GameBetResult>;
567
+ sliderInputChange: (e: SliderChangeEvent) => void;
568
+ diceMultiplierChange: (e: DiceMultiplierChangeEvent) => void;
569
+ diceWinChanceChange: (e: DiceWinChanceChangeEvent) => void;
570
+ render(): import("lit-html").TemplateResult<1>;
571
+ }
572
+ declare class MockKenoApi {
573
+ private static generateRandomTiles;
574
+ private static calculateMultiplier;
575
+ startBet: (data: KenoStartArgs) => Promise<{
576
+ success: true;
577
+ data: BetResult$1;
578
+ }>;
579
+ }
580
+ export declare class KenoGame extends GameComponent {
581
+ static soundsToPreload: string[];
582
+ private isManualPlaying;
583
+ private history;
584
+ private selectedTiles;
585
+ private resultTiles;
586
+ gameWinPopupShowing: boolean;
587
+ private gameOver;
588
+ private payout;
589
+ private kenoRisk;
590
+ private autoselectRunning;
591
+ private multiplier;
592
+ private hadTilesBeforeAutopick;
593
+ private betId;
594
+ private _kenoManualEl?;
595
+ private _kenoAutoEl?;
596
+ get isToggleDisabled(): boolean;
597
+ get areInputsDisabled(): boolean;
598
+ get kenoApi(): KenoApi | MockKenoApi;
599
+ kenoPlay(): Promise<void>;
600
+ private handleBetExecution;
601
+ addToHistory(multiplier: number, won: boolean): void;
602
+ protected executeAutobet(_autobetSettings: AutobetSettings, currentBetAmount: string): Promise<GameBetResult>;
603
+ handleTileClick: (e: KenoTileClickEvent) => void;
604
+ handleRiskChange: (e: KenoRiskChangeEvent) => void;
605
+ autoPick: () => Promise<void>;
606
+ clearTable: () => void;
607
+ newGame: () => void;
608
+ render(): import("lit-html").TemplateResult<1>;
609
+ private getButton;
610
+ private isButtonDisabled;
611
+ private handleSpacebar;
612
+ private handleAutoPick;
613
+ private handleClearTable;
614
+ constructor();
615
+ }
616
+ declare class MockLimboApi {
617
+ private static getRandomMultiplier;
618
+ startBet: (data: LimboStartArgs) => Promise<{
619
+ success: true;
620
+ data: BetResult$2;
621
+ }>;
622
+ }
623
+ export declare class LimboGame extends GameComponent {
624
+ static soundsToPreload: string[];
625
+ private targetMultiplier;
626
+ private resultMultiplier;
627
+ private isManualPlaying;
628
+ private isWin;
629
+ private history;
630
+ private betTargetMultiplier;
631
+ private betId;
632
+ private _limboManualEl?;
633
+ private _limboAutoEl?;
634
+ get isToggleDisabled(): boolean;
635
+ get areInputsDisabled(): boolean;
636
+ get limboApi(): LimboApi | MockLimboApi;
637
+ firstUpdated(): void;
638
+ limboPlay(): Promise<void>;
639
+ private handleBetExecution;
640
+ private isSpacebarDisabled;
641
+ private handleSpacebar;
642
+ constructor();
643
+ protected executeAutobet(_autobetSettings: AutobetSettings, currentBetAmount: string): Promise<GameBetResult>;
644
+ multiplierChange: (e: LimboMultiplierChangeEvent) => void;
645
+ calculateProfitOnWin(): string;
646
+ winChanceChange: (e: LimboWinChanceChangeEvent) => void;
647
+ multiplierAnimationEnd: (e: LimboMultiplierAnimationEndEvent) => void;
648
+ render(): import("lit-html").TemplateResult<1>;
649
+ }
650
+ export interface MockMinesSettings {
651
+ shouldWin: boolean;
652
+ minePositions?: number[];
653
+ }
654
+ declare class MockMinesApi {
655
+ private static mockSettings;
656
+ private static activeBet;
657
+ private static minePositions;
658
+ static setMockSettings(settings: MockMinesSettings): void;
659
+ private static getRandomValueInRange;
660
+ private static generateMinePositions;
661
+ private static addAction;
662
+ private static updateBetResult;
663
+ startManualBet(data: MinesManualStartArgs): Promise<{
664
+ success: true;
665
+ data: BetResult$3;
666
+ }>;
667
+ getActiveBet(): Promise<{
668
+ success: false;
669
+ error: string;
670
+ data?: undefined;
671
+ } | {
672
+ success: true;
673
+ data: BetResult$3;
674
+ error?: undefined;
675
+ }>;
676
+ selectTile(data: MinesNextArgs): Promise<{
677
+ success: false;
678
+ error: string;
679
+ data?: undefined;
680
+ } | {
681
+ success: true;
682
+ data: BetResult$3;
683
+ error?: undefined;
684
+ }>;
685
+ cashout(): Promise<{
686
+ success: false;
687
+ error: string;
688
+ data?: undefined;
689
+ } | {
690
+ success: true;
691
+ data: BetResult$3;
692
+ error?: undefined;
693
+ }>;
694
+ autobetPlay(data: MinesAutoArgs): Promise<{
695
+ success: true;
696
+ data: BetResult$3;
697
+ }>;
698
+ }
699
+ export declare class MinesGame extends GameComponent {
700
+ static soundsToPreload: string[];
701
+ private minesCount;
702
+ private autobetSelectedTiles;
703
+ private minesData;
704
+ private isLoading;
705
+ private isSelectingRandomTile;
706
+ private history;
707
+ private isCheckingForSession;
708
+ private loadingTiles;
709
+ private _minesManualEl?;
710
+ private _minesAutoEl?;
711
+ private _playSound;
712
+ private authTokenWatcher;
713
+ get isToggleDisabled(): boolean;
714
+ get areInputsDisabled(): boolean;
715
+ get isGameActive(): boolean;
716
+ get minesApi(): MinesApi | MockMinesApi;
717
+ addToHistory(multiplier: number, won: boolean, id: string): void;
718
+ getMinesActiveBet(): Promise<void>;
719
+ firstUpdated(): Promise<void>;
720
+ protected updated(changedProperties: Map<string | number | symbol, unknown>): void;
721
+ get getMinesState(): MinesState | null;
722
+ protected executeAutobet(_autobetSettings: AutobetSettings, currentBetAmount: string): Promise<GameBetResult>;
723
+ toggleAutobet(event: AutobetToggleEvent): Promise<void>;
724
+ private minesClickHandler;
725
+ minesManualStart(): Promise<void>;
726
+ minesChooseRandomTile(): Promise<void>;
727
+ minesNext(selectedTile: number): Promise<void>;
728
+ minesCashout(): Promise<void>;
729
+ onManualOrAutoChange(): void;
730
+ onMinesCountChange(): void;
731
+ onAutobetChange(): void;
732
+ private isSpacebarDisabled;
733
+ private handleSpacebar;
734
+ private pickRandomTile;
735
+ private waitForAnimationsComplete;
736
+ constructor();
737
+ render(): import("lit-html").TemplateResult<1>;
738
+ }
739
+
740
+ export {};