/**
 * Game Engine Package
 * Core game simulation logic
 */

export {
  GameEngine,
  getGameEngine,
  setGameEngine,
  type IGameStorage,
  type IGameOutput,
  type GameEvent,
  type BatchedUpdate,
} from './GameEngine.js';

export {
  initLifeSim,
  iterateGames,
  startGameLoop,
  stopGameLoop,
  processOfflineTime,
  registerPlayer,
  unregisterPlayer,
  getPlayer,
  getAllPlayers,
  createBatchedUpdate,
  type WebSocketConnection,
  type SendFunction,
  type LoopManagerOptions,
  type OfflineStats,
  type ConnectionRecord,
} from './LoopManager.js';

export {
  getIntradayActivity,
  getDailyPlan,
  decayFamiliarity,
  restoreEnergy,
  getPeakEnergy,
  updateBio,
  isSchoolDay,
  getLocationType,
  type DailyEvent,
  type Schedule,
  type Location,
} from './intradayActivity.js';
