import type { ItemType, WeaponType } from "./definitions/adventureland.js";
import type { Attribute, CharacterType, GData, GItem, ItemName, TitleName } from "./definitions/adventureland-data.js";
import type { ItemData } from "./definitions/adventureland-server.js";
export declare class Item implements ItemData, GItem {
    name: ItemName;
    expires?: string;
    l?: "l" | "s" | "x";
    level?: number;
    stat_type?: Attribute;
    g: number;
    id: ItemName;
    skin: string;
    type: ItemType;
    ability?: GItem["ability"];
    armor: number;
    attack: number;
    dex: number;
    gift: number;
    int: number;
    p?: TitleName;
    q?: number;
    range: number;
    resistance: number;
    stat: number;
    str: number;
    class?: CharacterType[];
    compound?: GItem["compound"];
    e?: number;
    upgrade?: GItem["upgrade"];
    v?: string;
    /** Set if `type` is `weapon` */
    wtype?: WeaponType;
    data?: string;
    G: GData;
    constructor(itemData: ItemData, g: GData);
    calculateGrade(): number;
    calculateMinimumCost(): number;
    /**
     * How much the player could get for selling this item to an NPC
     */
    calculateNpcValue(): number;
    /**
     * Returns the same value as the game's `calculate_item_value`
     */
    calculateValue(): number;
    /**
     * Returns true if the item is glitched, false otherwise. Glitched items give a bonus random stat.
     */
    isGlitched(): boolean;
    /**
     * Returns true if the item is locked, false otherwise. If the item is locked, you cannot sell or trade it.
     *
     * @memberof Item
     */
    isLocked(): boolean;
    /**
     * Returns true if the item is PVP marked. If you die to another player, there is a chance to lose this item to the other player.
     *
     * @memberof Item
     */
    isPVPMarked(): boolean;
}
