import { achievementModule } from "./achievement"
import { adminModule } from "./admin"
import { aiModule } from "./ai"
import { boostsModule } from "./boosts"
import { categoriesModule } from "./categories"
import { collectionsModule } from "./collections"
import { dataModule } from "./data"
import { discoverModule } from "./discover"
import { entriesModule } from "./entries"
import { feedsModule } from "./feeds"
import { inboxesModule } from "./inboxes"
import { invitationsModule } from "./invitations"
import { listsModule } from "./lists"
import { mcpModule } from "./mcp"
import { messagingModule } from "./messaging"
import { probesModule } from "./probes"
import { profilesModule } from "./profiles"
import { readsModule } from "./reads"
import { referralsModule } from "./referrals"
import { rsshubModule } from "./rsshub"
import { settingsModule } from "./settings"
import { statusModule } from "./status"
import { subscriptionsModule } from "./subscriptions"
import { trendingModule } from "./trending"
import { uploadModule } from "./upload"
import { walletsModule } from "./wallets"

/**
 * Central module registry
 * All modules now use the new unified system
 */
export const moduleRegistry = {
  achievement: achievementModule,
  admin: adminModule,
  ai: aiModule,
  boosts: boostsModule,
  categories: categoriesModule,
  collections: collectionsModule,
  data: dataModule,
  discover: discoverModule,
  entries: entriesModule,
  feeds: feedsModule,
  inboxes: inboxesModule,
  invitations: invitationsModule,
  lists: listsModule,
  mcp: mcpModule,
  messaging: messagingModule,
  profiles: profilesModule,
  probes: probesModule,
  reads: readsModule,
  referrals: referralsModule,
  rsshub: rsshubModule,
  settings: settingsModule,
  status: statusModule,
  subscriptions: subscriptionsModule,
  trending: trendingModule,
  upload: uploadModule,
  wallets: walletsModule,
} as const

/**
 * Type definition for the module registry
 */
export type ModuleRegistry = typeof moduleRegistry

/**
 * Generate API types from the registry
 */
export type ModuleAPIs = {
  [K in keyof ModuleRegistry]: ModuleRegistry[K]["api"]
}
