import { DownloadContext } from '../context';
import { DownloadChunk, DownloadFile } from '../models';
import { IDownloadFilesRepository } from '../repositories';
import { ILocker, ILogger } from '../utilities';
import { BackgroundJob } from './BackgroundJob';

export declare class FileChunkSplitter extends BackgroundJob {
    private filesRepo;
    private locker;
    static readonly type: string;
    constructor(filesRepo: IDownloadFilesRepository, locker: ILocker, logger: ILogger, context: DownloadContext);
    static logsProvider: {
        info: {
            fileIsCompletelyChunked: (file: DownloadFile, chunkSize: number) => string;
            numberOfChunksCreated: (file: DownloadFile, chunks: DownloadChunk[]) => string;
            numberOfChunksInFile: (file: DownloadFile, numberOfChunks: number, chunkSize: number) => string;
        };
        warn: {
            emptyFile: (file: DownloadFile) => string;
        };
    };
    protected processInternal(signal: AbortSignal): Promise<void>;
}
