import type { DocumentContent, ImageContent, TextContent, ToolCall } from '../ai/types.js';
import type { ShortcutXLModelInvokePayload } from '../contracts/model-call.js';
/**
 * Shortcut document-content helpers.
 *
 * There are two distinct wire contracts in play:
 * - Private gateway: owned AI content is serialized directly to provider APIs
 *   (Anthropic Messages or OpenAI Responses).
 * - Normal Shortcut proxy invoke/helper calls: owned AI content is converted back to
 *   the multimodal block shapes accepted by the Shortcut invoke proxy and by
 *   helper LLM stream calls (sandbox_llm/screenshot).
 *
 * The normal Shortcut proxy is not one universal provider format. Claude/Haiku
 * gets Anthropic-native base64 blocks; Gemini/non-Anthropic gets the existing
 * LangChain multimodal shape (`image_url` for images, `media` for PDFs).
 */
export type ShortcutXLUserContent = TextContent | ImageContent | DocumentContent;
export declare function aiContentToShortcutProxyContent(content: string | readonly (ShortcutXLUserContent | ToolCall)[], model: string): ShortcutXLModelInvokePayload['messages'][number]['content'];
export declare function aiUserContentToAnthropicContent(content: string | readonly ShortcutXLUserContent[], modelInput: readonly string[]): string | ({
    readonly text: string;
    readonly type: "text";
} | {
    readonly source: {
        readonly data: string;
        readonly media_type: string;
        readonly type: "base64";
    };
    readonly type: "document" | "image";
})[];
export declare function aiUserContentToOpenAIResponsesContent(content: string | readonly ShortcutXLUserContent[]): ({
    text: string;
    type: string;
    detail?: undefined;
    image_url?: undefined;
    file_data?: undefined;
    filename?: undefined;
} | {
    detail: string;
    image_url: string;
    type: string;
    text?: undefined;
    file_data?: undefined;
    filename?: undefined;
} | {
    file_data: string;
    filename: string;
    type: string;
    text?: undefined;
    detail?: undefined;
    image_url?: undefined;
})[];
//# sourceMappingURL=ai-content.d.ts.map