import type { SafeAny } from '@ngify/core'; import { Observable } from 'rxjs'; import type { HttpContext } from './context'; import { HttpFeature } from './feature'; import type { HttpHeaders } from './headers'; import type { HttpParams } from './params'; import { HttpRequest } from './request'; import { HttpResponse, type HttpEvent } from './response'; type Body = HttpRequest['body']; type Params = ConstructorParameters[0] | HttpParams | null; type Headers = ConstructorParameters[0] | HttpHeaders; interface RequestOptions { params?: Params; headers?: Headers; context?: HttpContext; reportProgress?: boolean; withCredentials?: boolean; } export declare class HttpClient { private handler; constructor(...features: HttpFeature[]); request(request: HttpRequest, options?: { observe?: 'body'; }): Observable; request(request: HttpRequest, options?: { observe?: 'events'; }): Observable>; request(request: HttpRequest, options?: { observe?: 'response'; }): Observable>; request(request: HttpRequest, options?: { observe?: 'body' | 'events' | 'response'; }): Observable | HttpResponse>; delete(url: string, options?: RequestOptions & { observe?: 'body'; responseType?: 'json'; body?: Body; }): Observable; delete(url: string, options?: RequestOptions & { observe?: 'body'; responseType: 'arraybuffer'; body?: Body; }): Observable; delete(url: string, options?: RequestOptions & { observe?: 'body'; responseType: 'blob'; body?: Body; }): Observable; delete(url: string, options?: RequestOptions & { observe?: 'body'; responseType: 'text'; body?: Body; }): Observable; delete(url: string, options?: RequestOptions & { observe?: 'events'; responseType?: 'json'; body?: Body; }): Observable>; delete(url: string, options?: RequestOptions & { observe?: 'events'; responseType: 'arraybuffer'; body?: Body; }): Observable>; delete(url: string, options?: RequestOptions & { observe?: 'events'; responseType: 'blob'; body?: Body; }): Observable>; delete(url: string, options?: RequestOptions & { observe?: 'events'; responseType: 'text'; body?: Body; }): Observable>; delete(url: string, options?: RequestOptions & { observe?: 'response'; responseType?: 'json'; body?: Body; }): Observable>; delete(url: string, options?: RequestOptions & { observe?: 'response'; responseType: 'arraybuffer'; body?: Body; }): Observable>; delete(url: string, options?: RequestOptions & { observe?: 'response'; responseType: 'blob'; body?: Body; }): Observable>; delete(url: string, options?: RequestOptions & { observe?: 'response'; responseType: 'text'; body?: Body; }): Observable>; get(url: string, options?: RequestOptions & { observe?: 'body'; responseType?: 'json'; }): Observable; get(url: string, options?: RequestOptions & { observe?: 'body'; responseType: 'arraybuffer'; }): Observable; get(url: string, options?: RequestOptions & { observe?: 'body'; responseType: 'blob'; }): Observable; get(url: string, options?: RequestOptions & { observe?: 'body'; responseType: 'text'; }): Observable; get(url: string, options?: RequestOptions & { observe?: 'events'; responseType?: 'json'; }): Observable>; get(url: string, options?: RequestOptions & { observe?: 'events'; responseType: 'arraybuffer'; }): Observable>; get(url: string, options?: RequestOptions & { observe?: 'events'; responseType: 'blob'; }): Observable>; get(url: string, options?: RequestOptions & { observe?: 'events'; responseType: 'text'; }): Observable>; get(url: string, options?: RequestOptions & { observe?: 'response'; responseType?: 'json'; }): Observable>; get(url: string, options?: RequestOptions & { observe?: 'response'; responseType: 'arraybuffer'; }): Observable>; get(url: string, options?: RequestOptions & { observe?: 'response'; responseType: 'blob'; }): Observable>; get(url: string, options?: RequestOptions & { observe?: 'response'; responseType: 'text'; }): Observable>; head(url: string, options?: RequestOptions & { observe?: 'body'; responseType?: 'json'; }): Observable; head(url: string, options?: RequestOptions & { observe?: 'body'; responseType: 'arraybuffer'; }): Observable; head(url: string, options?: RequestOptions & { observe?: 'body'; responseType: 'blob'; }): Observable; head(url: string, options?: RequestOptions & { observe?: 'body'; responseType: 'text'; }): Observable; head(url: string, options?: RequestOptions & { observe?: 'events'; responseType?: 'json'; }): Observable>; head(url: string, options?: RequestOptions & { observe?: 'events'; responseType: 'arraybuffer'; }): Observable>; head(url: string, options?: RequestOptions & { observe?: 'events'; responseType: 'blob'; }): Observable>; head(url: string, options?: RequestOptions & { observe?: 'events'; responseType: 'text'; }): Observable>; head(url: string, options?: RequestOptions & { observe?: 'response'; responseType?: 'json'; }): Observable>; head(url: string, options?: RequestOptions & { observe?: 'response'; responseType: 'arraybuffer'; }): Observable>; head(url: string, options?: RequestOptions & { observe?: 'response'; responseType: 'blob'; }): Observable>; head(url: string, options?: RequestOptions & { observe?: 'response'; responseType: 'text'; }): Observable>; options(url: string, options?: RequestOptions & { observe?: 'body'; responseType?: 'json'; }): Observable; options(url: string, options?: RequestOptions & { observe?: 'body'; responseType: 'arraybuffer'; }): Observable; options(url: string, options?: RequestOptions & { observe?: 'body'; responseType: 'blob'; }): Observable; options(url: string, options?: RequestOptions & { observe?: 'body'; responseType: 'text'; }): Observable; options(url: string, options?: RequestOptions & { observe?: 'events'; responseType?: 'json'; }): Observable>; options(url: string, options?: RequestOptions & { observe?: 'events'; responseType: 'arraybuffer'; }): Observable>; options(url: string, options?: RequestOptions & { observe?: 'events'; responseType: 'blob'; }): Observable>; options(url: string, options?: RequestOptions & { observe?: 'events'; responseType: 'text'; }): Observable>; options(url: string, options?: RequestOptions & { observe?: 'response'; responseType?: 'json'; }): Observable>; options(url: string, options?: RequestOptions & { observe?: 'response'; responseType: 'arraybuffer'; }): Observable>; options(url: string, options?: RequestOptions & { observe?: 'response'; responseType: 'blob'; }): Observable>; options(url: string, options?: RequestOptions & { observe?: 'response'; responseType: 'text'; }): Observable>; post(url: string, body?: Body, options?: RequestOptions & { observe?: 'body'; responseType?: 'json'; }): Observable; post(url: string, body?: Body, options?: RequestOptions & { observe?: 'body'; responseType: 'arraybuffer'; }): Observable; post(url: string, body?: Body, options?: RequestOptions & { observe?: 'body'; responseType: 'blob'; }): Observable; post(url: string, body?: Body, options?: RequestOptions & { observe?: 'body'; responseType: 'text'; }): Observable; post(url: string, body?: Body, options?: RequestOptions & { observe?: 'events'; responseType?: 'json'; }): Observable>; post(url: string, body?: Body, options?: RequestOptions & { observe?: 'events'; responseType: 'arraybuffer'; }): Observable>; post(url: string, body?: Body, options?: RequestOptions & { observe?: 'events'; responseType: 'blob'; }): Observable>; post(url: string, body?: Body, options?: RequestOptions & { observe?: 'events'; responseType: 'text'; }): Observable>; post(url: string, body?: Body, options?: RequestOptions & { observe?: 'response'; responseType?: 'json'; }): Observable>; post(url: string, body?: Body, options?: RequestOptions & { observe?: 'response'; responseType: 'arraybuffer'; }): Observable>; post(url: string, body?: Body, options?: RequestOptions & { observe?: 'response'; responseType: 'blob'; }): Observable>; post(url: string, body?: Body, options?: RequestOptions & { observe?: 'response'; responseType: 'text'; }): Observable>; put(url: string, body?: Body, options?: RequestOptions & { observe?: 'body'; responseType?: 'json'; }): Observable; put(url: string, body?: Body, options?: RequestOptions & { observe?: 'body'; responseType: 'arraybuffer'; }): Observable; put(url: string, body?: Body, options?: RequestOptions & { observe?: 'body'; responseType: 'blob'; }): Observable; put(url: string, body?: Body, options?: RequestOptions & { observe?: 'body'; responseType: 'text'; }): Observable; put(url: string, body?: Body, options?: RequestOptions & { observe?: 'events'; responseType?: 'json'; }): Observable>; put(url: string, body?: Body, options?: RequestOptions & { observe?: 'events'; responseType: 'arraybuffer'; }): Observable>; put(url: string, body?: Body, options?: RequestOptions & { observe?: 'events'; responseType: 'blob'; }): Observable>; put(url: string, body?: Body, options?: RequestOptions & { observe?: 'events'; responseType: 'text'; }): Observable>; put(url: string, body?: Body, options?: RequestOptions & { observe?: 'response'; responseType?: 'json'; }): Observable>; put(url: string, body?: Body, options?: RequestOptions & { observe?: 'response'; responseType: 'arraybuffer'; }): Observable>; put(url: string, body?: Body, options?: RequestOptions & { observe?: 'response'; responseType: 'blob'; }): Observable>; put(url: string, body?: Body, options?: RequestOptions & { observe?: 'response'; responseType: 'text'; }): Observable>; patch(url: string, body?: Body, options?: RequestOptions & { observe?: 'body'; responseType?: 'json'; }): Observable; patch(url: string, body?: Body, options?: RequestOptions & { observe?: 'body'; responseType: 'arraybuffer'; }): Observable; patch(url: string, body?: Body, options?: RequestOptions & { observe?: 'body'; responseType: 'blob'; }): Observable; patch(url: string, body?: Body, options?: RequestOptions & { observe?: 'body'; responseType: 'text'; }): Observable; patch(url: string, body?: Body, options?: RequestOptions & { observe?: 'events'; responseType?: 'json'; }): Observable>; patch(url: string, body?: Body, options?: RequestOptions & { observe?: 'events'; responseType: 'arraybuffer'; }): Observable>; patch(url: string, body?: Body, options?: RequestOptions & { observe?: 'events'; responseType: 'blob'; }): Observable>; patch(url: string, body?: Body, options?: RequestOptions & { observe?: 'events'; responseType: 'text'; }): Observable>; patch(url: string, body?: Body, options?: RequestOptions & { observe?: 'response'; responseType?: 'json'; }): Observable>; patch(url: string, body?: Body, options?: RequestOptions & { observe?: 'response'; responseType: 'arraybuffer'; }): Observable>; patch(url: string, body?: Body, options?: RequestOptions & { observe?: 'response'; responseType: 'blob'; }): Observable>; patch(url: string, body?: Body, options?: RequestOptions & { observe?: 'response'; responseType: 'text'; }): Observable>; } export {};