export declare type StatName = 'hp' | 'atk' | 'def' | 'spa' | 'spd' | 'spe'; export type StatsTable = {[stat in StatName]: T}; export interface PokemonSet { name: string; species: T; item: T; ability: T; moves: T[]; nature: T; teraType: string; gender: string; evs: StatsTable; ivs: StatsTable; level: number; shiny?: boolean; happiness?: number; pokeball?: T; hpType?: string; } export declare type DeepPartial = { [P in keyof T]?: T[P] extends Array ? Array> : DeepPartial; }; export interface GenerationData { [formatid: string]: FormatData; } export interface FormatData { [source: string]: { [speciesid: string]: { [name: string]: DeepPartial; }; }; } export type GenerationNum = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9; export type Generation = {num: GenerationNum}; export declare function forGen(gen: Generation | GenerationNum): Promise | undefined; export declare function forFormat(format: string): Promise | undefined; export {};