/**
 * Forked from https://github.com/isomorphic-git/isomorphic-git/blob/main/src/http/web/index.js
 * for credentials: "include" support, configurable payload overrides, configurable logging etc.
 * @typedef {Object} GitProgressEvent
 * @property {string} phase
 * @property {number} loaded
 * @property {number} total
 * @callback ProgressCallback
 * @param {GitProgressEvent} progress
 * @returns {void | Promise<void>}
 */
interface GitHttpRequest {
    url: string;
    method?: string;
    headers?: Record<string, string>;
    agent?: object;
    body?: AsyncIterableIterator<Uint8Array>;
    onProgress?: any;
    signal?: object;
}
interface GitHttpResponse {
    url: string;
    method?: string;
    headers?: Record<string, string>;
    body?: AsyncIterableIterator<Uint8Array>;
    statusCode: number;
    statusMessage: string;
}
type HttpFetch = (request: GitHttpRequest) => Promise<GitHttpResponse>;
interface HttpClient {
    request: HttpFetch;
}
type MakeHttpClientArgs = {
    debug?: boolean;
    noCache?: boolean;
    description?: string;
    onRes?: ({ usedUrl, origUrl, resBody, statusCode, resHeaders, }: {
        usedUrl: string;
        origUrl: string;
        resBody: Uint8Array;
        statusCode: number;
        resHeaders: Record<string, string>;
    }) => any;
    onReq?: ({ body, url, method }: {
        body: any;
        url: string;
        method: string;
    }) => any;
};
export declare function makeHttpClient({ noCache, debug, description, onReq, onRes, }: MakeHttpClientArgs): HttpClient;
export {};
//# sourceMappingURL=client.d.ts.map