import type { AgentProcess } from './types.js'; import type { NormalizedEvent } from './normalize/event-types.js'; export interface EventObserver { onEvent(event: NormalizedEvent): void; onClose?(): void | Promise; } export interface RunEventTee { dispatch(event: NormalizedEvent): void; close(): Promise; } export declare function createRunEventTee(proc: AgentProcess, observers: EventObserver[], requiredSinks: EventObserver[]): RunEventTee; export declare function createProcessCloser(proc: AgentProcess): () => Promise; export declare function settleEventfulRun(resultPromise: Promise, eventLoop: Promise, closeTee: () => Promise, closeProcess: () => Promise): Promise; export interface ConsumeEventStreamOptions { proc: AgentProcess; tee: RunEventTee; onEvent(event: NormalizedEvent): void | Promise; } export declare function consumeEventStream(options: ConsumeEventStreamOptions): Promise;