import { Effect, Item } from "kolmafia"; export declare const RINGS: readonly [readonly ["yam1", "sword", "eye", "chair", "fur", "vessel"], readonly ["lightning", "bottle", "meat", "wood", "yam2"], readonly ["yam3", "wall", "cheese", "eyepatch"], readonly ["explosion", "clock", "yam4"]]; export type Glyph = (typeof RINGS)[number][number]; export type Ring = (typeof RINGS)[N][number]; export type Combination = [Ring<0>, Ring<1>, Ring<2>, Ring<3>]; export type CombinationString = `${Ring<0>} ${Ring<1>} ${Ring<2>} ${Ring<3>}`; /** * @returns Whether you `have` the Mayam calendar */ export declare function have(): boolean; /** * @returns The Mayam calendar symbols you've used so far today. */ export declare function symbolsUsed(): Glyph[]; /** * Determine whether a certain Mayam symbol is available for use today * * @param {Glyph} symbol The symbol to check * @returns Whether or not the given symbol is available for use */ export declare function available(symbol: Glyph): boolean; /** * Determine whether a certain Mayam combination is available for use today * * @param {...Combination} combination The combination to check * @returns Whether or not the given combination is available for use */ export declare function available(...combination: Combination): boolean; /** * @returns The remaining number of uses you have of your Mayam calendar today */ export declare function remainingUses(): number; /** * Utility function to ensure you're dealing with a `Combination` array. * @param combination An array containing a `CombinationString` or a `Combination` array. * @returns A `Combination` corresponding to the information passed in. */ export declare function toCombination(combination: Combination | [CombinationString]): Combination; /** * Utility function to ensure you're dealing with a `CombinationString` string. * @param combination An array containing a `CombinationString` or a `Combination` array. * @returns A `CombinationString` corresponding to the information passed in. */ export declare function toCombinationString(combination: Combination | [CombinationString]): CombinationString; /** * Enter a combination in the Mayam calendar * @param combination The combination to submit, either as a single string or as a series of symbols * @returns Whether we succeeded in our endeavor */ export declare function submit(...combination: Combination | [CombinationString]): boolean; export declare const RESONANCES: Readonly<{ "eye yam2 eyepatch yam4": Item; "vessel yam2 cheese explosion": Item; "yam1 meat cheese yam4": Item; "sword yam2 eyepatch explosion": Item; "fur lightning eyepatch yam4": Item; "yam1 lightning yam3 clock": Item; "fur yam2 wall yam4": Item; "yam1 yam2 yam3 explosion": Item; "yam1 meat eyepatch yam4": Item; "chair yam2 yam3 clock": Effect; "yam1 yam2 cheese clock": Effect; }>; export declare const RESONANCE_KEYS: (keyof typeof RESONANCES)[]; /** * Find the combination needed to get a particular resonance * @param target The Item or Effect granted by the resonance * @returns The combination needed, or null if none such exists */ export declare function resonanceFor(target: Item | Effect): Combination | null; /** * Determines whether an item can be obtained via resonance at this moment * @param target The target Item or Effect for your resonance * @returns Whether or not you can currently use that resonance */ export declare function resonanceAvailable(target: Item | Effect): boolean; /** * Determine what Item or Effect results from a particular resonance * * @param combination The combination to check, either as a single string or a series of symbols * @returns The Item or Effect of the resonance, if it is indeed a resonance; `null` otherwise */ export declare function getResonanceResult(...combination: Combination | [CombinationString]): Item | Effect | null;