import { DownloadContext } from '../context';
import { IEventHub } from '../events';
import { IDownloadFilesRepository } from '../repositories';
import { ILogger } from '../utilities';
import { BackgroundJob } from './BackgroundJob';

/** Reports the progress back to the server */
export declare class DownloadObserver extends BackgroundJob {
    private eventHub;
    private filesRepo;
    static readonly type: string;
    private eventHandlers;
    constructor(eventHub: IEventHub, filesRepo: IDownloadFilesRepository, logger: ILogger, context: DownloadContext);
    private updateFileProgress;
    protected onStart(): void;
    protected onStop(): void;
    protected processInternal(_signal: AbortSignal): Promise<void>;
}
