import { Dimension, type GameMode } from './WorldInfo.js'; /** One aggregated inventory item id, summed across every stack of it. */ export interface InventoryItemSummary { id: string; count: number; } /** Inventory summary: how many slots are occupied and totals per item id. */ export interface PlayerInventorySummary { slotsUsed: number; /** Sorted by count desc. */ items: InventoryItemSummary[]; } /** * Player NBT data value object (#528, Phase 3). * * Immutable snapshot of a player's `playerdata/.dat` — last known * position/dimension/vitals plus game mode and inventory summary. Parsing * is done by the shared `parsePlayerDat` (also used by #525's world player * locations); this VO just wraps the result for the player detail panel. */ export interface PlayerDataProps { x: number; y: number; z: number; dimension: Dimension; health?: number; food?: number; xpLevel?: number; gameMode: GameMode; inventory: PlayerInventorySummary; } export interface PlayerDataJson { x: number; y: number; z: number; /** The Dimension enum's string value (e.g. `'nether'`). */ dimension: string; health?: number; food?: number; xpLevel?: number; gameMode: GameMode; inventory: PlayerInventorySummary; } export declare class PlayerData { private readonly props; private constructor(); static create(props: PlayerDataProps): PlayerData; get x(): number; get y(): number; get z(): number; get dimension(): Dimension; get health(): number | undefined; get food(): number | undefined; get xpLevel(): number | undefined; get gameMode(): GameMode; get inventory(): PlayerInventorySummary; toJSON(): PlayerDataJson; } //# sourceMappingURL=PlayerData.d.ts.map