/**
 * Prompt pipeline helpers extracted from AgentSession.
 *
 * Pure functions for parsing and normalizing user input before it reaches
 * the agent: extension command dispatch, content normalization, and
 * message content building. No session state — all dependencies are
 * passed as arguments.
 */
import type { ImageContent, TextContent } from '../../ai/types.js';
import type { ExtensionRunner } from '../extensions/index.js';
/**
 * Try to execute an extension command. Returns true if the command was
 * found and executed (even if execution threw — errors are emitted via
 * the runner's error listener, not re-thrown).
 *
 * Expects `text` to start with `/`.
 */
export declare function tryExtensionCommand(text: string, extensionRunner: ExtensionRunner | undefined): Promise<boolean>;
/**
 * Throw if `text` is a registered extension command.
 *
 * Used by steer/followUp to reject extension commands that cannot be
 * queued mid-stream. Expects `text` to start with `/`.
 */
export declare function assertNotExtensionCommand(text: string, extensionRunner: ExtensionRunner | undefined): void;
/**
 * Build the content array for a user message from text and optional images.
 * Shared by _queueSteer and _queueFollowUp in AgentSession.
 */
export declare function buildMessageContent(text: string, images?: ImageContent[]): (TextContent | ImageContent)[];
/**
 * Normalize user-facing content (string or content-part array) into a
 * plain text string and optional image array.
 *
 * Used by `sendUserMessage` to unify the two input shapes before
 * handing off to `prompt()`.
 */
export declare function normalizeUserContent(content: string | (TextContent | ImageContent)[]): {
    text: string;
    images?: ImageContent[];
};
//# sourceMappingURL=prompt-pipeline.d.ts.map