import type { Usage } from "@earendil-works/pi-ai"; import type { AgentSessionEvent } from "../core/agent-session.ts"; type WithoutPartial = T extends { partial: unknown; } ? Omit : T; type ToJsonAssistantMessageEvent = T extends { type: "toolcall_start"; partial: unknown; } ? WithoutPartial & { id: string; toolName: string; } : WithoutPartial; type MessageUpdateEvent = Extract; type JsonMessageUpdateEvent = { type: "message_update"; usage: Usage; assistantMessageEvent: ToJsonAssistantMessageEvent; }; /** Session event shape emitted by the JSON and RPC stdout protocols. */ export type JsonAgentSessionEvent = Exclude | JsonMessageUpdateEvent; /** * Remove cumulative assistant snapshots from streaming wire events. * `message_start` provides the initial message, deltas build it, and * `message_end` provides the final authoritative message. Cumulative usage, * tool-call ids, and tool names remain available because their size is constant. */ export declare function toJsonEvent(event: MessageUpdateEvent): JsonMessageUpdateEvent; export declare function toJsonEvent(event: AgentSessionEvent): JsonAgentSessionEvent; export {}; //# sourceMappingURL=json-event.d.ts.map