/** * Encode walker — interprets the shared descriptor tables (`descriptors.ts`) to WRITE a capture's * structs, plus the handful of special handlers a flat table can't express (recursive * notRestoredReasons, keyed config/overhead maps, columnar profile slices). The decode mirror is * `decode-walker.ts`; both read the SAME descriptors, so they cannot drift. */ import { FieldEncoder } from './field-encoder.js'; import { type StreamId } from '../registry.js'; import type { Manifest } from '../manifest.js'; import type { OverheadReport } from '../capture.js'; /** * Manifest: clock + the TOTAL per-stream record list + config. Each stream record is a self-describing * frame — `[streamIndex: u8][status: str][schemaVersion: varuint][byteLen: varuint][tail bytes]` behind * a leading count — so ANY reader (older or newer) can always recover which streams a writer knew, * their status, and their schema version, and skip record tails or whole unknown-stream records by * length. This is what makes "read newer files, pull what you know" sound; see FileFormat.md. */ export declare function encodeManifest(e: FieldEncoder, m: Manifest): void; export declare function encodeOverhead(e: FieldEncoder, o: OverheadReport): void; /** Encode one stream's payload, fully descriptor-driven (STREAM_T is total, incl. navigation's NAV tag). */ export declare function encodeStream(e: FieldEncoder, id: StreamId, data: unknown): void; //# sourceMappingURL=encode-walker.d.ts.map