import { FarmingPlayer } from '../player/player.js';
import { PlayerOptions } from '../player/playeroptions.js';
import { Crop } from './crops.js';
import { ReforgeTarget } from './reforges.js';
import { Stat } from './stats.js';
export declare enum EnchantTierProcurement {
    Normal = "normal",
    Loot = "loot",
    SelfLeveling = "selfleveling",
    UpgradeItem = "upgradeitem"
}
export interface FarmingEnchantTier {
    stats?: Partial<Record<Stat, number>>;
    computedStats?: (opt: FarmingPlayer) => Partial<Record<Stat, number>>;
    computed?: Partial<Record<Stat, (opt: PlayerOptions) => number>>;
    cropComputed?: Partial<Record<Stat, (crop: Crop, opt?: PlayerOptions) => number>>;
    procurement?: EnchantTierProcurement;
}
export interface FarmingEnchant {
    name: string;
    appliesTo: readonly ReforgeTarget[];
    wiki: string;
    minLevel: number;
    maxLevel: number;
    cropSpecific?: Crop;
    levels: Record<number, FarmingEnchantTier>;
    computedLevels?: (opt: PlayerOptions) => Record<number, FarmingEnchantTier>;
    maxStats?: Partial<Record<Stat, number>>;
    levelRequirement?: number;
}
export declare const FARMING_ENCHANTS: Record<string, FarmingEnchant>;
