import { JsonObject } from "config_file.js";
import { EnkaClient } from "../../client/EnkaClient";
import { StatProperty } from "../StatProperty";
import { WeaponData } from "./WeaponData";
import { WeaponRefinement } from "./WeaponRefinement";
import { IGOODComponentResolvable } from "../good/IGOODResolvable";
import { CharacterKey, IWeapon } from "../good/GOOD";
export declare class Weapon implements IGOODComponentResolvable<IWeapon> {
    readonly enka: EnkaClient;
    readonly weaponData: WeaponData;
    readonly refinement: WeaponRefinement | null;
    readonly refinementRank: number;
    readonly level: number;
    readonly ascension: number;
    readonly maxLevel: number;
    readonly isAwaken: boolean;
    readonly weaponStats: StatProperty[];
    /** The name of character who has this weapon for the GOOD. */
    location: CharacterKey | null;
    readonly _data: JsonObject;
    constructor(data: JsonObject, enka: EnkaClient);
    /** `lock` is always false since enka.network cannot get the lock state from the game. */
    toGOOD(): IWeapon;
}
