import { RUNE_QUALITIES, RUNE_SETS, RUNE_EFFECTS } from './constants';
export type RuneSlot = 1 | 2 | 3 | 4 | 5 | 6;
export type RuneGrade = 1 | 2 | 3 | 4 | 5 | 6;
export type RuneSetId = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 11 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 99;
export type RuneSet = (typeof RUNE_SETS)[number];
export type RuneEffectId = 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 12;
export type RuneEffect = (typeof RUNE_EFFECTS)[number];
export type RuneQuality = (typeof RUNE_QUALITIES)[number];
export type RuneStat = {
    effect: RuneEffect;
    value: number;
};
export type Rune = {
    isAncient: boolean;
    isEquipped?: boolean;
    slot: RuneSlot;
    grade: RuneGrade;
    quality: RuneQuality;
    set: RuneSet;
    level: number;
    mainStat: RuneStat;
    innateStat: RuneStat | null;
    subStats: RuneStat[];
};
export type SWRune = {
    class: number;
    rank: RuneGrade;
    set_id: RuneSetId;
    slot_no: RuneSlot;
    upgrade_curr: number;
    pri_eff: [number, number];
    prefix_eff: [number, number];
    sec_eff: [number, number, number, number][];
    occupied_id: number;
};
export type RuneGenerationParams = {
    isAncient?: boolean;
    set?: RuneSet;
    slot?: RuneSlot;
    grade?: RuneGrade;
    quality?: RuneQuality;
    mainEffect?: RuneEffect;
    innateEffect?: boolean | RuneEffect;
};
export declare function generate(options?: RuneGenerationParams): Rune;
export declare function upgrade(rune: Rune): Rune;
//# sourceMappingURL=rune.d.ts.map