import type { TextContent, ImageContent, VideoContent } from "@prestyj/ai";
type ContentPart = TextContent | ImageContent | VideoContent;
type UserContent = string | ContentPart[];
/**
 * Framing prepended to a mid-run steering message (a prompt the user submitted
 * while the agent was already working).
 *
 * Without this wrapper the queued text arrives as a bare top-level user turn,
 * identical to a brand-new request — so models treat it as the authoritative
 * instruction and silently abandon the original task. The wrapper names the
 * relationship (a second, concurrent instruction) and the one rule that kills
 * the failure mode: don't drop either side. The model already knows how to
 * merge two live instructions once it knows both are in force.
 */
export declare const STEERING_PREFIX: string;
/** Wrap a plain-text steering message with the framing prefix. */
export declare function wrapSteeringText(text: string): string;
/**
 * Wrap a steering `UserContent` (string or multimodal parts) with the framing
 * prefix. Media blocks pass through untouched; the prefix is prepended to the
 * leading text so attachments still ride the same native-block path.
 */
export declare function wrapSteeringContent(content: UserContent): UserContent;
export {};
//# sourceMappingURL=steering.d.ts.map