import { FetchyMiddleware, IFetchParams, IFetchyMiddlewareConfig, IFetchyMiddlewareDeclaration } from "./base"; export interface IFetchyRetryMiddlewareConfig extends IFetchyMiddlewareConfig { attempts: number; backoff: number; retriableStatusCodes: ((statusCode: number) => boolean) | number[]; retryNetworkErrors: boolean; } export declare class FetchyRetryMiddleware extends FetchyMiddleware { protected config: IFetchyRetryMiddlewareConfig; private attemptsCount; private fetchParamsClone; private failedResponses; private errors; constructor(config: IFetchyRetryMiddlewareConfig, next: any); processRequest(fetchParams: IFetchParams, previousMiddleware: FetchyMiddleware | null): Promise; processResponse(promise0: Promise): Promise; private isRetriableCode; } export declare const getRetryMiddlewareDeclaration: (retry: boolean | IFetchyRetryMiddlewareConfig) => IFetchyMiddlewareDeclaration | null;