import type { MediaCache } from "../content/index.js";
import type { SlideSource } from "./types.js";
export type SlidesIngestProgress = (label: string, percent: number, detail?: string) => void;
export declare function prepareSlidesInput({ source, mediaCache, timeoutMs, fetchImpl, ytDlpPath, allowRemoteUrlFallback, ytDlpCookiesFromBrowser, resolveSlidesYtDlpExtractFormat, resolveSlidesStreamFallback, buildSlidesMediaCacheKey, formatBytes, reportSlidesProgress, logSlidesTiming, downloadYoutubeVideo, downloadRemoteVideo, resolveYoutubeStreamUrl, }: {
    source: SlideSource;
    mediaCache: MediaCache | null;
    timeoutMs: number;
    fetchImpl?: typeof fetch;
    ytDlpPath: string | null;
    allowRemoteUrlFallback?: boolean;
    ytDlpCookiesFromBrowser?: string | null;
    resolveSlidesYtDlpExtractFormat: () => string;
    resolveSlidesStreamFallback: () => boolean;
    buildSlidesMediaCacheKey: (url: string) => string;
    formatBytes: (bytes: number) => string;
    reportSlidesProgress?: SlidesIngestProgress | null;
    logSlidesTiming?: ((label: string, startedAt: number) => number) | null;
    downloadYoutubeVideo: (args: {
        ytDlpPath: string;
        url: string;
        timeoutMs: number;
        format: string;
        cookiesFromBrowser?: string | null;
        onProgress?: ((percent: number, detail?: string) => void) | null;
    }) => Promise<{
        filePath: string;
        cleanup: () => Promise<void>;
    }>;
    downloadRemoteVideo: (args: {
        url: string;
        timeoutMs: number;
        fetchImpl?: typeof fetch;
        onProgress?: ((percent: number, detail?: string) => void) | null;
    }) => Promise<{
        filePath: string;
        cleanup: () => Promise<void>;
    }>;
    resolveYoutubeStreamUrl: (args: {
        ytDlpPath: string;
        url: string;
        timeoutMs: number;
        format: string;
        cookiesFromBrowser?: string | null;
    }) => Promise<string>;
}): Promise<{
    inputPath: string;
    inputCleanup: (() => Promise<void>) | null;
    cachedMedia: Awaited<ReturnType<NonNullable<MediaCache>["get"]>> | null;
    warnings: string[];
}>;
