import type { Rarity, Reforge, ReforgeTarget, ReforgeTier, ReforgeTiers } from '../../constants/reforge-types.js';
import { Stat } from '../../constants/stats.js';
import type { Effect } from '../../effects/types.js';
type ReforgeDefinition = Omit<Reforge, 'id'>;
export declare abstract class BaseReforge implements Reforge {
    readonly id: string;
    readonly name: string;
    readonly wiki: string;
    readonly stone?: Reforge['stone'];
    readonly appliesTo: ReforgeTarget[];
    readonly tiers: Partial<ReforgeTiers>;
    readonly priority?: boolean;
    protected constructor(id: string, definition: ReforgeDefinition);
    getTier(rarity: Rarity): ReforgeTier | undefined;
    getEffects(rarity: Rarity, sourceName?: string): Effect[];
    protected statsToEffects(stats: Partial<Record<Stat, number>>, sourceName?: string): Effect[];
}
export {};
