import type { FarmingPet } from '../fortune/farmingpet';
import { PlayerOptions } from '../player/player';
import { Rarity, RarityRecord } from './reforges';
import { Skill } from './skills';
import { StatsRecord } from './stats';
export declare enum FarmingPets {
	Elephant = 'ELEPHANT',
	MooshroomCow = 'MOOSHROOM_COW',
	Bee = 'BEE',
	Rabbit = 'RABBIT',
	Slug = 'SLUG',
	TRex = 'TYRANNOSAURUS',
}
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;
	stats?: StatsRecord<FarmingPetStatType>;
	perLevelStats?: StatsRecord<FarmingPetStatType>;
	perRarityLevelStats?: RarityRecord<StatsRecord<FarmingPetStatType>>;
	perStatStats?: StatsRecord<FarmingPetStatType>;
	abilities?: FarmingPetAbility[];
}
export declare const FARMING_PETS: Record<FarmingPets, FarmingPetInfo>;
export interface FarmingPetItemInfo {
	name: string;
	wiki: string;
	stats?: StatsRecord;
	skillReq?: Partial<Record<Skill, number>>;
}
export declare const FARMING_PET_ITEMS: Record<string, FarmingPetItemInfo>;
export declare const PET_RARITY_OFFSETS: {
	Common: number;
	Uncommon: number;
	Rare: number;
	Epic: number;
	Legendary: number;
	Mythic: number;
};
export declare const PET_LEVELS: number[];
