export { ProjectState, type PhaseStatus } from "./project-state.js";
export {
  loadProject,
  writeTicket,
  writeTicketUnlocked,
  writeIssue,
  writeIssueUnlocked,
  writeNote,
  writeNoteUnlocked,
  writeRoadmap,
  writeRoadmapUnlocked,
  writeConfig,
  deleteTicket,
  deleteIssue,
  deleteNote,
  withProjectLock,
  runTransaction,
  runTransactionUnlocked,
  sortKeysDeep,
  serializeJSON,
  atomicWrite,
  guardPath,
  type LoadOptions,
  type LoadResult,
  type WithProjectLockOptions,
} from "./project-loader.js";
export { discoverProjectRoot } from "./project-root-discovery.js";
export {
  listHandovers,
  readHandover,
  extractHandoverDate,
  extractHandoverTitle,
} from "./handover-parser.js";
export {
  ProjectLoaderError,
  CURRENT_SCHEMA_VERSION,
  INTEGRITY_WARNING_TYPES,
  type LoadWarning,
  type LoadWarningType,
} from "./errors.js";
export {
  nextTicket,
  nextTickets,
  blockedTickets,
  ticketsUnblockedBy,
  umbrellaProgress,
  currentPhase,
  phasesWithStatus,
  isBlockerCleared,
  descendantLeaves,
  type NextTicketResult,
  type NextTicketAllComplete,
  type NextTicketAllBlocked,
  type NextTicketEmpty,
  type NextTicketOutcome,
  type UmbrellaProgress,
  type UnblockImpact,
  type PhaseWithStatus,
} from "./queries.js";
export {
  recommend,
  type Recommendation,
  type RecommendResult,
  type RecommendCategory,
  type RecommendItemKind,
} from "./recommend.js";
export {
  nextTicketID,
  nextIssueID,
  nextNoteID,
  nextOrder,
} from "./id-allocation.js";
export {
  validateProject,
  mergeValidation,
  type ValidationResult,
  type ValidationFinding,
  type ValidationLevel,
} from "./validation.js";
export {
  initProject,
  type InitOptions,
  type InitResult,
} from "./init.js";
export {
  saveSnapshot,
  loadLatestSnapshot,
  diffStates,
  buildRecap,
  SnapshotV1Schema,
  type SnapshotV1,
  type SnapshotDiff,
  type RecapResult,
  type RecapStaleness,
} from "./snapshot.js";
export {
  ExitCode,
  successEnvelope,
  errorEnvelope,
  partialEnvelope,
  escapeMarkdownInline,
  fencedBlock,
  formatStatus,
  formatPhaseList,
  formatPhaseTickets,
  formatTicket,
  formatNextTicketOutcome,
  formatTicketList,
  formatIssue,
  formatIssueList,
  formatBlockedTickets,
  formatValidation,
  formatBlockerList,
  formatError,
  formatInitResult,
  formatHandoverList,
  formatHandoverContent,
  formatHandoverCreateResult,
  formatSnapshotResult,
  formatRecap,
  formatExport,
  formatRecommendations,
  EMPTY_SCAFFOLD_HEADING,
  type ExitCodeValue,
  type SuccessEnvelope,
  type ErrorEnvelope,
  type PartialEnvelope,
} from "./output-formatter.js";
