import { Observable } from 'rxjs';
import { HttpClient, HttpErrorResponse } from '@angular/common/http';
import { NtUploadError, NtUploadResponse } from './upload-models';
import { NtUploadRef } from './upload-ref';
export declare type NtUploadEvent<T> = NtUploadResponse<T> | NtUploadError;
export declare abstract class NtUploadHandler {
    private _http;
    constructor(_http: HttpClient);
    upload<T>(url: string, uploadRef: NtUploadRef<T>): Observable<NtUploadEvent<T>>;
    private _progress;
    abstract getRequestData(file: File | Blob): any;
    abstract getResponseData<T>(body: any): T;
    abstract getErrorMessage(error: HttpErrorResponse): any;
}
