import { ArtifactResponse, UploadResults } from './contracts'; import { UploadSpecification } from './upload-specification'; import { UploadOptions } from './upload-options'; export declare class UploadHttpClient { private uploadHttpManager; private statusReporter; constructor(); /** * Creates a file container for the new artifact in the remote blob storage/file service * @param {string} artifactName Name of the artifact being created * @returns The response from the Artifact Service if the file container was successfully created */ createArtifactInFileContainer(artifactName: string, options?: UploadOptions | undefined): Promise; /** * Concurrently upload all of the files in chunks * @param {string} uploadUrl Base Url for the artifact that was created * @param {SearchResult[]} filesToUpload A list of information about the files being uploaded * @returns The size of all the files uploaded in bytes */ uploadArtifactToFileContainer(uploadUrl: string, filesToUpload: UploadSpecification[], options?: UploadOptions): Promise; /** * Asynchronously uploads a file. The file is compressed and uploaded using GZip if it is determined to save space. * If the upload file is bigger than the max chunk size it will be uploaded via multiple calls * @param {number} httpClientIndex The index of the httpClient that is being used to make all of the calls * @param {UploadFileParameters} parameters Information about the file that needs to be uploaded * @returns The size of the file that was uploaded in bytes along with any failed uploads */ private uploadFileAsync; /** * Uploads a chunk of an individual file to the specified resourceUrl. If the upload fails and the status code * indicates a retryable status, we try to upload the chunk as well * @param {number} httpClientIndex The index of the httpClient being used to make all the necessary calls * @param {string} resourceUrl Url of the resource that the chunk will be uploaded to * @param {NodeJS.ReadableStream} openStream Stream of the file that will be uploaded * @param {number} start Starting byte index of file that the chunk belongs to * @param {number} end Ending byte index of file that the chunk belongs to * @param {number} uploadFileSize Total size of the file in bytes that is being uploaded * @param {boolean} isGzip Denotes if we are uploading a Gzip compressed stream * @param {number} totalFileSize Original total size of the file that is being uploaded * @returns if the chunk was successfully uploaded */ private uploadChunk; /** * Updates the size of the artifact from -1 which was initially set when the container was first created for the artifact. * Updating the size indicates that we are done uploading all the contents of the artifact */ patchArtifactSize(size: number, artifactName: string): Promise; }