import type { TextContent, ImageContent } from "../types.js";
/**
 * Utility functions for converting message content back and forth between a
 * flat string and an array of content blocks.
 */
/**
 * Reduce content to plain text. Strings pass through unchanged; for a block
 * array, the text blocks are concatenated with newline separators and any
 * image blocks are discarded.
 */
export declare function messageContentToString(content: string | (TextContent | ImageContent)[]): string;
/**
 * Tell whether the content contains at least one image block.
 */
export declare function messageHasImages(content: string | (TextContent | ImageContent)[]): boolean;
/**
 * Return just the text blocks. A bare string is promoted to one text block.
 */
export declare function extractTextBlocks(content: string | (TextContent | ImageContent)[]): TextContent[];
/**
 * Return just the image blocks; a plain string produces an empty list.
 */
export declare function extractImageBlocks(content: string | (TextContent | ImageContent)[]): ImageContent[];
/**
 * Remove control characters so the text is wire-safe. NUL bytes are dropped
 * first, followed by the rest of the C0 control range together with DEL.
 */
export declare function sanitizeContentString(text: string): string;
/**
 * Normalize newlines: turn every CRLF or standalone CR into a single LF.
 */
export declare function normalizeLineEndings(text: string): string;
