import type { Event } from "./event"; export namespace Motely { export enum MotelyDeck { Red, Blue, Yellow, Green, Black, Magic, Nebula, Ghost, Abandoned, Checkered, Zodiac, Painted, Anaglyph, Plasma, Erratic } export enum MotelyStake { White, Red, Green, Black, Blue, Purple, Orange, Gold } export enum MotelyBossBlind { AmberAcorn, CeruleanBell, CrimsonHeart, VerdantLeaf, VioletVessel, TheClub, TheGoad, TheHead, TheHook, TheManacle, ThePillar, ThePsychic, TheWindow, TheArm, TheFish, TheFlint, TheHouse, TheMark, TheMouth, TheNeedle, TheWall, TheWater, TheWheel, TheEye, TheTooth, ThePlant, TheSerpent, TheOx } export enum MotelyVoucher { Overstock, OverstockPlus, ClearanceSale, Liquidation, Hone, GlowUp, RerollSurplus, RerollGlut, CrystalBall, OmenGlobe, Telescope, Observatory, Grabber, NachoTong, Wasteful, Recyclomancy, TarotMerchant, TarotTycoon, PlanetMerchant, PlanetTycoon, SeedMoney, MoneyTree, Blank, Antimatter, MagicTrick, Illusion, Hieroglyph, Petroglyph, DirectorsCut, Retcon, PaintBrush, Palette } export enum MotelyTag { UncommonTag, RareTag, NegativeTag, FoilTag, HolographicTag, PolychromeTag, InvestmentTag, VoucherTag, BossTag, StandardTag, CharmTag, MeteorTag, BuffoonTag, HandyTag, GarbageTag, EtherealTag, CouponTag, DoubleTag, JuggleTag, D6Tag, TopupTag, SpeedTag, OrbitalTag, EconomyTag } export interface MotelyItem { } export enum MotelyItemType { C2, C3, C4, C5, C6, C7, C8, C9, C10, CJ, CQ, CK, CA, D2, D3, D4, D5, D6, D7, D8, D9, D10, DJ, DQ, DK, DA, H2, H3, H4, H5, H6, H7, H8, H9, H10, HJ, HQ, HK, HA, S2, S3, S4, S5, S6, S7, S8, S9, S10, SJ, SQ, SK, SA, Familiar, Grim, Incantation, Talisman, Aura, Wraith, Sigil, Ouija, Ectoplasm, Immolate, Ankh, DejaVu, Hex, Trance, Medium, Cryptid, TheSoul, BlackHole, TheFool, TheMagician, TheHighPriestess, TheEmpress, TheEmperor, TheHierophant, TheLovers, TheChariot, Justice, TheHermit, TheWheelOfFortune, Strength, TheHangedMan, Death, Temperance, TheDevil, TheTower, TheStar, TheMoon, TheSun, Judgement, TheWorld, Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto, PlanetX, Ceres, Eris, Joker, GreedyJoker, LustyJoker, WrathfulJoker, GluttonousJoker, JollyJoker, ZanyJoker, MadJoker, CrazyJoker, DrollJoker, SlyJoker, WilyJoker, CleverJoker, DeviousJoker, CraftyJoker, HalfJoker, CreditCard, Banner, MysticSummit, EightBall, Misprint, RaisedFist, ChaostheClown, ScaryFace, AbstractJoker, DelayedGratification, GrosMichel, EvenSteven, OddTodd, Scholar, BusinessCard, Supernova, RideTheBus, Egg, Runner, IceCream, Splash, BlueJoker, FacelessJoker, GreenJoker, Superposition, ToDoList, Cavendish, RedCard, SquareJoker, RiffRaff, Photograph, ReservedParking, MailInRebate, Hallucination, FortuneTeller, Juggler, Drunkard, GoldenJoker, Popcorn, WalkieTalkie, SmileyFace, GoldenTicket, Swashbuckler, HangingChad, ShootTheMoon, JokerStencil, FourFingers, Mime, CeremonialDagger, MarbleJoker, LoyaltyCard, Dusk, Fibonacci, SteelJoker, Hack, Pareidolia, SpaceJoker, Burglar, Blackboard, SixthSense, Constellation, Hiker, CardSharp, Madness, Seance, Vampire, Shortcut, Hologram, Cloud9, Rocket, MidasMask, Luchador, GiftCard, TurtleBean, Erosion, ToTheMoon, StoneJoker, LuckyCat, Bull, DietCola, TradingCard, FlashCard, SpareTrousers, Ramen, Seltzer, Castle, MrBones, Acrobat, SockAndBuskin, Troubadour, Certificate, SmearedJoker, Throwback, RoughGem, Bloodstone, Arrowhead, OnyxAgate, GlassJoker, Showman, FlowerPot, MerryAndy, OopsAll6s, TheIdol, SeeingDouble, Matador, Satellite, Cartomancer, Astronomer, Bootstraps, DNA, Vagabond, Baron, Obelisk, BaseballCard, AncientJoker, Campfire, Blueprint, WeeJoker, HitTheRoad, TheDuo, TheTrio, TheFamily, TheOrder, TheTribe, Stuntman, InvisibleJoker, Brainstorm, DriversLicense, BurntJoker, Canio, Triboulet, Yorick, Chicot, Perkeo, Invalid, NotImplemented, JokerExcludedByStream, PlanetExcludedByStream, TarotExcludedByStream, SpectralExcludedByStream } export enum MotelyItemTypeCategory { PlayingCard, SpectralCard, TarotCard, PlanetCard, Joker, Invalid } export enum MotelyItemSeal { None, Gold, Red, Blue, Purple } export enum MotelyItemEnhancement { None, Bonus, Mult, Wild, Glass, Steel, Stone, Gold, Lucky } export enum MotelyItemEdition { None, Foil, Holographic, Polychrome, Negative } export enum MotelyPlayingCardSuit { Clubs, Diamonds, Hearts, Spades } export enum MotelyPlayingCardRank { Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King, Ace } export enum MotelyBoosterPack { Arcana, JumboArcana, MegaArcana, Celestial, JumboCelestial, MegaCelestial, Standard, JumboStandard, MegaStandard, Buffoon, JumboBuffoon, MegaBuffoon, Spectral, JumboSpectral, MegaSpectral } } export namespace Motely.Analysis { export interface MotelySeedAnalysis { error?: string; antes: Array; deck?: Motely.MotelyDeck; erraticDeckComposition?: string; erraticDeckBreakdown?: string; } export interface MotelyAnteAnalysis { ante: number; boss: Motely.MotelyBossBlind; voucher: Motely.MotelyVoucher; smallBlindTag: Motely.MotelyTag; bigBlindTag: Motely.MotelyTag; shopQueue: Array; packs: Array; drawOrder?: string; } export interface MotelyBoosterPackAnalysis { type: Motely.MotelyBoosterPack; items: Array; } export interface MotelySeedRouterDesc { } } export namespace Motely.BrowserWasm { export interface IMotelySearchHandle { cancel(): void; dispose(): void; } } export namespace Motely.BrowserWasm.MotelyProgram { export function getVersion(): string; export function validateJaml(jamlContent: string): string | null; export function analyzeSeed(seed: string, deck: Motely.MotelyDeck, stake: Motely.MotelyStake): Motely.Analysis.MotelySeedAnalysis; export function loadSeed(seed: string, deck: Motely.MotelyDeck, stake: Motely.MotelyStake): Motely.Analysis.MotelySeedRouterDesc; export function startConfiguredSearch(jamlContent: string, threadCount: number, batchCharCount: number, startBatch: bigint, endBatch: bigint): Motely.BrowserWasm.IMotelySearchHandle; export function startSequentialSearch(jamlContent: string, threadCount: number, batchCharCount: number, startBatch: bigint, endBatch: bigint): Motely.BrowserWasm.IMotelySearchHandle; export function startRandomSearch(jamlContent: string, randomSeedCount: number, threadCount: number, batchCharCount: number): Motely.BrowserWasm.IMotelySearchHandle; export function startAestheticSearch(jamlContent: string, aesthetic: number, threadCount: number, batchCharCount: number): Motely.BrowserWasm.IMotelySearchHandle; export function startKeywordSearch(jamlContent: string, keywordsCsv: string, paddingChars: string, threadCount: number, batchCharCount: number): Motely.BrowserWasm.IMotelySearchHandle; export function startSeedListSearch(jamlContent: string, seedsCsv: string, threadCount: number): Motely.BrowserWasm.IMotelySearchHandle; } export namespace Motely.BrowserWasm.MotelyProgramCallbacks { export let onProgress: (seedsSearched: bigint, matchingSeeds: bigint, elapsedMs: bigint) => void; export let onResult: (seed: string, score: number) => void; export let onComplete: (status: string, seedsSearched: bigint, matchingSeeds: bigint) => void; }