import type { AllMoves, AllPokemon, AllTypes } from '../typings/dataTypes';
import Masterfile from './Masterfile';
export declare const sanitizePokeApiBaseStatsForCache: (baseStats: AllPokemon) => AllPokemon;
export default class PokeApi extends Masterfile {
    baseStats: AllPokemon;
    tempEvos: {
        [id: string]: AllPokemon;
    };
    types: AllTypes;
    maxPokemon: number;
    inconsistentStats: {
        [id: string]: {
            attack?: number;
            defense?: number;
            stamina?: number;
        };
    };
    moveReference: AllMoves;
    private pokemonStatsCache;
    private speciesCache;
    private inheritedMoveParentOverrides;
    private apiBaseUrl;
    constructor(baseUrl?: string);
    set moves(parsed: AllMoves);
    private isKnownMove;
    private hasExactMoves;
    private shouldFetchPlaceholderMoves;
    private buildUrl;
    private normalizeUrl;
    private buildStatMap;
    private typeNameToTypeId;
    private mapTypeIds;
    private mapNamedTypeIds;
    private resolveStructId;
    private fetchPokemonStats;
    private fetchSpecies;
    private fetchSpeciesForPokemon;
    private mapPokeApiMoves;
    private mergeMoveLists;
    private resolveInheritedParentIdentifier;
    private getInheritedMoves;
    private calculatePogoStats;
    static attack(normal: number, special: number, speed: number, nerf?: boolean): number;
    static defense(normal: number, special: number, speed: number, nerf?: boolean): number;
    static stamina(hp: number, nerf?: boolean): number;
    cp(atk: number, def: number, sta: number, cpm: number): number;
    megaLookup(id: string, type: string): string | 1 | 2 | 3 | 5;
    setMaxPokemonId(): Promise<number>;
    baseStatsApi(parsedPokemon: AllPokemon, pokeApiIds?: number[]): Promise<void>;
    extraPokemon(parsedPokemon: AllPokemon): Promise<void>;
    pokemonApi(id: string | number, unreleased?: boolean): Promise<void>;
    evoApi(evolvedPokemon: Set<number>, parsedPokemon: AllPokemon): Promise<void>;
    tempEvoApi(parsedPokemon: AllPokemon): Promise<void>;
    typesApi(): Promise<void>;
    getGenerations(): Promise<{
        [k: string]: {
            name: string;
            range: number[];
        };
    }>;
}
