import type { ToolCallStructuredOutput, ToolOutputFileContent, ToolOutputImage, ToolOutputText } from '../types/protocol';
type StructuredToolOutput = ToolOutputText | ToolOutputImage | ToolOutputFileContent;
/**
 * Accepts whatever the tool returned and attempts to coerce it into the structured protocol
 * shapes we expose to downstream model adapters (input_text/input_image/input_file). Tools are
 * allowed to return either a single structured object or an array of them; anything else falls
 * back to the legacy string pipeline.
 */
export declare function normalizeStructuredToolOutputs(output: unknown): StructuredToolOutput[] | null;
/**
 * Translates the normalized tool output into the protocol `input_*` items. This is the last hop
 * before we hand the data to model-specific adapters, so we generate the exact schema expected by
 * the protocol definitions.
 */
export declare function convertStructuredToolOutputToInputItem(output: StructuredToolOutput): ToolCallStructuredOutput;
export {};
