import { type MediaCache } from "../../../cache/types.js";
import type { LinkPreviewProgressEvent } from "../../../link-preview/deps.js";
import { type LocalDirectMediaSource } from "../../../local-file.js";
export type AcquiredYtDlpMedia = {
    filePath: string;
    mediaType: string;
    filename: string;
    cleanup: () => Promise<void>;
};
export declare function resolveYtDlpLocalMediaSource(url: string, mediaKind: "video" | "audio" | null): LocalDirectMediaSource | null;
export declare function acquireYtDlpMedia({ ytDlpPath, url, service, mediaKind, mediaCache, downloadVideo, extraArgs, localFileInput, onProgress, onNote, }: {
    ytDlpPath: string | null;
    url: string;
    service: "youtube" | "podcast" | "generic";
    mediaKind: "video" | "audio" | null;
    mediaCache: MediaCache | null;
    downloadVideo: boolean;
    extraArgs?: string[];
    localFileInput: LocalDirectMediaSource | null;
    onProgress?: ((event: LinkPreviewProgressEvent) => void) | null;
    onNote?: ((note: string) => void) | null;
}): Promise<AcquiredYtDlpMedia>;
