export type HttpResponse = {
    status: number;
    headers: Record<string, string>;
    body?: ReadableStream;
    url?: string;
};
export type RequestResponse = HttpResponse & {
    redirectSkipped?: string;
};
export type RedirectTarget = {
    url: string;
    shouldSkip: boolean;
};
type ProcessRedirectTarget = (url: string) => Promise<RedirectTarget>;
type RequestOptions = {
    headers?: Record<string, string>;
    timeout?: number;
    redirect: 'follow' | 'manual';
    allowInsecureCerts?: boolean;
    processRedirectTarget?: ProcessRedirectTarget;
};
/** Reset shared HTTP agents, primarily to isolate tests. */
export declare function resetSharedAgents(): void;
/** Make an HTTP request, applying redirect policy when one is provided. */
export declare function makeRequest(method: string, url: string, options: RequestOptions): Promise<RequestResponse>;
export {};
