import type { PlayerOptions } from '../player/playeroptions.js';
import { Crop } from './crops.js';
import { ReforgeTarget } from './reforges.js';
import { Stat } from './stats.js';
import type { UpgradeCost } from './upgrades.js';
export declare enum EnchantTierProcurement {
    Normal = "normal",
    Loot = "loot",
    SelfLeveling = "selfleveling",
    UpgradeItem = "upgradeitem"
}
export interface FarmingEnchantTier {
    stats?: Partial<Record<Stat, number>>;
    computedStats?: (opt: PlayerOptions) => Partial<Record<Stat, number>>;
    computed?: Partial<Record<Stat, (opt: PlayerOptions) => number>>;
    cropComputed?: Partial<Record<Stat, (crop?: Crop, opt?: PlayerOptions) => number>>;
    procurement?: EnchantTierProcurement;
    cost?: UpgradeCost;
}
export interface FarmingEnchant {
    name: string;
    id?: string;
    alwaysInclude?: true;
    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>;
export declare const depthStriderLevels: readonly [1, 2, 3];
export type DepthStriderLevels = (typeof depthStriderLevels)[number];
