export { BaseArenaEnvironment, type SimulationTransition } from "./base.ts";
export { arenaChecksum, canonicalJson } from "./checksum.ts";
export { ArenaRandom, deriveArenaSeed, normalizeArenaSeed } from "./random.ts";
export {
  ArenaScenarioRegistry,
  type ArenaScenarioDefinition,
  type ScenarioSampler,
} from "./scenarios.ts";
export { ARENA_SOURCE_HASHES } from "./sourceHashes.ts";
export {
  ARENA_API_VERSION,
  type ArenaEnvironment,
  type ArenaInfo,
  type ArenaManifest,
  type ArenaReplayResult,
  type ArenaResetResult,
  type ArenaScenario,
  type ArenaScenarioRequest,
  type ArenaSnapshot,
  type ArenaSourceHashes,
  type ArenaSplit,
  type ArenaStepResult,
  type ArenaTraceEnvelope,
  type ArenaTraceStep,
} from "./types.ts";

export {
  DRIVE_101_MANIFEST,
  DRIVE_101_SCENARIOS,
  DRIVE_INACTION,
  Drive101Environment,
  driveScriptedBaseline,
  type DriveAction,
  type DriveObservation,
  type DriveReward,
} from "./drive101.ts";
export {
  OFFICE_NAV_INACTION,
  OFFICE_NAV_MANIFEST,
  OFFICE_NAV_SCENARIOS,
  OfficeNavEnvironment,
  officeNavScriptedBaseline,
  type OfficeNavAction,
  type OfficeNavObservation,
  type OfficeNavReward,
} from "./officeNav.ts";
export {
  OFFICE_JOBS_INACTION,
  OFFICE_JOBS_MANIFEST,
  OFFICE_JOBS_SCENARIOS,
  OfficeJobsEnvironment,
  officeJobsScriptedBaseline,
  type OfficeJobsAction,
  type OfficeJobsObservation,
  type OfficeJobsReward,
} from "./officeJobs.ts";
export {
  CROW_NAV_INACTION,
  CROW_NAV_MANIFEST,
  CROW_NAV_SCENARIOS,
  CrowNavEnvironment,
  crowNavScriptedBaseline,
  type CrowNavAction,
  type CrowNavObservation,
  type CrowNavReward,
} from "./crowNav.ts";
export {
  CALIFORNIA_FLIGHT_INACTION,
  CALIFORNIA_FLIGHT_MANIFEST,
  CALIFORNIA_FLIGHT_SCENARIOS,
  CaliforniaFlightEnvironment,
  californiaFlightScriptedBaseline,
  type CaliforniaFlightAction,
  type CaliforniaFlightObservation,
  type CaliforniaFlightReward,
} from "./californiaFlight.ts";

import { CALIFORNIA_FLIGHT_MANIFEST } from "./californiaFlight.ts";
import { CROW_NAV_MANIFEST } from "./crowNav.ts";
import { DRIVE_101_MANIFEST } from "./drive101.ts";
import { OFFICE_NAV_MANIFEST } from "./officeNav.ts";
import { OFFICE_JOBS_MANIFEST } from "./officeJobs.ts";

/** Machine-readable public environment catalogue. */
export const ARENA_MANIFESTS = Object.freeze([
  DRIVE_101_MANIFEST,
  OFFICE_NAV_MANIFEST,
  OFFICE_JOBS_MANIFEST,
  CROW_NAV_MANIFEST,
  CALIFORNIA_FLIGHT_MANIFEST,
]);
