/** * Block Converter - Convert Claude SDK messages to ConversationBlocks * * Transforms SDK messages (from JSONL transcripts or streaming) into * architecture-agnostic ConversationBlock structures. */ import type { SDKMessage } from '@anthropic-ai/claude-agent-sdk'; import type { ConversationBlock, SubagentBlock, ToolResultBlock, ToolUseBlock } from '../../../types/session/blocks.js'; import { StreamEvent } from '../../../types/session/streamEvents.js'; export declare function convertMessagesToBlocks(messages: SDKMessage[]): ConversationBlock[]; export declare function parseStreamEvent(event: SDKMessage): StreamEvent[]; /** * Convert an SDK message to a ConversationBlock * * @param msg - SDK message from transcript or stream * @returns ConversationBlock or null if message doesn't map to a block */ export declare function sdkMessageToBlocks(msg: SDKMessage): ConversationBlock[]; /** * Convert multiple SDK messages to ConversationBlocks * * @param messages - Array of SDK messages * @returns Array of ConversationBlocks */ export declare function sdkMessagesToBlocks(messages: SDKMessage[]): ConversationBlock[]; /** * Extract tool results from user messages * * In the SDK, tool results come back as synthetic user messages * with tool_result content blocks */ export declare function extractToolResultBlocks(msg: Extract): ToolResultBlock[]; /** * Detect if a tool use spawned a subagent (Task tool) * * When the Task tool is used, it spawns a subagent. We need to create * a SubagentBlock to represent this in the main conversation. */ export declare function createSubagentBlockFromToolUse(toolUseBlock: ToolUseBlock, subagentId: string): SubagentBlock; //# sourceMappingURL=block-converter.d.ts.map