import { AnyOS, LinuxOS } from './getos';
export interface MongoBinaryDownloadUrlOpts {
    version: string;
    platform: string;
    arch: string;
    os?: AnyOS;
}
/**
 * Download URL generator
 */
export default class MongoBinaryDownloadUrl {
    platform: string;
    arch: string;
    version: string;
    os: AnyOS | undefined;
    constructor({ platform, arch, version, os }: MongoBinaryDownloadUrlOpts);
    /**
     * Assemble the URL to download
     * Calls all the necessary functions to determine the URL
     */
    getDownloadUrl(): Promise<string>;
    /**
     * Get the archive
     * Version independent
     */
    getArchiveName(): Promise<string>;
    /**
     * Get the archive for Windows
     * (from: https://www.mongodb.org/dl/win32)
     */
    getArchiveNameWin(): Promise<string>;
    /**
     * Get the archive for OSX (Mac)
     * (from: https://www.mongodb.org/dl/osx)
     */
    getArchiveNameOsx(): Promise<string>;
    /**
     * Get the archive for Linux
     * (from: https://www.mongodb.org/dl/linux)
     */
    getArchiveNameLinux(): Promise<string>;
    /**
     * Get the version string (with distro)
     * @param os LinuxOS Object
     */
    getLinuxOSVersionString(os: LinuxOS): string;
    /**
     * Get the version string for Debain
     * @param os LinuxOS Object
     */
    getDebianVersionString(os: LinuxOS): string;
    /**
     * Get the version string for Fedora
     * @param os LinuxOS Object
     */
    getFedoraVersionString(os: LinuxOS): string;
    /**
     * Get the version string for Red Hat Enterprise Linux
     * @param os LinuxOS Object
     */
    getRhelVersionString(os: LinuxOS): string;
    /**
     * Get the version string for ElementaryOS
     * @param os LinuxOS Object
     */
    getElementaryOSVersionString(os: LinuxOS): string;
    /**
     * Get the version string for Linux Mint
     * @param os LinuxOS Object
     */
    getMintVersionString(os: LinuxOS): string;
    /**
     * Linux Fallback
     * @param os LinuxOS Object
     */
    getLegacyVersionString(os: AnyOS): string;
    /**
     * Get the version string for Suse / OpenSuse
     * @param os LinuxOS Object
     */
    getSuseVersionString(os: LinuxOS): string;
    /**
     * Get the version string for Ubuntu
     * @param os LinuxOS Object
     */
    getUbuntuVersionString(os: LinuxOS): string;
    /**
     * Translate input platform to mongodb useable platfrom
     * @example
     * darwin -> osx
     * @param platform The Platform to translate
     */
    translatePlatform(platform: string): string;
    /**
     * Translate input arch to mongodb useable arch
     * @example
     * x64 -> x86_64
     * @param platform The Platform to translate
     */
    translateArch(arch: string, mongoPlatform: string): string;
}
//# sourceMappingURL=MongoBinaryDownloadUrl.d.ts.map