import type { ToolCall, ToolResult } from "../../../types.js"; export interface ExecutedOccurrence { readonly call: ToolCall; readonly result: ToolResult; readonly contextOutput: string; readonly ok: boolean; } export interface ReplayedOccurrence extends ExecutedOccurrence { readonly suppressedRepeat: true; } export interface WireOccurrencePorts { readonly isPrinted: (eventId: string) => boolean; readonly writeToolCall: (eventId: string, call: ToolCall) => void; readonly markPrinted: (eventId: string) => void; readonly emitToolStart: (eventId: string) => void; readonly writeToolOutput: (eventId: string, chunk: string) => void; readonly emitToolResult: (eventId: string, result: ToolResult, contextOutput: string) => void; } export declare const DUPLICATE_WIRE_CALL_NOTICE: string; export interface WireOccurrenceLedger { readonly replay: (wireId: string | undefined, call: ToolCall, eventId: string) => ReplayedOccurrence | undefined; readonly remember: (wireId: string | undefined, executed: { call: ToolCall; result: ToolResult; contextOutput: string; ok: boolean; aborted?: boolean | undefined; suppressedRepeat?: boolean | undefined; }) => void; } export declare const createWireOccurrenceLedger: (ports: WireOccurrencePorts) => WireOccurrenceLedger;