import { type GemstoneInfo } from '../../constants/gems.js';
import type { Rarity } from '../../constants/reforge-types.js';
import type { Stat } from '../../constants/stats.js';
import type { Effect } from '../../effects/types.js';
import type { GemRarity } from '../../fortune/item.js';
export declare class GemstoneSource {
    readonly id: string;
    readonly name: string;
    readonly info: GemstoneInfo;
    constructor(id: string, info: GemstoneInfo);
    getStat(hostRarity: Rarity, gemRarity: GemRarity | null | undefined): number;
    getEffects(hostRarity: Rarity, gemRarity: GemRarity | null | undefined, sourceName?: string, multiplier?: number): Effect[];
    getDeltaEffects(hostRarity: Rarity, currentGem: GemRarity | null | undefined, nextGem: GemRarity | null | undefined, sourceName?: string, multiplier?: number): Effect[];
}
export declare function createGemstoneSources(): Record<string, GemstoneSource>;
export declare function getGemstoneIdFromSlot(slot: string): string | undefined;
export declare function getGemstoneSourceFromSlot(slot: string): GemstoneSource | undefined;
export declare const GEMSTONE_SOURCES: Record<string, GemstoneSource>;
export declare function getGemstoneStatFromSlot(slot: string, gemRarity: GemRarity | null | undefined, hostRarity: Rarity, stat: Stat): number;
