import { TerraUploadItem } from './terra-upload-item'; import { TerraUploadProgress } from './terra-upload-progress'; import { BehaviorSubject, Observable } from 'rxjs'; export declare type UploadQueueUrlFactory = (storageKey: string) => string; export declare class TerraUploadQueue { private _uploadUrl; private _uploadMethod; progress: Observable; inProgress: Promise; status: BehaviorSubject; private _items; private _size; private _progressListeners; private _progressValue; constructor(_uploadUrl: string | UploadQueueUrlFactory, _uploadMethod?: 'GET' | 'POST' | 'DELETE' | 'PUT'); add(item: TerraUploadItem): TerraUploadQueue; remove(item: TerraUploadItem): TerraUploadQueue; startUpload(): Promise; private _uploadAllItems; private _uploadItem; private _onProgress; private _parseHeaders; private _getUploadUrl; }