import type { Rarity } from '../constants/reforges.js';
import { Stat } from '../constants/stats.js';
import type { FortuneSourceProgress } from '../constants/upgrades.js';
import type { Effect, EffectEnvironment } from '../effects/types.js';
import { type FarmingAccessoryInfo } from '../items/accessories.js';
import type { PlayerOptions } from '../player/playeroptions.js';
import type { EliteItemDto } from './item.js';
import type { UpgradeableInfo } from './upgradeable.js';
import { UpgradeableBase } from './upgradeablebase.js';
export declare class FarmingAccessory extends UpgradeableBase {
    readonly item: EliteItemDto;
    readonly info: FarmingAccessoryInfo;
    readonly rarity: Rarity;
    readonly recombobulated: boolean;
    fortune: number;
    fortuneBreakdown: Record<string, number>;
    options?: PlayerOptions;
    constructor(item: EliteItemDto, options?: PlayerOptions);
    getProgress(stats?: Stat[], zeroed?: boolean): FortuneSourceProgress[];
    setOptions(options: PlayerOptions): void;
    getStat(stat: Stat): number;
    /**
     * Returns the declarative `Effect[]` representation of every contribution
     * this accessory makes. Base stats, computed stats, and (halved) gem
     * stats.
     */
    getEffects(_env: EffectEnvironment): Effect[];
    getFortune(): number;
    static isValid(item: EliteItemDto): boolean;
    static fromArray(items: EliteItemDto[], options?: PlayerOptions): FarmingAccessory[];
    static fakeItem(info: UpgradeableInfo, options?: PlayerOptions): FarmingAccessory | undefined;
}
