import { ConfigureFn, AjaxResponse, AjaxError } from './ajax-request'; import FileRecord from './file-record'; declare type ProgressFn = (event: ProgressEvent) => void; export declare type CreateFormDataFn = (fileRecord: FileRecord) => FormData; export interface TusOptions { retryDelays?: number[]; metadata?: any; } export declare type TusOptionsFn = (fileRecord: FileRecord) => TusOptions; declare class UploadHelper { addHeaders(xhr: XMLHttpRequest, headers: object): XMLHttpRequest; doUpload(url: string, headers: object, formData: FormData, progressCallback: ProgressFn, configureFn?: ConfigureFn): Promise; doDeleteUpload(url: string, headers: object, uploadData: any, configureFn?: ConfigureFn): Promise; doUpdateUpload(url: string, headers: object, uploadData: any, configureFn?: ConfigureFn): Promise; prepareUploadError(fileRecord: FileRecord, err: AjaxError, timeout?: number): void; upload(url: string, headers: object, fileRecords: FileRecord[], createFormData?: CreateFormDataFn, progressFn?: (progress: number) => void, configureFn?: ConfigureFn): Promise; deleteUpload(url: string, headers: object, fileRecord: FileRecord, uploadData?: any, configureFn?: ConfigureFn): Promise; updateUpload(url: string, headers: object, fileRecord: FileRecord, uploadData: any, configureFn?: ConfigureFn): Promise; doTusUpload(tus: any, url: string, fileRecord: FileRecord, headers: object, progressCallback: ProgressFn, tusOptionsFn?: TusOptionsFn, uploadWithCredentials?: boolean): Promise; tusUpload(tus: any, url: string, headers: object, fileRecords: FileRecord[], progressFn?: (progress: number) => void, tusOptionsFn?: TusOptionsFn, uploadWithCredentials?: boolean): Promise; tusDeleteUpload(tus: any, url: string, headers: object, fileRecord: FileRecord): Promise; } declare const _default: UploadHelper; export default _default;