export interface LoadoutItemEntry { item: string; count: number; slot?: number; } export interface LoadoutDef { inventories?: Record; stats?: Record; economy?: Record; unlocks?: string[]; } export interface LoadoutInventoryTransaction { put(inventoryId: string, itemId: string, count: number, slot?: number): { reason: string; } | null; commit(): void; } export interface LoadoutDeps { inventory: { begin(userId: string): LoadoutInventoryTransaction; }; stats: { seed(userId: string, statId: string, pool: { current: number; max?: number; min?: number; }): void; }; economy: { grant(userId: string, currencyId: string, amount: number): void; }; unlocks: { grant(userId: string, unlockId: string): void; }; } export interface Loadouts { register(defs: Record): void; has(loadoutId: string): boolean; applyLoadout(userId: string, loadoutId: string): { reason: string; } | null; } /** * Save, name, and swap equipment loadouts. * * @capability loadouts save and swap named equipment loadouts */ export declare function createLoadouts(deps: LoadoutDeps): Loadouts;