import { Rarity, RarityRecord } from '../constants/reforges.js';
import { Skill } from '../constants/skills.js';
import { StatsRecord } from '../constants/stats.js';
import type { FarmingPet } from '../fortune/farmingpet.js';
import { PlayerOptions } from '../player/playeroptions.js';
export declare enum FarmingPets {
    Elephant = "ELEPHANT",
    MooshroomCow = "MOOSHROOM_COW",
    Bee = "BEE",
    Rabbit = "RABBIT",
    Slug = "SLUG",
    Hedgehog = "HEDGEHOG"
}
export interface FarmingPetType {
    uuid?: string | null;
    type?: string;
    exp?: number;
    active?: boolean;
    tier?: string | Rarity | null;
    heldItem?: string | null;
    candyUsed?: number;
    skin?: string | null;
}
export declare enum FarmingPetStatType {
    Base = "base",
    Ability = "ability"
}
export interface FarmingPetAbility {
    name: string;
    exists?: (player: PlayerOptions, pet: FarmingPet) => boolean;
    computed: (player: PlayerOptions, pet: FarmingPet) => StatsRecord;
}
export interface FarmingPetInfo {
    name: string;
    wiki: string;
    maxLevel?: number;
    stats?: StatsRecord<FarmingPetStatType, FarmingPet>;
    perLevelStats?: StatsRecord<FarmingPetStatType, FarmingPet>;
    perRarityLevelStats?: RarityRecord<StatsRecord<FarmingPetStatType, FarmingPet>>;
    perStatStats?: StatsRecord<FarmingPetStatType>;
    abilities?: FarmingPetAbility[];
}
export declare const FARMING_PETS: Record<FarmingPets, FarmingPetInfo>;
export interface FarmingPetItemInfo {
    name: string;
    wiki: string;
    stats?: StatsRecord<PlayerOptions>;
    skillReq?: Partial<Record<Skill, number>>;
}
export declare const FARMING_PET_ITEMS: Record<string, FarmingPetItemInfo>;
export declare const PET_RARITY_OFFSETS: Partial<Record<Rarity, number>>;
export declare const PET_LEVELS: number[];
