import type { TaskEnvelope } from './task-envelope.js'; import type { PlainLogEntry } from './plain-log-entry.js'; export type BusMessage = { type: 'envelope'; envelope: TaskEnvelope; reason: string; } | { type: 'plain'; entry: PlainLogEntry; }; export interface Subscriber { readonly name: string; receive(msg: BusMessage): void; } export declare class EnvelopeBus { private subs; subscribe(s: Subscriber): () => void; /** Private: `subscribe` hands back the closure that calls this, and that closure is the * whole detach API. A second public way to remove a subscriber had no caller anywhere — * including in this repo's own tests — and left the class with two ways to do one thing. */ private unsubscribe; emitEnvelopeSnapshot(envelope: TaskEnvelope, reason: string): void; emitPlainEntry(entry: PlainLogEntry): void; } //# sourceMappingURL=envelope-bus.d.ts.map