import type { MediaCache } from "../content/index.js";
import type { SlideSettings } from "./settings.js";
import type { SlideExtractionResult, SlideImage, SlideSource, SlideSourceKind } from "./types.js";
export { parseShowinfoTimestamp, resolveExtractedTimestamp } from "./scene-detection.js";
type ExtractSlidesArgs = {
    source: SlideSource;
    settings: SlideSettings;
    noCache?: boolean;
    mediaCache?: MediaCache | null;
    env: Record<string, string | undefined>;
    fetchImpl?: typeof fetch;
    timeoutMs: number;
    ytDlpPath: string | null;
    disableYtDlpAutoResolve?: boolean;
    allowRemoteUrlFallback?: boolean;
    ytDlpCookiesFromBrowser?: string | null;
    ffmpegPath: string | null;
    tesseractPath: string | null;
    hooks?: {
        onSlideChunk?: (chunk: {
            slide: SlideImage;
            meta: {
                slidesDir: string;
                sourceUrl: string;
                sourceId: string;
                sourceKind: SlideSourceKind;
                ocrAvailable: boolean;
            };
        }) => void;
        onSlidesTimeline?: ((slides: SlideExtractionResult) => void) | null;
        onSlidesProgress?: ((text: string) => void) | null;
        onSlidesLog?: ((message: string) => void) | null;
    } | null;
};
export declare function extractSlidesForSource({ source, settings, noCache, mediaCache, env, fetchImpl, timeoutMs, ytDlpPath, disableYtDlpAutoResolve, allowRemoteUrlFallback, ytDlpCookiesFromBrowser, ffmpegPath, tesseractPath, hooks, }: ExtractSlidesArgs): Promise<SlideExtractionResult>;
