import type { Frame } from "../frame.ts"; /** The channels a golden frame may travel on. Single source of truth for the * direction contract — the corpus completeness test derives its coverage from * this union so a new variant cannot be added without a covering vector. */ export type FrameDirection = "worker->hub" | "hub->worker" | "hub->observers"; /** * Golden frame vectors: canonical (frame ↔ bytes) pairs the codec must satisfy * in BOTH directions. `hex` is the exact wire encoding of `frame`. These are * committed goldens — a codec change that alters the wire bytes fails the * round-trip test, catching drift between this repo and the c8ctl client. * * Coverage spans every message family, every QoS lane, both directions, and * boundary values (seq = 0, seq = uint32 max, null payload, empty string, * multi-byte UTF-8). */ export interface GoldenFrame { readonly name: string; /** Informational: which way the frame travels on the channel. */ readonly direction: FrameDirection; readonly frame: Frame; /** Exact wire encoding of `frame`, as a lowercase hex string. */ readonly hex: string; } export declare const GOLDEN_FRAMES: readonly GoldenFrame[];