import type { LlmProvider } from "./model-id.js";
import type { ModelRequestOptions } from "./model-options.js";
import type { Prompt } from "./prompt.js";
import type { LlmTokenUsage } from "./types.js";
type ParsedModel = {
    provider: LlmProvider;
    model: string;
    canonical: string;
};
type DocumentResult = {
    text: string;
    canonicalModelId: string;
    provider: ParsedModel["provider"];
    usage: LlmTokenUsage | null;
};
export declare function maybeGenerateDocumentText(options: {
    parsed: ParsedModel;
    apiKeys: {
        openaiApiKey: string | null;
        googleApiKey: string | null;
        anthropicApiKey: string | null;
        openrouterApiKey: string | null;
    };
    prompt: Prompt;
    maxOutputTokens?: number;
    temperature?: number;
    timeoutMs: number;
    fetchImpl: typeof fetch;
    forceOpenRouter?: boolean;
    openaiBaseUrlOverride?: string | null;
    anthropicBaseUrlOverride?: string | null;
    googleBaseUrlOverride?: string | null;
    forceChatCompletions?: boolean;
    requestOptions?: ModelRequestOptions;
    retryWithModelId: (modelId: string) => Promise<DocumentResult>;
}): Promise<DocumentResult | null>;
export {};
