import { GachaEngineConfig } from './types';
export declare class GachaEngine {
    private static readonly SCALE;
    private static readonly MAX_SAFE_SCALE;
    private mode;
    private pools;
    private rarityRatesScaled;
    private flatRateMap;
    private dropRateCacheScaled;
    private flatRateRateUpItems;
    constructor(config: GachaEngineConfig);
    private scaleRarityRates;
    private toScaled;
    private fromScaled;
    private validateConfig;
    getItemDropRate(name: string): number;
    getCumulativeProbabilityForItem(name: string, rolls: number): number;
    getRollsForTargetProbability(name: string, targetProbability: number): number;
    getRateUpItems(): string[];
    getAllItemDropRates(): {
        name: string;
        dropRate: number;
        rarity: string;
    }[];
    roll(count?: number): string[];
    private selectRarity;
    private selectItemFromPool;
    getDebugInfo(): {
        scale: number;
        rarityRatesScaled: Record<string, number>;
        rarityRatesFloat: Record<string, number>;
    };
}
