import { JobStatusClient } from "@aics/job-status-client"; import { JSSJob } from "@aics/job-status-client/type-declarations/types"; import { ILogger } from "js-logger/src/types"; import { FSSConnection } from "./connections/fss-connection"; import { StartUploadResponse, UploadResponse, Uploads } from "./types"; export declare const COPY_TYPE = "copy"; export declare const COPY_CHILD_TYPE = "copy_child"; export declare const ADD_METADATA_TYPE = "add_metadata"; /** * This class is responsible for uploading files through FSS. */ export declare class Uploader { private readonly fss; private readonly jss; private readonly username; private readonly logger; private readonly defaultJobInfo; defaultMountPoint: string; mountPoint: string; constructor(fss: FSSConnection, jobStatusClient: JobStatusClient, logger?: ILogger); private executeSteps; uploadFiles(startUploadResponse: StartUploadResponse, uploads: Uploads, uploadJobName: string, copyProgressCb?: (originalFilePath: string, bytesCopied: number, totalBytes: number) => void, copyProgressCbThrottleMs?: number): Promise; /** * Uploads files through FSS. * @param uploads a map of local file paths and metadata * @param uploadJob Job to retry * @param copyProgressCb callback on copy progress * @param copyProgressCbThrottleMs minimum amount of ms between calls to copyProgressCb */ retryUpload(uploads: Uploads, uploadJob: JSSJob, copyProgressCb?: (originalFilePath: string, bytesCopied: number, totalBytes: number) => void, copyProgressCbThrottleMs?: number): Promise; private validateUploadJob; private getUploadChildJobs; private getExistingUploadJobs; private getFileSizes; private getTotalBytesToCopy; private createUploadJobs; private createCopyJobs; private getSteps; private mapToResponse; }