import type { Crop } from '../constants/crops.js';
import { ReforgeTarget } from '../constants/reforges.js';
import type { Skill } from '../constants/skills.js';
import type { SpecialCrop } from '../constants/specialcrops.js';
import type { Stat } from '../constants/stats.js';
import type { UpgradeableInfo } from '../fortune/upgradeable.js';
export declare enum GearSlot {
    Boots = "Boots",
    Leggings = "Leggings",
    Chestplate = "Chestplate",
    Helmet = "Helmet",
    Necklace = "Necklace",
    Cloak = "Cloak",
    Belt = "Belt",
    Gloves = "Gloves"
}
export interface GearSlotInfo {
    name: string;
    startingItem: string;
    target: ReforgeTarget;
}
export declare const GEAR_SLOTS: Record<GearSlot, GearSlotInfo>;
export declare enum FarmingToolType {
    Other = "Other",
    Dicer = "Dicer",
    MathematicalHoe = "Mathematical Hoe",
    None = "None"
}
export interface ItemDefinition extends UpgradeableInfo {
    type?: FarmingToolType | ReforgeTarget;
    crop?: Crop;
    crops?: Crop[];
    slot?: GearSlot;
    special?: SpecialCrop[];
    family?: string;
    familyOrder?: number;
    contestStatsMultiplier?: number;
    skillReq?: Partial<Record<Skill, number>>;
    perLevelStats?: {
        skill: Skill;
        appliesTo?: ReforgeTarget[];
        stats: Partial<Record<Stat, number>>;
    };
}
