/** * InventorySystem.ts * * Item inventory: slots, stacking, weight limits, * categories, filters, transfer, and sorting. * * @module gameplay */ export type ItemCategory = 'weapon' | 'armor' | 'consumable' | 'material' | 'quest' | 'misc'; export type ItemRarity = 'common' | 'uncommon' | 'rare' | 'epic' | 'legendary'; export interface ItemDef { id: string; name: string; category: ItemCategory; rarity: ItemRarity; weight: number; maxStack: number; value: number; properties: Record; } export interface InventorySlot { item: ItemDef; quantity: number; slotIndex: number; } export declare class InventorySystem { private slots; private maxSlots; private maxWeight; private currentWeight; constructor(maxSlots?: number, maxWeight?: number); addItem(item: ItemDef, quantity?: number): { added: number; remaining: number; }; removeItem(itemId: string, quantity?: number): number; transfer(target: InventorySystem, itemId: string, quantity?: number): number; private findItemDef; getSlot(index: number): InventorySlot | undefined; getSlotCount(): number; getMaxSlots(): number; getCurrentWeight(): number; getMaxWeight(): number; isFull(): boolean; getItemCount(itemId: string): number; hasItem(itemId: string, quantity?: number): boolean; getByCategory(category: ItemCategory): InventorySlot[]; getAllItems(): InventorySlot[]; sort(by?: 'name' | 'rarity' | 'category' | 'weight'): void; private getNextFreeSlot; } //# sourceMappingURL=InventorySystem.d.ts.map