/**
* hyper-overlay — content-addressed P2P file distribution over Protomux.
*
* The canonical bytes are REAL FILES ON DISK; the overlay stores only
* metadata + chunk maps (Hyperbee), so there is no blob-storage balloon.
* Files are chunked with FastCDC, fetched multi-source (torrent-style),
* hash-verified incrementally, and written straight to the requester's disk.
*
* Main entry point: `HyperOverlay` (also the default export). The submodules
* are available as subpath exports (`hyper-overlay/chunker`, …) for consumers
* that only need a slice of the stack.
*
* Runs on Bare. The pure modules — chunker, messages, chunk-scheduler,
* file-index, sync-engine — also run on Node.
*
* 0.3.0 adopts the hardened engine from ok/hyper-overlay-v3 (journaled resume,
* wire paging, index GC, prepareForServe) while KEEPING our v2 architecture on
* top: our single-flight backpressure discipline in the serve loop, our
* getIndexMeta/putIndexMeta fast-boot, and the tree/pointer/ignore/manifest
* modules Ok's fork dropped (pgh / hyper-deploy / pear-git-v3 depend on them).
*/
export { HyperOverlay, HyperOverlay as default } from './lib/overlay.js'
export { OverlayProtocol } from './lib/protocol.js'
export {
TransferManager,
PARTIAL_SUFFIX,
partialPathFor,
journalNameFor,
cleanupOrphanedJournals
} from './lib/transfer.js'
export { ChunkScheduler } from './lib/chunk-scheduler.js'
export { FileIndex, CONTENT_REGISTER_PREFIX } from './lib/file-index.js'
export { SyncEngine, STRATEGIES } from './lib/sync-engine.js'
export {
chunk,
chunkStream,
hashChunk,
createStreamingHasher,
selectTier,
getTierParams,
TIERS,
MIN_SIZE,
AVG_SIZE,
MAX_SIZE
} from './lib/chunker.js'
export * as messages from './lib/messages.js'
// Our kept superset — dropped by ok/hyper-overlay-v3, retained here because
// pgh (tree/pointer/ignore), hyper-deploy (tree), and the forge (manifest)
// import them via subpaths. Not application concerns; they are the
// directory→Merkle-manifest + LFS-pointer primitives the distribution layer needs.
export { serialize, parse, isPointer, INLINE_MAX } from './lib/pointer.js'
export { encode as encodeManifest, decode as decodeManifest } from './lib/manifest.js'
export { createMatcher } from './lib/ignore.js'
export * as tree from './lib/tree.js'