import type { OutputLanguage } from "../language.js";
import type { LlmTokenUsage } from "./generate-text.js";
import type { LlmProvider } from "./model-id.js";
import type { ModelRequestOptions } from "./model-options.js";
export type ConvertTranscriptToMarkdown = (args: {
    title: string | null;
    source: string | null;
    transcript: string;
    timeoutMs: number;
    outputLanguage?: OutputLanguage | null;
}) => Promise<string>;
export declare function createTranscriptToMarkdownConverter({ modelId, forceOpenRouter, xaiApiKey, googleApiKey, openaiApiKey, openaiBaseUrlOverride, ollamaBaseUrlOverride, anthropicBaseUrlOverride, googleBaseUrlOverride, xaiBaseUrlOverride, anthropicApiKey, openrouterApiKey, fetchImpl, forceChatCompletions, requestOptions, retries, onRetry, onUsage, }: {
    modelId: string;
    forceOpenRouter?: boolean;
    xaiApiKey: string | null;
    googleApiKey: string | null;
    openaiApiKey: string | null;
    openaiBaseUrlOverride?: string | null;
    ollamaBaseUrlOverride?: string | null;
    anthropicBaseUrlOverride?: string | null;
    googleBaseUrlOverride?: string | null;
    xaiBaseUrlOverride?: string | null;
    fetchImpl: typeof fetch;
    anthropicApiKey: string | null;
    openrouterApiKey: string | null;
    forceChatCompletions?: boolean;
    requestOptions?: ModelRequestOptions;
    retries?: number;
    onRetry?: (notice: {
        attempt: number;
        maxRetries: number;
        delayMs: number;
        error: unknown;
    }) => void;
    onUsage?: (usage: {
        model: string;
        provider: LlmProvider;
        usage: LlmTokenUsage | null;
    }) => void;
}): ConvertTranscriptToMarkdown;
