import type { ConvertHtmlToMarkdown } from "@steipete/summarize-core/content";
import type { LlmTokenUsage } from "./generate-text.js";
import type { LlmProvider } from "./model-id.js";
import type { ModelRequestOptions } from "./model-options.js";
export declare function createHtmlToMarkdownConverter({ 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;
}): ConvertHtmlToMarkdown;
