import { EtlFile } from "etl-typings";
export interface ProcessFileWithFlowOptions {
    etlFile: EtlFile;
    fileEncryptionPassword?: string;
    flowName: string;
    operationUUID: string;
}
export interface Status {
    startTime?: Date;
    currentTime?: Date;
    endTime?: Date;
    status?: string;
}
export interface Tagged {
    tag?: any;
}
export interface Validatable {
    targetFolder?: string;
    validate(): any;
}
export interface FullPipeline extends Validatable, Tagged {
    fromArgv(argv: any): any;
    fromJson(json: string): any;
    toJson(): string;
    fromJsonFile(jsonFile: string): any;
    toJsonFile(jsonFile: string): any;
    decryptAndUnTarOptions: DecryptAndUnTarOptions;
    unZipFileOptions?: UnZipFileOptions;
    mergePcapFilesOptions?: MergePcapFilesOptions;
}
export interface ProcessFullPipelineStatus extends Status, Tagged {
    decryptAndUnTarStatus?: DecryptAndUnTarStatus;
    unZipFileStatus?: UnZipFileStatus;
    mergePcapFilesStatus?: MergePcapFilesStatus;
}
export interface ProcessFullPipelineResult extends Status, Tagged {
    error?: Error;
    decryptAndUnTarResults?: DecryptAndUnTarResult[];
    unZipFileResults?: UnZipFileResult[][];
    mergePcapFilesResult?: MergePcapFilesResult;
}
export interface MergePcapFilesOptions extends Validatable {
    fromArgv(argv: any): any;
    pcapFiles?: string[];
    deleteOriginalPcapFiles?: boolean;
    mergedPcapFile?: string;
}
export interface MergePcapFilesStatus extends TaskStatus {
}
export interface MergePcapFilesResult {
    error: Error;
    mergedPcapFile: string;
}
export interface ParallelMergePcapFilesResult {
    inFile0: string;
    inFile1: string;
    outFile: string;
    outFileStats: string;
    error: Error;
}
export interface CopyFileResult {
    error: Error;
    inFile: string;
    outFile: string;
}
export interface UnZipFileOptions extends Validatable {
    zippedFiles?: string[];
    deleteOriginalZipFile?: boolean;
    foldersOfZippedFiles?: string[];
}
export interface UnZipFileStatus extends TaskStatus {
}
export interface UnZipFileResult {
    zippedFilePath: string;
    unzippedFilePath?: string;
    error?: Error;
}
export interface DecryptAndUnTarOptions extends Validatable {
    fromArgv(argv: any): any;
    encryptedFiles?: string[];
    foldersOfEncryptedFiles?: string[];
    encryptedFilePattern?: RegExp;
    password: string;
}
export interface TaskStatus {
    taskName: string;
    current: number;
    total: number;
}
export interface DecryptAndUnTarStatus extends TaskStatus {
    decryptAndUnTarOptions?: DecryptAndUnTarOptions;
}
export interface DecryptAndUnTarResult {
    exportDir: string;
    zipFiles: string[];
}
export interface FindFilesOptions {
    pattern?: RegExp;
    files?: string[];
    folders: string[];
}
