import { Nullable } from '@mlytics/core-ts/core/type/basic'; import { DelayBackoff } from '@mlytics/core-ts/core/util/backoff'; import { SpecQueue } from '@mlytics/core-ts/core/util/queue'; import { AbstractDownloader } from './base/loader'; import { AbstractDownloaderAgent, AbstractDownloaderProxy, DownloaderProxyConstructor } from './proxy'; declare abstract class AbstractFileDownloader extends AbstractDownloader { protected _proxy?: Nullable; protected _proxyAgent: AbstractDownloaderAgent; protected _proxyClasses?: SpecQueue; protected _backoff: DelayBackoff; protected abstract _initialize(): void; protected _fetching(): Promise; protected get _shouldFetch(): boolean; protected _ensureQueue(): Promise; protected _electProxy(): Promise; protected _proxyFetch(): Promise; protected get _isQueueEmpty(): boolean; protected _abort(): Promise; } export { AbstractFileDownloader };