import { PetData } from '../types/pet'; import { PetSpecies, MoodState } from '../types/species'; import { PetStats, ActionResult } from '../types/stats'; import { TimeSyncResult } from '../types/time'; import { Database } from './database'; import { Inventory } from './inventory'; import { CoinReason } from './shop'; import { GitProcessResult } from '../types/git'; export declare class Pet { private data; private db; private timeDecay; private synced; private inventory; private constructor(); static loadOrCreate(db: Database): Promise; static createNew(db: Database, name: string, species: PetSpecies): PetData; feed(): ActionResult; play(): ActionResult; clean(): ActionResult; sleep(): ActionResult; heal(): ActionResult; getData(): Readonly; getCurrentMood(): MoodState; getLevelProgress(): number; getXPToNextLevel(): number; getLevelTitle(): string; /** * Sync time and apply stat decay based on elapsed time * Returns the sync result if changes were applied, null if no significant time passed */ syncTime(): TimeSyncResult | null; /** * Get hours passed since last update */ getHoursSinceUpdate(): number; /** * Check if pet needs care (has critical stats) */ needsCare(): boolean; save(): void; getInventory(): Inventory; useItem(itemId: string): ActionResult; addItem(itemId: string, quantity?: number): void; hasItem(itemId: string): boolean; /** * Get current coin balance */ getCoins(): number; /** * Earn coins from an activity * @param amount - Number of coins earned * @param reason - Source of coins (feed, play, git_commit, etc.) */ earnCoins(amount: number, reason: CoinReason): void; /** * Spend coins (returns true if successful) * @param amount - Number of coins to spend */ spendCoins(amount: number): boolean; /** * Get coins earned today */ getTodayCoins(): number; /** * Get total lifetime coins earned */ getTotalCoinsEarned(): number; /** * Get current Git streak */ getGitStreak(): number; /** * Get total Git commits rewarded */ getGitCommitCount(): number; /** * Get last rewarded commit hash */ getLastGitCommit(): string | undefined; /** * Check and reward new Git commits * Returns a GitProcessResult with details of what was rewarded */ checkGitCommits(): Promise; /** * Process a single Git commit and return the reward details */ private processGitCommit; /** * Calculate stat bonuses from Git commits * Philosophy: Writing code = being with your pet */ private calculateGitStatBonus; /** * Update Git streak based on commit dates */ private updateGitStreak; /** * Calculate streak bonus coins */ private calculateStreakBonus; /** * Format date as YYYY-MM-DD */ private formatDate; /** * Get auto-care suggestions based on pet state */ getSuggestions(): string[]; /** * Apply stat change directly (for Git commit bonuses, etc.) * This bypasses the normal action flow for internal stat adjustments */ applyStatDirectly(stat: keyof PetStats, value: number): void; private performAction; private applyStatChanges; private addExperience; private calculateMood; private updateMood; private updateInteraction; } //# sourceMappingURL=pet.d.ts.map