import type { LogSink } from './types.js'; /** * Delivers nothing, by construction. `createLogger`'s dispatch identity- * checks the configured sink against this exact reference and counts the * record as dropped rather than calling `emit` — a no-op `emit` and a real * delivery both return `undefined`, so without the identity check nothing * downstream could ever tell "configured to discard" from "silently eating * every record". */ export declare const NOOP_SINK: LogSink; /** * One JSON object per line — the canonical wire format for the machine-read * path (`namzu run-stream`'s stderr). JSON string-escaping neutralises * `\n`/`\r` by construction, closing the log-forging surface without a * single character-stripping call site, which is bypassable anyway. * * `JSON.stringify` leaves U+2028 and U+2029 literal in its output, and some * readers — older V8, some log shippers — treat either codepoint as a line * terminator regardless of the JSON quoting around it. Escaped here so a * record can never masquerade as two lines to a reader that split on them. */ export declare function jsonLinesSink(stream: NodeJS.WritableStream): LogSink; /** * Human-readable line, one record per line — the boot narrative's renderer. * * Three things it does that a generic sink does not, each answering a * specific half of "the logs tell me nothing": * * - **`+Nms` instead of an absolute timestamp.** Elapsed since the previous * record ON THIS SINK, so the column reads as which phase was slow. The * state is a closure variable rather than module-level: two sinks in one * process each measure their own stream, and a shared `lastTimestamp` * would make each one's deltas depend on the other's traffic. * - **A fixed-width scope column, coloured by a stable hash.** A dozen * module initialisations read as structure rather than scroll. * - **A template per boot event**, so `info` shows the two attributes that * matter rather than all forty as JSON. * * Colour is emitted only when the stream reports `isTTY`, so a redirected * log has no escape bytes in it at all. */ export declare function prettySink(stream: NodeJS.WritableStream): LogSink; //# sourceMappingURL=sinks.d.ts.map