import { type TranscriptionSegment } from "../../../../transcription/whisper.js";
import { type TranscriptionConfig } from "../../transcription-config.js";
import type { ProviderFetchOptions, TranscriptService } from "../../types.js";
export { downloadCappedBytes, downloadToFile, filenameFromUrl, formatBytes, normalizeHeaderType, parseContentLength, parseContentRangeTotal, probeRemoteMedia, } from "./media-download.js";
export type TranscribeRequest = {
    fetchImpl?: typeof fetch;
    url: string;
    filenameHint: string;
    durationSecondsHint: number | null;
};
export type TranscriptionResult = {
    text: string | null;
    provider: string | null;
    error: Error | null;
    segments?: TranscriptionSegment[] | null;
};
export declare function transcribeMediaUrl({ fetchImpl, transcription, env, url, filenameHint, durationSecondsHint, groqApiKey, assemblyaiApiKey, geminiApiKey, openaiApiKey, falApiKey, deepgramApiKey, notes, progress, }: {
    fetchImpl: typeof fetch;
    transcription?: Partial<TranscriptionConfig> | null;
    env?: Record<string, string | undefined>;
    url: string;
    filenameHint: string;
    durationSecondsHint: number | null;
    groqApiKey?: string | null;
    assemblyaiApiKey?: string | null;
    geminiApiKey?: string | null;
    openaiApiKey?: string | null;
    falApiKey?: string | null;
    deepgramApiKey?: string | null;
    notes: string[];
    progress: {
        url: string;
        service: TranscriptService;
        onProgress: ProviderFetchOptions["onProgress"] | null;
    } | null;
}): Promise<TranscriptionResult>;
