import FormDataNode from 'form-data'; export interface UploadOptions { form: Record | FormData | FormDataNode; url: string; headers?: Record; withCredentials?: boolean; } export interface UploadResponse { data?: string | ArrayBuffer | Blob; xhr?: XMLHttpRequest; status?: Number; headers?: Record; } export declare type UploadState = 'new' | 'started' | 'failed' | 'successful' | 'aborted'; export declare type UploadStateChangeEventListener = (this: Upload, state: UploadState) => void; export declare type UploadProgressEventListener = (this: Upload, progress: number) => void; export declare type UploadErrorEventListener = (this: Upload) => void; export declare class Upload { private events; private form; private url; private headers?; private xhr?; private withCredentials?; private _uploadedBytes; private _totalBytes; private _state; constructor(options: UploadOptions); /** * POSTs the form. */ upload(): Promise; abort(): void; get uploadedBytes(): number; private setUploadedBytes; private increaseUploadedBytes; get totalBytes(): number; private setTotalBytes; /** * Current upload progress. A float between 0 and 1. */ get progress(): number; get state(): UploadState; private setState; /** * Adds a listener for a progress event. * @param eventType Event type. (progress) * @param listener Listener function. */ on(eventType: 'progress', listener: UploadProgressEventListener): void; /** * Adds a listener for an error event. * @param eventType Event type. (error) * @param listener Listener function. */ on(eventType: 'error', listener: UploadErrorEventListener): void; /** * Adds a listener for a state change event. * @param eventType Event type. (state) * @param listener Listener function. */ on(eventType: 'state', listener: UploadStateChangeEventListener): void; /** * Removes a listener for a progress event. * @param eventType Event type. (progress) * @param listener Listener function. */ off(eventType: 'progress', listener: UploadProgressEventListener): void; /** * Removes a listener for an error event. * @param eventType Event type. (error) * @param listener Listener function. */ off(eventType: 'error', listener: UploadErrorEventListener): void; /** * Removes a listener for a state change event. * @param eventType Event type. (state) * @param listener Listener function. */ off(eventType: 'state', listener: UploadStateChangeEventListener): void; private emit; }