import cosmeticsData from '../../data/cosmetics.json';
import { CosmeticEffect, PlayerAppearanceType, PlayerOutfitType, ShipCosmeticType } from '../types/CosmeticProperties';
import { Rarity } from '../types/Rarity';
import { Contract } from './contracts';
import { Event } from './events';
import { Item } from './items';
import { Material } from './materials';
import { Season } from './seasons';
import { Set } from './sets';
import { WorldEvent } from './worldEvents';
export declare class Cosmetic {
    readonly id: string;
    readonly type: ShipCosmeticType | PlayerOutfitType | PlayerAppearanceType;
    readonly dateAdded: Date;
    readonly lastUpdated: Date;
    readonly rarity?: Rarity | undefined;
    readonly tier?: number | undefined;
    readonly set?: Set | undefined;
    readonly obtainable?: (string | Item | Array<string | Item> | Array<Array<string | Item> | Item | string>) | undefined;
    readonly pieces?: Array<ShipCosmeticType> | undefined;
    readonly effect?: (CosmeticEffect | CosmeticEffect[]) | undefined;
    readonly season?: Season | undefined;
    readonly contract?: Contract | undefined;
    basic?: Cosmetic | undefined;
    upgrades?: Cosmetic[] | undefined;
    readonly required?: Map<Material, number> | undefined;
    readonly requiredRank?: string | undefined;
    readonly bounty?: string | undefined;
    readonly event?: Event | undefined;
    readonly worldEvent?: (WorldEvent | WorldEvent[]) | undefined;
    constructor(id: string, type: ShipCosmeticType | PlayerOutfitType | PlayerAppearanceType, dateAdded: Date, lastUpdated: Date, rarity?: Rarity | undefined, tier?: number | undefined, set?: Set | undefined, obtainable?: (string | Item | Array<string | Item> | Array<Array<string | Item> | Item | string>) | undefined, pieces?: Array<ShipCosmeticType> | undefined, effect?: (CosmeticEffect | CosmeticEffect[]) | undefined, season?: Season | undefined, contract?: Contract | undefined, basic?: Cosmetic | undefined, upgrades?: Cosmetic[] | undefined, required?: Map<Material, number> | undefined, requiredRank?: string | undefined, bounty?: string | undefined, event?: Event | undefined, worldEvent?: (WorldEvent | WorldEvent[]) | undefined);
    static fromRawData(rawData: any): Cosmetic;
    static updateCosmeticWithUpgrades(key: string, rawData: any, cosmetics: Record<string, Cosmetic>): void;
    static loadCosmetics(): Record<string, Cosmetic>;
}
type Cosmetics = {
    [K in keyof typeof cosmeticsData]: Cosmetic;
};
export declare const Cosmetics: Cosmetics;
export {};
//# sourceMappingURL=cosmetics.d.ts.map