import { Observable } from 'rxjs'; import { HttpHeadersInterface } from './http-headers.interface'; import { HttpRequestOptionsInterface } from './http-request-options.interface'; import { HttpRequestInterface } from './http-request.interface'; import { HttpResponseInterface } from './http-response.interface'; /** * Abstraction of HTTP client service. */ export interface HttpClientInterface { /** * Execute HEAD request on given URL. */ head(url: string, data?: unknown | undefined | null, headers?: HttpHeadersInterface | null | undefined, options?: HttpRequestOptionsInterface | null | undefined): Observable>; /** * Execute GET request on given URL. */ get(url: string, headers?: HttpHeadersInterface | null | undefined, options?: HttpRequestOptionsInterface | null | undefined): Observable>; /** * Execute POST request on given URL. */ post(url: string, data: unknown, headers?: HttpHeadersInterface | null | undefined, options?: HttpRequestOptionsInterface | null | undefined): Observable>; /** * Execute PATCH request on given URL. */ patch(url: string, data: unknown | null | undefined, headers?: HttpHeadersInterface | null | undefined, options?: HttpRequestOptionsInterface | null | undefined): Observable>; /** * Execute PUT request on given URL. */ put(url: string, data?: unknown | null | undefined, headers?: HttpHeadersInterface | null | undefined, options?: HttpRequestOptionsInterface | null | undefined): Observable>; /** * Execute DELETE request on given URL. */ delete(url: string, headers?: HttpHeadersInterface | null | undefined, options?: HttpRequestOptionsInterface | null | undefined): Observable>; /** * Execute request. */ request(request: HttpRequestInterface, options?: HttpRequestOptionsInterface | null | undefined): Observable>; }