import { DownloadContext } from '../context';
import { IDownloadApiClient } from '../external';
import { DownloadFile } from '../models';
import { IDownloadFilesRepository, IDownloadTransactionsRepository } from '../repositories';
import { IStorage } from '../storage';
import { ILocker, ILogger, IRetrier, IUserPromptService } from '../utilities';
import { BackgroundJob } from './BackgroundJob';

export declare class ServerProcessingFileWatcher extends BackgroundJob {
    private filesRepo;
    private transactionsRepo;
    private apiClient;
    private retrier;
    private storage;
    private locker;
    static readonly type: string;
    private filePathFixer;
    constructor(filesRepo: IDownloadFilesRepository, transactionsRepo: IDownloadTransactionsRepository, apiClient: IDownloadApiClient, retrier: IRetrier, storage: IStorage, locker: ILocker, userPromptService: IUserPromptService, logger: ILogger, context: DownloadContext);
    static logsProvider: {
        error: {
            fileIsMissing: (file: DownloadFile) => string;
        };
        info: {
            continueWaiting: (file: DownloadFile) => string;
            fileIsReady: (file: DownloadFile) => string;
        };
    };
    protected processInternal(signal: AbortSignal): Promise<void>;
}
