import { Crop } from '../constants/crops.js';
import { FarmingAccessory } from '../fortune/farmingaccessory.js';
import { ArmorSet, FarmingArmor } from '../fortune/farmingarmor.js';
import { FarmingEquipment } from '../fortune/farmingequipment.js';
import { FarmingPet } from '../fortune/farmingpet.js';
import { FarmingTool } from '../fortune/farmingtool.js';
import { FarmingWeightInfo } from '../weight/weightcalc.js';
import type { PlayerOptions } from './playeroptions.js';
export declare function createFarmingPlayer(options: PlayerOptions): FarmingPlayer;
export declare class FarmingPlayer {
    options: PlayerOptions;
    permFortune: number;
    tempFortune: number;
    get fortune(): number;
    breakdown: Record<string, number>;
    tempFortuneBreakdown: Record<string, number>;
    tools: FarmingTool[];
    armor: FarmingArmor[];
    armorSet: ArmorSet;
    equipment: FarmingEquipment[];
    accessories: FarmingAccessory[];
    activeAccessories: FarmingAccessory[];
    pets: FarmingPet[];
    selectedTool?: FarmingTool;
    selectedPet?: FarmingPet;
    constructor(options: PlayerOptions);
    changeArmor(armor: FarmingArmor[]): void;
    selectTool(tool: FarmingTool): void;
    selectPet(pet: FarmingPet): void;
    setStrength(strength: number): void;
    getProgress(): import("../index.js").FortuneSourceProgress[];
    getGeneralFortune(): number;
    getTempFortune(): number;
    getCropFortune(crop: Crop, tool?: FarmingTool | undefined): {
        fortune: number;
        breakdown: Record<string, number>;
    };
    getCropProgress(crop: Crop): import("../index.js").FortuneSourceProgress[];
    getWeightCalc(info?: FarmingWeightInfo): {
        collection: Record<Crop, number>;
        levelCapUpgrade: number;
        farmingXp: number;
        anitaBonusFarmingFortuneLevel: number;
        tier12MinionCount: number;
        earnedMedals: Record<"gold" | "platinum" | "diamond", number>;
        cropWeights: Record<Crop, number>;
        bonusSources: Record<string, number>;
        uncountedCrops: Partial<Record<Crop, number>>;
        readonly info?: FarmingWeightInfo | undefined;
        setCropsFromCollections(collections: Record<string, number>): any;
        setCrop: (crop: Crop, collection: number) => any;
        setLevelCap: (levelCap: number) => any;
        setFarmingXp: (farmingXp: number) => any;
        setAnitaBonusLevel: (anitaBonusFarmingFortuneLevel: number) => any;
        addMinions: (minions: string[]) => any;
        setEarnedMedals: ({ diamond, platinum, gold }: {
            diamond?: number | undefined;
            platinum?: number | undefined;
            gold?: number | undefined;
        }) => any;
        setTier12MinionCount: (count: number) => any;
        setContests: (contests: {
            collected: number;
            claimed_position?: number | undefined;
            claimed_participants?: number | undefined;
            claimed_medal?: string | undefined;
        }[] | undefined) => any;
        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>) => any;
        getCropWeight: (crop: Crop) => void;
    };
    getBestTool(crop: Crop): FarmingTool | undefined;
    getSelectedCropTool(crop: Crop): FarmingTool | undefined;
}
export interface JacobFarmingContest {
    crop: Crop;
    timestamp: number;
    collected: number;
    position?: number;
    participants?: number;
    medal?: number;
}
