import { Crop } from '../constants/crops';
export declare function createFarmingWeightCalculator(info?: FarmingWeightInfo): FarmingWeight;
export interface FarmingWeightInfo {
	collection?: Record<string, number>;
	farmingXp?: number;
	levelCapUpgrade?: number;
	anitaBonusFarmingFortuneLevel?: number;
	minions?: string[];
	contests?: {
		collected: number;
		claimed_position?: number;
		claimed_participants?: number;
		claimed_medal?: 'bronze' | 'silver' | 'gold' | 'platinum' | 'diamond' | string;
	}[];
	pests?: Record<string, number>;
}
declare class FarmingWeight {
	collection: Record<Crop, number>;
	levelCapUpgrade: number;
	farmingXp: number;
	anitaBonusFarmingFortuneLevel: number;
	tier12MinionCount: number;
	earnedMedals: Record<'diamond' | 'platinum' | 'gold', number>;
	cropWeights: Record<Crop, number>;
	bonusSources: Record<string, number>;
	uncountedCrops: Partial<Record<Crop, number>>;
	readonly info?: FarmingWeightInfo;
	constructor(info?: FarmingWeightInfo);
	/**
	 * Expectes a dictionary of collections and amounts with the default Hypixel SkyBlock IDs
	 * @param {Record<string, number>} collections
	 * @returns {FarmingWeight}
	 */
	setCropsFromCollections(collections: Record<string, number>): FarmingWeight;
	setCrop: (crop: Crop, collection: number) => this;
	setLevelCap: (levelCap: number) => this;
	setFarmingXp: (farmingXp: number) => this;
	setAnitaBonusLevel: (anitaBonusFarmingFortuneLevel: number) => this;
	addMinions: (minions: string[]) => this;
	setEarnedMedals: ({
		diamond,
		platinum,
		gold,
	}: {
		diamond?: number | undefined;
		platinum?: number | undefined;
		gold?: number | undefined;
	}) => this;
	setTier12MinionCount: (count: number) => this;
	setContests: (contests: FarmingWeightInfo['contests']) => this;
	getWeightInfo: () => {
		totalWeight: number;
		bonusWeight: number;
		cropWeight: number;
		bonusSources: Record<string, number>;
		uncountedCrops: Partial<Record<Crop, number>>;
	};
	getBonusWeights: () => Record<string, number>;
	getCropWeights: () => Record<Crop, number>;
	calcUncountedCrops: (bestiary: Record<string, number>) => this;
	getCropWeight: (crop: Crop) => void;
}
export {};
