import { HttpContext, HttpRequest } from '@angular/common/http'; import { RequestPredicate } from '../types'; export interface ContextPredicate { /** * Returns a cloned request that is marked as handled by this predicate * * @example * const contextPredicate = createContextPredicate(); * httpClient.request(contextPredicate.getMarkedRequest(new HttpRequest(...)).pipe(...) * */ getMarkedRequest: (req: HttpRequest) => HttpRequest; /** * Returns a context that is marked as handled by this predicate * * @example * const contextPredicate = createContextPredicate(); * httpClient.get(..., { context: contextPredicate.getContext() }) */ getContext: () => HttpContext; /** * Marks a context that it is handled by this predicate * * @example * const contextPredicate = createContextPredicate(); * const context = new HttpContext(); * contextPredicate.markContext(context); * httpClient.get(..., { context }) */ markContext: (context: HttpContext) => void; /** Returns true if request is marked as handled by this predicate */ requestPredicate: RequestPredicate; } /** * Creates a predicate that marks requests as handled by this predicate * * @example * const contextPredicate = createContextPredicate(); * * createHttpRetryInterceptorFn({ * ... * shouldHandleRequest: contextPredicate.requestPredicate, * ... * }) * * httpClient.request(contextPredicate.getMarkedRequest(new HttpRequest(...)).pipe(...) * */ export declare function createContextPredicate(): ContextPredicate;