import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
import 'rxjs/add/observable/dom/ajax';
import 'rxjs/add/operator/take';
import 'rxjs/add/operator/takeUntil';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/operator/switchMap';
import 'rxjs/add/operator/exhaustMap';
import 'rxjs/add/operator/retry';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/toPromise';
import 'rxjs/add/operator/do';
import 'rxjs/add/operator/share';
import 'rxjs/add/operator/partition';
import { AjaxResponsePlus, AjaxRequestOptions } from './interfaces';
export declare class AjaxCancelable {
    private request;
    private refCount;
    private subject$;
    private canceller$;
    constructor(request?: AjaxRequestOptions);
    private invokeSubjects();
    requestAjax(request?: AjaxRequestOptions): Observable<AjaxResponsePlus | never>;
    requestAjaxAsPromise(request?: AjaxRequestOptions): Promise<AjaxResponsePlus | never>;
    requestPriorityLastAjax(request?: AjaxRequestOptions): Observable<AjaxResponsePlus | never>;
    requestPriorityLastAjaxAsPromise(request?: AjaxRequestOptions): Promise<AjaxResponsePlus | never>;
    requestPriorityFirstAjax(request?: AjaxRequestOptions): Observable<AjaxResponsePlus | never>;
    requestPriorityFirstAjaxAsPromise(request?: AjaxRequestOptions): Promise<AjaxResponsePlus | never>;
    cancelAjax(): void;
    private unsubscribeSubjects();
    private ajaxRequestCallback(ajaxObj);
}
