export interface CompilerBuild {
    path: string;
    version: string;
    build: string;
    longVersion: string;
    keccak256: string;
    urls: string[];
}
export interface CompilersList {
    builds: CompilerBuild[];
    releases: {
        [version: string]: string;
    };
    latestRelease: string;
}
declare function downloadFile(url: string, destinationFile: string): Promise<void>;
export declare class CompilerDownloader {
    readonly compilersDir: string;
    readonly localSolcVersion: string;
    readonly download: typeof downloadFile;
    private readonly _compilersDir;
    private readonly _localSolcVersion;
    private readonly _download;
    constructor(compilersDir: string, localSolcVersion: string, download?: typeof downloadFile);
    getDownloadedCompilerPath(version: string): Promise<string>;
    getCompilerBuild(version: string): Promise<CompilerBuild>;
    getCompilersList(): Promise<CompilersList>;
    getCompilersListPath(): string;
    compilersListExists(): Promise<boolean>;
    downloadCompilersList(): Promise<void>;
    downloadCompiler(compilerBuild: CompilerBuild, downloadedFilePath: string): Promise<void>;
    verifyCompiler(compilerBuild: CompilerBuild, downloadedFilePath: string): Promise<void>;
    private _fileExists;
}
export {};
//# sourceMappingURL=downloader.d.ts.map