/**
 * The sinks layer — public surface.
 *
 * The {@link Sink} contract (`drain`/`flush?`/`close?`) and its concrete
 * implementations: {@link ConsoleSink} (one pretty line per closed segment),
 * {@link FileSink} (NDJSON of {@link TraceRecord}s appended to a path), and
 * {@link StreamSink} (JSON lines to an injected `Writable`). Each consumes a
 * {@link import('../channel/signal').SignalChannel} and writes somewhere.
 */
export type { Sink } from "./base";
export { ConsoleSink } from "./console";
export type { ConsoleSinkOptions } from "./console";
export { FileSink } from "./file";
export type { FileSinkOptions } from "./file";
export { StreamSink } from "./stream";
export type { StreamSinkOptions } from "./stream";
