import type { CesrBody } from "../core/types.js"; /** * Protocol-aware serder factory, matching KERIpy's "reap one body from a * stream head" role. * * Maintainer note: * non-native bodies can still be `smell()`ed directly, but native body groups * cannot. This class owns the small amount of native pre-read needed to derive * smellage-equivalent metadata before delegating to `parseSerder`. * * Example: * * ```ts * const { serder } = new Serdery().reap( * new TextEncoder().encode("-FA50OKERICAACAXicp...") * ); * // serder.kind === "CESR" * // serder.ked?.t === "icp" * ``` */ export declare class Serdery { /** * Reap one serder from the current head of `input`, consuming only its body span. * * For native bodies this means: * 1. detect `FixBodyGroup` / `MapBodyGroup` * 2. canonicalize qb2 to qb64 if needed * 3. pre-read version metadata from compact native fields * 4. delegate full hydration to `parseSerder` * * Maintainer note: * "candidate native body-group code" is broader than "valid protocol * message". For example, KERI top-level native messages must still be fixed * field even though `MapBodyGroup` remains a valid native framing shape in * the wider CESR/ACDC world. The protocol-specific decoder is responsible * for that final acceptance decision. */ reap(input: Uint8Array): { serder: CesrBody; consumed: number; }; } /** Convenience wrapper for one-shot `Serdery.reap()` call sites. */ export declare function reapSerder(input: Uint8Array): { serder: CesrBody; consumed: number; }; //# sourceMappingURL=serdery.d.ts.map