import { EnkaClient } from "../../client/EnkaClient";
import { ImageAssets } from "../assets/ImageAssets";
import { TextAssets } from "../assets/TextAssets";
import { WeaponRefinement } from "./WeaponRefinement";
import { StatProperty } from "../StatProperty";
import { WeaponAscension } from "./WeaponAscension";
import { ExcelJsonObject } from "../../client/ExcelTransformer";
export type WeaponType = "WEAPON_SWORD_ONE_HAND" | "WEAPON_CLAYMORE" | "WEAPON_POLE" | "WEAPON_CATALYST" | "WEAPON_BOW";
export declare class WeaponData {
    readonly enka: EnkaClient;
    readonly id: number;
    readonly name: TextAssets;
    readonly description: TextAssets;
    readonly icon: ImageAssets;
    readonly awakenIcon: ImageAssets;
    readonly splashImage: ImageAssets;
    readonly stars: number;
    readonly weaponType: WeaponType;
    readonly weaponTypeName: TextAssets;
    readonly refinements: WeaponRefinement[];
    readonly _data: ExcelJsonObject;
    readonly _nameId: string;
    readonly _weaponTypeData: ExcelJsonObject;
    constructor(data: ExcelJsonObject, enka: EnkaClient);
    /**
     * @param ascension ascension level 0-6 for 3-5 stars, and 0-4 for 1-2 stars.
     */
    getAscensionData(ascension: number): WeaponAscension;
    /**
     * @param ascension ascension level 0-6 for 3-5 stars, and 0-4 for 1-2 stars.
     * @param level weapon level 1-90 for 3-5 stars, and 1-70 for 1-2 stars.
     */
    getStats(ascension: number, level: number): StatProperty[];
    static getById(id: number, enka: EnkaClient): WeaponData;
}
