import execa from 'execa';
import { VideoResolution } from '../../../shared/models';
export declare class YoutubeDLCLI {
    static safeGet(): Promise<YoutubeDLCLI>;
    static updateYoutubeDLBinary(): Promise<void>;
    static getYoutubeDLVideoFormat(enabledResolutions: VideoResolution[], useBestFormat: boolean): string;
    private constructor();
    download(options: {
        url: string;
        format: string;
        output: string;
        processOptions: execa.NodeOptions;
        timeout?: number;
        additionalYoutubeDLArgs?: string[];
    }): Promise<string[]>;
    getInfo(options: {
        url: string;
        format: string;
        processOptions: execa.NodeOptions;
        additionalYoutubeDLArgs?: string[];
    }): Promise<any>;
    getListInfo(options: {
        url: string;
        latestVideosCount?: number;
        processOptions: execa.NodeOptions;
    }): Promise<{
        upload_date: string;
        webpage_url: string;
    }[]>;
    getSubs(options: {
        url: string;
        format: 'vtt';
        processOptions: execa.NodeOptions;
    }): Promise<string[]>;
    private run;
    private wrapWithProxyOptions;
    private wrapWithIPOptions;
    private wrapWithFFmpegOptions;
}
//# sourceMappingURL=youtube-dl-cli.d.ts.map