import { Observable } from 'rxjs'; import type { Combine, StrictOmit } from 'ts-gems'; import { HttpBackend } from './http-backend.js'; import { HttpResponse } from './http-response.js'; import { type HttpEvent } from './interfaces/http-event.js'; import type { HttpInterceptor } from './interfaces/http-interceptor.js'; /** * * @class FetchBackend */ export declare class FetchBackend extends HttpBackend { interceptors: FetchBackend.Interceptor[]; defaults: FetchBackend.RequestDefaults; constructor(serviceUrl: string, options?: FetchBackend.Options); handle(init: FetchBackend.RequestInit): Observable; protected send(request: Request): Promise; protected prepareRequest(init: FetchBackend.RequestInit): Request; protected createResponse(init: HttpResponse.Initiator): HttpResponse; protected parseBody(fetchResponse: Response): Promise; } type DomRequestInit = RequestInit; /** * @namespace FetchBackend */ export declare namespace FetchBackend { type Interceptor = HttpInterceptor; interface Options extends HttpBackend.Options { interceptors?: Interceptor[]; defaults?: RequestDefaults; } interface RequestInit extends Combine, DomRequestInit> { duplex?: string; reportProgress?: boolean; } interface RequestOptions extends Partial> { } type RequestDefaults = RequestOptions & { headers: Headers; params: URLSearchParams; }; } export {};