/** TYPES **/
export interface XHRResponseInit extends ResponseInit {
    url?: string;
}
declare const XHRResponse_base: {
    new (body?: BodyInit | null | undefined, init?: ResponseInit | undefined): Response;
    prototype: Response;
    error(): Response;
    redirect(url: string | URL, status?: number | undefined): Response;
};
export declare class XHRResponse extends XHRResponse_base {
    protected _url: string;
    constructor(body?: BodyInit | null, init?: XHRResponseInit);
    get url(): string;
}
/** TYPES **/
export declare type XHRResponseTypeExtended = XMLHttpRequestResponseType | 'binary-string';
export declare function areReadableStreamSupported(): boolean;
export declare function isReadableStream(value: any): value is ReadableStream;
/** INIT AND SEND XHR FROM REQUEST **/
/**
 * Sets headers (type Headers) into xhr (type XMLHttpRequest)
 */
export declare function setHeadersIntoXHR(headers: Headers, xhr: XMLHttpRequest): void;
/**
 * Returns a boolean to assign to xhr.withCredentials from the parameters extracted from request
 */
export declare function getXHRWithCredentialsValueFromRequest(request: Request): boolean;
/**
 * Inits an XMLHttpRequest from a Request:
 *  - sets proper responseType, withCredentials, headers, etc...
 *  - aborts xhr if request.signal is aborted
 */
export declare function initXHRFromRequest(request: Request, xhr: XMLHttpRequest, responseType: XHRResponseTypeExtended): void;
/**
 * Inits an XMLHttpRequest from a Request, and sends the body
 */
export declare function initAndSendXHRFromRequestAndBody(xhr: XMLHttpRequest, responseType: XHRResponseTypeExtended, request: Request, body: BodyInit | null): void;
/**
 * Inits an XMLHttpRequest from a Request, and sends the body as a ReadableStream.
 */
export declare function initAndSendXHRFromRequestUsingReadableStream(xhr: XMLHttpRequest, responseType: XHRResponseTypeExtended, request: Request): void;
/**
 * Inits an XMLHttpRequest from a Request, and sends the body as a Blob.
 */
export declare function initAndSendXHRFromRequestUsingBlob(xhr: XMLHttpRequest, responseType: XHRResponseTypeExtended, request: Request, signal?: AbortSignal): Promise<void>;
/**
 * Inits and sends an XMLHttpRequest from a Request. Chooses best sending method.
 */
export declare function initAndSendXHRFromRequest(xhr: XMLHttpRequest, responseType: XHRResponseTypeExtended, request: Request, signal?: AbortSignal): Promise<void>;
/** CONVERTS FINISHED XHR INTO RESPONSE **/
/**
 * Converts a binary string to an Uint8Array
 */
export declare function binaryStringToUint8Array(input: string): Uint8Array;
/**
 * Converts an XHR.response (having different formats) into an Uint8Array
 * INFO: Assumes xhr.readyState is xhr.DONE and response is not null
 */
export declare function XHRResponseToUint8Array(xhr: XMLHttpRequest, responseType?: XHRResponseTypeExtended): Uint8Array;
/**
 * Converts an XHR.response (having different formats) into a Blob
 * Assumes xhr.readyState is xhr.DONE and response is not null
 */
export declare function XHRResponseToBlob(xhr: XMLHttpRequest, responseType?: XHRResponseTypeExtended): Blob;
/**
 * Converts an XHR.response (having different formats) into a ReadableStream
 * Assumes xhr.readyState before or equals to xhr.HEADERS_RECEIVED
 */
export declare function XHRResponseToReadableStream(xhr: XMLHttpRequest, responseType?: XHRResponseTypeExtended): ReadableStream<Uint8Array>;
export declare type IHeaderTuple = [key: string, value: string];
/**
 * Converts a raw headers' string to an array of tuple [key, value]
 */
export declare function parseRawHeaders(headers: string): IHeaderTuple[];
/**
 * Creates a ResponseInit from an XHR.response
 * Assumes xhr.readyState after or equals to xhr.HEADERS_RECEIVED
 */
export declare function XHRResponseToResponseInit(xhr: XMLHttpRequest): XHRResponseInit;
/**
 * Creates a Response from an XMLHttpRequest.
 * Assumes xhr.readyState is xhr.DONE and response is not null
 */
export declare function XHRResponseToResponse(xhr: XMLHttpRequest, responseType?: XHRResponseTypeExtended): Response;
/**
 * Creates a Response from an XMLHttpRequest. Uses ReadableStream.
 * Assumes xhr.readyState is after or equal to HEADERS_RECEIVED
 */
export declare function XHRResponseToResponseUsingReadableStream(xhr: XMLHttpRequest, responseType?: XHRResponseTypeExtended): Response;
export {};
