import { Stats } from './stats.types';
import { StatusEffect } from './combat.types';
export type ItemRarity = 'common' | 'uncommon' | 'rare' | 'epic' | 'legendary';
export type EquipmentSlot = 'weapon' | 'ring' | 'necklace';
export type ItemType = 'weapon' | 'armor' | 'consumable' | 'material' | 'key';
export interface ItemEffect {
    trigger: 'onUse' | 'onEquip' | 'onHit' | 'onKill';
    effect: StatusEffect;
    chance?: number;
}
export interface Item {
    id: string;
    name: string;
    description: string;
    type: ItemType;
    rarity: ItemRarity;
    level: number;
    stats?: Partial<Stats>;
    effects?: ItemEffect[];
    price: number;
    stackable: boolean;
    maxStack?: number;
}
export interface Equipment extends Item {
    slot: EquipmentSlot;
    durability?: number;
    requirements?: {
        level?: number;
        stats?: Partial<Stats>;
    };
}
export interface LootTable {
    id: string;
    entries: LootEntry[];
    guaranteedDrops?: LootEntry[];
    bonusRolls?: {
        condition: string;
        rolls: number;
    }[];
}
export interface LootEntry {
    item: string;
    weight: number;
    quantity: {
        min: number;
        max: number;
    };
    conditions?: {
        playerLevel?: number;
        dungeonLevel?: number;
        chance?: number;
    };
}
//# sourceMappingURL=item.types.d.ts.map