///
import 'isomorphic-fetch';
import { Agent } from 'http';
import promiseRetry from 'promise-retry';
export declare type ShouldRetry = (responseOrError: Response | Error) => boolean;
export interface OnRequestOptions extends RequestInit {
url: string;
retryCount: number;
}
export interface OnRequestEndOptions extends OnRequestOptions {
error?: Error;
status?: Response['status'];
}
export interface JsonFetchOptions extends Omit {
agent?: Agent | ((parsedUrl: URL) => Agent);
body?: Record;
shouldRetry?: (responseOrError: Response | Error) => boolean;
retry?: Parameters[0];
timeout?: number;
expectedStatuses?: number[];
onRequestStart?: (opts: OnRequestOptions) => void;
onRequestEnd?: (opts: OnRequestEndOptions) => void;
}
export interface JsonFetchResponse {
status: number;
statusText: string;
headers: Headers;
text: string;
body: T;
}
export declare class FetchUnexpectedStatusError extends Error {
response?: T;
}
export { default as retriers } from './retriers';
export default function jsonFetch(requestUrl: string, jsonFetchOptions?: JsonFetchOptions): Promise;
//# sourceMappingURL=index.d.ts.map