import type * as I from './data/interface'; import type { State } from './state'; export declare class Pokemon implements State.Pokemon { gen: I.Generation; name: I.SpeciesName; species: I.Specie; types: [I.TypeName] | [I.TypeName, I.TypeName]; weightkg: number; level: number; gender?: I.GenderName; ability?: I.AbilityName; abilityOn?: boolean; isDynamaxed?: boolean | 'gmax'; dynamaxLevel?: number; alliesFainted?: number; boostedStat?: I.StatIDExceptHP | 'auto'; item?: I.ItemName; disabledItem?: I.ItemName; teraType?: I.TypeName; nature: I.NatureName; ivs: I.StatsTable; evs: I.StatsTable; boosts: I.StatsTable; rawStats: I.StatsTable; stats: I.StatsTable; customStats?: Partial; originalCurHP: number; status: I.StatusName | ''; toxicCounter: number; moves: I.MoveName[]; constructor(gen: I.Generation, name: string, options?: Partial & { curHP?: number; ivs?: Partial & { spc?: number; }; evs?: Partial & { spc?: number; }; boosts?: Partial & { spc?: number; }; customStats?: Partial & { spc?: number; }; }); maxHP(original?: boolean): number; curHP(original?: boolean): number; hasAbility(...abilities: string[]): boolean; hasItem(...items: string[]): boolean; hasStatus(...statuses: I.StatusName[]): boolean; hasType(...types: I.TypeName[]): boolean; hasOriginalType(...types: I.TypeName[]): boolean; named(...names: string[]): boolean; clone(): Pokemon; private calcStat; static getForme(gen: I.Generation, speciesName: string, item?: I.ItemName, moveName?: I.MoveName): string; private static withDefault; }