import { Event } from './Event'; export interface IRequestProgress { percent: number; speed: number; size: { total: number; transferred: number; }; time: { elapsed: number; remaining: number; }; } export declare abstract class DownloaderBase { onProgress: Event; static readonly DEFAULT_DESTINATION: string; protected destination: string; abstract fetch(): Promise; protected abstract handleVersion(version: string): Promise; fetchAndExtract(): Promise; protected getVersions(): Promise; protected setDestination(destination: string): void; protected handlePlatform(platform: string): "linux" | "win" | "osx"; protected handleArch(arch: string): "ia32" | "x64"; protected getLocalSize(path: string): Promise; protected getRemoteSize(url: string): Promise; protected isFileExists(path: string): Promise<{}>; protected isFileSynced(url: string, path: string): Promise; protected download(url: string, filename: string, path: string, showProgress: boolean): Promise; }