import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { UploadItem } from './upload-item.class';
import { UploadListener, UploaderOptions, UploadItemOptions, UploadItemEvent } from './models';
export declare class Uploader implements UploadListener {
    private httpClient;
    readonly onItemSuccess: Observable<UploadItemEvent>;
    readonly onItemProgress: Observable<UploadItemEvent>;
    readonly onItemError: Observable<UploadItemEvent>;
    private onItemSuccessSubject;
    private onItemProgressSubject;
    private onItemErrorSubject;
    private _totalProgress;
    private url;
    private method;
    private autoUpload;
    private removeAfterUpload;
    private queueLimit;
    private concurrency;
    private maxFileSize;
    private allowedMimeTypes;
    private queue;
    private scheduler;
    constructor(httpClient: HttpClient, options?: UploaderOptions);
    readonly itemsCount: number;
    readonly items: UploadItem[];
    readonly readyItemsCount: number;
    private readonly readyItems;
    readonly uploadingItemsCount: number;
    private readonly uploadingItems;
    readonly uploadedItemsCount: number;
    private readonly uploadedItems;
    readonly notUploadedItemsCount: number;
    private readonly notUploadedItems;
    readonly cancelledItemsCount: number;
    private readonly cancelledItems;
    readonly errorItemsCount: number;
    private readonly errorItems;
    readonly totalProgress: number;
    readonly isUploading: boolean;
    private onQueueItemSuccess;
    private onQueueItemError;
    private request;
    private calculateTotalProgress;
    private prepareQueueItem;
    private setupQueue;
    private isValidRequestParams;
    private isValidFileType;
    private isValidFileSize;
    private isValidFile;
    private canAddToQueue;
    private checkItem;
    addItem(options: UploadItemOptions): UploadItem;
    uploadItem(item: UploadItem): void;
    uploadAll(): void;
    cancelItem(item: UploadItem): void;
    cancelAll(): void;
    removeItem(item: UploadItem): void;
    clearQueue(): void;
}
