import itemsData from '../../data/items.json';
import { FurnitureType, GeneralType, Tier, WeaponType } from '../types/ItemProperties';
import { Rarity } from '../types/Rarity';
import { Contract } from './contracts';
import { Event } from './events';
import { Material } from './materials';
import { Season } from './seasons';
import { WorldEvent } from './worldEvents';
export declare class Item {
    readonly id: string;
    readonly type: GeneralType | WeaponType | FurnitureType;
    readonly dateAdded: Date;
    readonly lastUpdated: Date;
    readonly tier?: Tier | undefined;
    readonly blueprint?: string | undefined;
    readonly value?: number | undefined;
    readonly weight?: number | undefined;
    readonly gearScore?: number | undefined;
    readonly projectilesPerShot?: number | undefined;
    readonly damagePerShot?: number | undefined;
    readonly rateOfFire?: number | undefined;
    readonly reloadSpeed?: number | undefined;
    readonly optimalRange?: number | undefined;
    readonly projectileSpeed?: number | undefined;
    readonly timeToTarget?: number | undefined;
    readonly required?: Map<Material, number> | undefined;
    readonly requiredRank?: string | undefined;
    readonly perks?: string[] | undefined;
    readonly rarity?: Rarity | undefined;
    readonly season?: Season | undefined;
    readonly obtainable?: string | string[] | undefined;
    readonly event?: Event | undefined;
    readonly worldEvent?: (WorldEvent | WorldEvent[]) | undefined;
    readonly armor?: number | undefined;
    readonly damageMitigation?: Record<string, number> | undefined;
    readonly contract?: Contract | undefined;
    constructor(id: string, type: GeneralType | WeaponType | FurnitureType, dateAdded: Date, lastUpdated: Date, tier?: Tier | undefined, blueprint?: string | undefined, value?: number | undefined, weight?: number | undefined, gearScore?: number | undefined, projectilesPerShot?: number | undefined, damagePerShot?: number | undefined, rateOfFire?: number | undefined, reloadSpeed?: number | undefined, optimalRange?: number | undefined, projectileSpeed?: number | undefined, timeToTarget?: number | undefined, required?: Map<Material, number> | undefined, requiredRank?: string | undefined, perks?: string[] | undefined, rarity?: Rarity | undefined, season?: Season | undefined, obtainable?: string | string[] | undefined, event?: Event | undefined, worldEvent?: (WorldEvent | WorldEvent[]) | undefined, armor?: number | undefined, damageMitigation?: Record<string, number> | undefined, contract?: Contract | undefined);
    static fromRawData(rawData: any): Item;
    static loadItems(): Record<string, Item>;
}
type Items = {
    [K in keyof typeof itemsData]: Item;
};
export declare const Items: Items;
export {};
//# sourceMappingURL=items.d.ts.map