import { generateTextWithModelId } from "../llm/generate-text.js";
import type { LlmProvider } from "../llm/model-id.js";
import type { parseGatewayStyleModelId } from "../llm/model-id.js";
import type { ModelRequestOptions } from "../llm/model-options.js";
import type { Prompt } from "../llm/prompt.js";
export declare function resolveModelIdForLlmCall({ parsedModel, apiKeys, fetchImpl, timeoutMs, }: {
    parsedModel: ReturnType<typeof parseGatewayStyleModelId>;
    apiKeys: {
        googleApiKey: string | null;
    };
    fetchImpl: typeof fetch;
    timeoutMs: number;
}): Promise<{
    modelId: string;
    note: string | null;
    forceStreamOff: boolean;
}>;
export declare function summarizeWithModelId({ modelId, prompt, maxOutputTokens, timeoutMs, fetchImpl, apiKeys, forceOpenRouter, openaiBaseUrlOverride, anthropicBaseUrlOverride, googleBaseUrlOverride, xaiBaseUrlOverride, zaiBaseUrlOverride, ollamaBaseUrlOverride, forceChatCompletions, requestOptions, retries, onRetry, }: {
    modelId: string;
    prompt: Prompt;
    maxOutputTokens?: number;
    timeoutMs: number;
    fetchImpl: typeof fetch;
    apiKeys: {
        xaiApiKey: string | null;
        openaiApiKey: string | null;
        googleApiKey: string | null;
        anthropicApiKey: string | null;
        openrouterApiKey: string | null;
    };
    forceOpenRouter?: boolean;
    openaiBaseUrlOverride?: string | null;
    anthropicBaseUrlOverride?: string | null;
    googleBaseUrlOverride?: string | null;
    xaiBaseUrlOverride?: string | null;
    zaiBaseUrlOverride?: string | null;
    ollamaBaseUrlOverride?: string | null;
    forceChatCompletions?: boolean;
    requestOptions?: ModelRequestOptions;
    retries: number;
    onRetry?: (notice: {
        attempt: number;
        maxRetries: number;
        delayMs: number;
        error: unknown;
    }) => void;
}): Promise<{
    text: string;
    provider: LlmProvider;
    canonicalModelId: string;
    usage: Awaited<ReturnType<typeof generateTextWithModelId>>["usage"];
}>;
