/**
 * Monetization Package
 * Diamond economy, energy refills, and time skips
 */

// Diamond Economy
export {
  awardDiamonds,
  deductDiamonds,
  getDiamondBalance,
  getDiamondTransactionHistory,
  getRewardAmount,
  canAfford,
  setDiamondBalance,
  initializePlayerDiamonds,
  clearPlayerDiamonds,
  clearAllDiamonds,
  DIAMOND_REWARDS,
  type DiamondTransaction,
  type DeductResult,
} from './diamondEconomy.js';

// Energy Refills
export {
  purchaseEnergyRefill,
  checkUnlimitedEnergy,
  getUnlimitedEnergyTimeRemaining,
  handlePurchaseEnergyRefill,
  getRefillTiers,
  clearUnlimitedEnergy,
  clearAllEnergyData,
  REFILL_TIERS,
  type RefillTier,
  type RefillResult,
} from './energyRefills.js';

// Time Skips
export {
  purchaseTimeSkip,
  handlePurchaseTimeSkip,
  getSkipTiers,
  clearAllTimeSkipData,
  SKIP_TIERS,
  type SkipTier,
  type SkipResult,
  type SkipSummary,
  type SimulatedEvent,
  type PlayerState,
} from './timeSkips.js';

// Validation & Anti-Cheat
export {
  createRateLimiter,
  checkRateLimit,
  IdempotencyManager,
  validateIAPReceipt,
  handleValidatePurchase,
  validationManager,
  DIAMOND_PACKAGES,
  type RateLimitResult,
  type TransactionData,
  type IAPValidationResult,
  type ValidatePurchaseMessage,
  type SendToClientFn,
} from './validation.js';
