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 ToJsonEvent = T extends { type: "message_update"; assistantMessageEvent: infer TAssistantMessageEvent; } ? { type: "message_update"; usage: Usage; assistantMessageEvent: WithoutPartial; } : T; /** Session event shape emitted by the JSON and RPC stdout protocols. */ export type JsonAgentSessionEvent = ToJsonEvent; type MessageUpdateEvent = Extract; type JsonMessageUpdateEvent = Extract; /** * 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 * remains available because its size is constant. */ export declare function toJsonEvent(event: MessageUpdateEvent): JsonMessageUpdateEvent; export declare function toJsonEvent(event: AgentSessionEvent): JsonAgentSessionEvent; export {}; //# sourceMappingURL=json-event.d.ts.map