import type { Attachment } from "../../attachments.js";
import type { LlmTokenUsage } from "../../types.js";
import type { OpenAiClientConfig } from "../types.js";
import type { OpenAiStructuredOutput, OpenAiTextCompletionResult, OpenAiTextRequest, OpenAiTextStreamResult } from "./types.js";
export declare function completeOpenAiResponsesText({ modelId, openaiConfig, context, temperature, maxOutputTokens, signal, fetchImpl, structuredOutput, }: OpenAiTextRequest & {
    structuredOutput?: OpenAiStructuredOutput;
}): Promise<OpenAiTextCompletionResult>;
export declare function streamOpenAiResponsesText({ modelId, openaiConfig, context, temperature, maxOutputTokens, signal, fetchImpl, }: OpenAiTextRequest): Promise<OpenAiTextStreamResult>;
export declare function completeOpenAiDocument({ modelId, openaiConfig, promptText, document, maxOutputTokens, temperature, timeoutMs, fetchImpl, }: {
    modelId: string;
    openaiConfig: OpenAiClientConfig;
    promptText: string;
    document: Attachment;
    maxOutputTokens?: number;
    temperature?: number;
    timeoutMs: number;
    fetchImpl: typeof fetch;
}): Promise<{
    text: string;
    usage: LlmTokenUsage | null;
}>;
