import { Crop } from '../constants/crops.js';
import { Rarity } from '../constants/reforges.js';
export interface LevelingStats {
    level: number;
    ratio: number;
    maxed: boolean;
    progress: number;
    goal?: number;
    next?: number;
    total: number;
}
/**
 * Gets user's current level based on experience
 * @param exp Current experience/progress
 * @param expRequired Array of the amount of experience required to reach each level, not cumulative
 * @param maxLevel Maximum level to return
 * @param overflow Calculate overflow levels
 */
export declare function getLevel(exp: number, expRequired: number[], maxLevel?: number, overflow?: boolean): LevelingStats;
export declare function getGardenLevel(exp: number, overflow?: boolean): LevelingStats;
export declare function getCropMilestone(crop: Crop, collection: number, overflow?: boolean): LevelingStats;
export declare function getCropMilestones(crops: Record<string, number | string>, overflow?: boolean): Record<Crop, LevelingStats>;
export declare function getCropMilestoneLevels(crops: Record<string, number | string | null | undefined>, overflow?: boolean): Record<Crop, number>;
export declare function getCropUpgrades(upgrades: Record<string, number>): Record<Crop, number>;
export declare function getGardenVisitor(visitor: string): import("../constants/garden.js").GardenVisitor | undefined;
export interface GardenVisitorStats {
    visits: number;
    accepted: number;
}
export interface GardenVisitorStatsWithName extends GardenVisitorStats {
    name: string;
    short?: string;
    rarity: Rarity;
}
export declare function groupGardenVisitors(visitors: Record<string, GardenVisitorStats>): Record<Rarity, GardenVisitorStatsWithName[]>;
