import { DownloadContext } from '../context';
import { ILogger } from '../utilities';

export declare abstract class BackgroundJob {
    protected logger: ILogger;
    protected context: DownloadContext;
    static readonly type: string;
    private _timeout;
    private isStopped;
    protected controller: AbortController;
    constructor(logger: ILogger, context: DownloadContext);
    protected onStart(): void;
    protected onStop(): void;
    start(): void;
    stop(): void;
    process(): Promise<void>;
    private loop;
    protected abstract processInternal(signal: AbortSignal): Promise<void>;
}
