import "rxjs/add/observable/fromPromise";
import { Observable } from "rxjs/Observable";
import { C8oCore } from "./c8oCore";
import { C8oProgress } from "./c8oProgress";
export declare class C8oPromise<T> {
    private c8o;
    private c8oResponse;
    private c8oProgress;
    private c8oFail;
    private nextPromise;
    private lastResponse;
    private lastFailure;
    private lastParameters;
    constructor(c8o: C8oCore);
    async(): Promise<any>;
    toObservable(): Observable<any>;
    then(c8oOnResponse: (response: T, parameters: Object) => C8oPromise<T>): any;
    progress(c8oOnProgress: (C8oProgress: C8oProgress) => C8oPromise<T>): any;
    fail(c8oOnFail: (error: Error, parameters: Object) => C8oPromise<T>): any;
    private _onResponse();
    onResponse(response: T, parameters: Object): void;
    onProgress(progress: C8oProgress): void;
    onFailure(error: Error, parameters: Object): void;
}
