import type { Crop } from '../constants/crops.js';
import { Rarity, type Reforge, type ReforgeTarget, type ReforgeTier } from '../constants/reforges.js';
import { Stat } from '../constants/stats.js';
import type { FortuneSourceProgress, FortuneUpgrade, StatQueryOptions, Upgrade } from '../constants/upgrades.js';
import type { PlayerOptions } from '../player/playeroptions.js';
import type { EliteItemDto } from './item.js';
import type { Upgradeable, UpgradeableInfo } from './upgradeable.js';
export declare class UpgradeableBase implements Upgradeable {
    item: EliteItemDto;
    info: UpgradeableInfo;
    private _type?;
    get type(): ReforgeTarget | undefined;
    set type(value: ReforgeTarget | undefined);
    crop?: Crop;
    options?: PlayerOptions;
    recombobulated: boolean;
    rarity: Rarity;
    reforge?: Reforge | undefined;
    reforgeStats?: ReforgeTier | undefined;
    fortune: number;
    private items;
    constructor(options: {
        item: EliteItemDto;
        options?: PlayerOptions;
        items: Partial<Record<string, UpgradeableInfo>>;
    });
    getFortune(): number;
    getStat(stat: Stat): number;
    getStats(): Partial<Record<Stat, number>>;
    getCalculatedStats(): Partial<Record<Stat, number>>;
    getUpgrades(options?: StatQueryOptions): FortuneUpgrade[];
    getProgress(_stats?: Stat[], _zeroed?: boolean): FortuneSourceProgress[];
    getItemUpgrade(): Upgrade | undefined;
    getNextItemUpgrade(): {
        upgrade: Upgrade;
        info: UpgradeableInfo;
    } | undefined;
    getLastItemUpgrade(): {
        upgrade: Upgrade;
        info: UpgradeableInfo;
    } | undefined;
}
