import { ItemDefinition, ItemType } from '../types/items'; export interface ShopItem { item: ItemDefinition; price: number; category: string; } export interface PurchaseResult { success: boolean; message: string; coinsSpent: number; itemPurchased?: ItemDefinition; remainingCoins?: number; } /** * Coin earning reasons - for tracking where coins come from * This helps with future statistics and programming reward integration */ export declare enum CoinReason { FEED = "feed", PLAY = "play", CLEAN = "clean", HEAL = "heal", SLEEP = "sleep", LEVEL_UP = "level_up", GIT_COMMIT_NORMAL = "git_commit_normal", GIT_COMMIT_FEATURE = "git_commit_feature", GIT_COMMIT_BUG_FIX = "git_commit_bug_fix", GIT_COMMIT_REFACTOR = "git_commit_refactor", GIT_NIGHT_BONUS = "git_night_bonus", GIT_LARGE_BONUS = "git_large_bonus", GIT_STREAK_DAILY = "git_streak_daily", GIT_STREAK_7 = "git_streak_7", GIT_STREAK_30 = "git_streak_30", GIT_COMMIT = "git_commit", CODE_SESSION = "code_session", CHALLENGE_COMPLETE = "challenge_complete", STREAK_BONUS = "streak_bonus", GIFT = "gift", REFUND = "refund" } /** * Shop class for managing item purchases */ export declare class Shop { private shopItems; constructor(); /** * Initialize shop with all purchasable items * Uses the price defined in item definitions */ private initializeShop; private getCategoryName; /** * Get all shop items, optionally filtered by category */ getShopItems(category?: ItemType): ShopItem[]; /** * Get shop items grouped by category */ getShopItemsByCategory(): Map; /** * Get a specific shop item by ID */ getShopItem(itemId: string): ShopItem | undefined; /** * Get the price of an item */ getItemPrice(itemId: string): number | undefined; /** * Check if a player can afford an item */ canAfford(itemId: string, playerCoins: number): boolean; /** * Calculate how many of an item a player can afford */ maxAffordable(itemId: string, playerCoins: number): number; /** * Get coin reward for an action * These are temporary small rewards for basic interactions * In the future, most coins will come from programming activities */ static getCoinReward(reason: CoinReason): number; /** * Format coins for display */ static formatCoins(amount: number): string; /** * Get a description of what coins can be spent on */ static getShopDescription(): string; } export declare const getShop: () => Shop; //# sourceMappingURL=shop.d.ts.map