import type { MediaCache, TranscriptCache } from "../cache/types.js";
import { type TranscriptionConfig } from "../transcript/transcription-config.js";
import type { ExtractedLinkContent, FetchLinkContentOptions } from "./content/types.js";
import type { ConvertHtmlToMarkdown, LinkPreviewDeps, LinkPreviewProgressEvent, ResolveTwitterCookies, ScrapeWithFirecrawl } from "./deps.js";
/** Public client used by external consumers to fetch link content. */
export interface LinkPreviewClient {
    fetchLinkContent(url: string, options?: FetchLinkContentOptions): Promise<ExtractedLinkContent>;
}
/** Public options for wiring dependencies into the link preview client. */
export interface LinkPreviewClientOptions {
    fetch?: typeof fetch;
    env?: Record<string, string | undefined>;
    scrapeWithFirecrawl?: ScrapeWithFirecrawl | null;
    apifyApiToken?: string | null;
    ytDlpPath?: string | null;
    transcription?: Partial<TranscriptionConfig> | null;
    falApiKey?: string | null;
    groqApiKey?: string | null;
    assemblyaiApiKey?: string | null;
    deepgramApiKey?: string | null;
    elevenlabsApiKey?: string | null;
    geminiApiKey?: string | null;
    openaiApiKey?: string | null;
    convertHtmlToMarkdown?: ConvertHtmlToMarkdown | null;
    transcriptCache?: TranscriptCache | null;
    mediaCache?: MediaCache | null;
    readTweetWithBird?: LinkPreviewDeps["readTweetWithBird"];
    resolveTwitterCookies?: ResolveTwitterCookies | null;
    onProgress?: ((event: LinkPreviewProgressEvent) => void) | null;
}
/** Public factory for a link preview client with injectable dependencies. */
export declare function createLinkPreviewClient(options?: LinkPreviewClientOptions): LinkPreviewClient;
