///
import * as fs from "fs";
export declare enum TaskStatus {
PENDING = 0,
DONE = 1,
DROPPED = 2
}
interface FileConcentratorParams {
taskStatusRecord: TaskStatus[];
outputPath: string;
deleteAfterWritten?: boolean;
ignoreBreakpoints?: boolean;
}
interface ConcentrationTask {
filePath: string;
index: number;
}
declare class FileConcentrator {
taskStatusRecords: TaskStatus[];
taskWriteCount: number[];
breakpoints: number[];
tasks: ConcentrationTask[];
outputFilename: string;
outputFileExt: string;
writeStream: fs.WriteStream;
lastFinishIndex: number;
writeSequence: number;
isCheckingWritableFiles: boolean;
deleteAfterWritten: boolean;
ignoreBreakpoints: boolean;
constructor({ taskStatusRecord, outputPath, deleteAfterWritten, ignoreBreakpoints }: FileConcentratorParams);
private createNextWriteStream;
private waitStreamWritable;
private checkWritableTasks;
private writeFiles;
addTasks(tasks: ConcentrationTask[]): void;
/**
* 注意:必须在所有任务添加后调用
*/
waitAllFilesWritten(): Promise;
closeWriteStream(): Promise;
getOutputFilePaths(): string[];
}
export default FileConcentrator;