import { createLinkPreviewClient, type ExtractedLinkContent, type LinkPreviewProgressEvent } from "../../../content/index.js";
import type { UrlFlowContext } from "./types.js";
type LinkPreviewClientOptions = NonNullable<Parameters<typeof createLinkPreviewClient>[0]>;
type ConvertHtmlToMarkdown = LinkPreviewClientOptions["convertHtmlToMarkdown"];
type LinkPreviewProgressHandler = ((event: LinkPreviewProgressEvent) => void) | null;
export type UrlExtractionSession = {
    cacheStore: UrlFlowContext["cache"]["store"] | null;
    fetchInitialExtract: (url: string) => Promise<ExtractedLinkContent>;
    fetchWithCache: (targetUrl: string, options?: {
        bypassExtractCache?: boolean;
    }) => Promise<ExtractedLinkContent>;
};
export declare function createUrlExtractionSession({ ctx, markdown, onProgress, }: {
    ctx: UrlFlowContext;
    markdown: {
        convertHtmlToMarkdown: ConvertHtmlToMarkdown;
        effectiveMarkdownMode: "off" | "auto" | "llm" | "readability";
        markdownRequested: boolean;
    };
    onProgress: LinkPreviewProgressHandler;
}): UrlExtractionSession;
export {};
