/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import { type RequestOptions } from '../types';
export type { Agent } from 'node:http';
export type { Readable } from 'node:stream';
export type { ReadStream as FsReadStream } from 'node:fs';
export { MultipartBody } from './MultipartBody';
export type RequestInfo = globalThis.RequestInfo;
export type RequestInit = globalThis.RequestInit;
export type HeadersInit = globalThis.HeadersInit;
export interface Shims {
    kind: string;
    fetch: any;
    Request: any;
    Response: any;
    Headers: any;
    FormData: any;
    Blob: any;
    File: any;
    ReadableStream: any;
    getMultipartRequestOptions: <T extends NonNullable<unknown> = Record<string, unknown>>(form: Shims['FormData'], opts: RequestOptions<T>) => Promise<RequestOptions<T>>;
    getDefaultAgent: (url: string) => any;
    isFsReadStream: (value: any) => boolean;
}
export declare let kind: Shims['kind'] | undefined;
export declare let fetch: Shims['fetch'] | undefined;
export declare let Request: Shims['Request'] | undefined;
export declare let Response: Shims['Response'] | undefined;
export declare let Headers: Shims['Headers'] | undefined;
export declare let FormData: Shims['FormData'] | undefined;
export declare let Blob: Shims['Blob'] | undefined;
export declare let File: Shims['File'] | undefined;
export declare let ReadableStream: Shims['ReadableStream'] | undefined;
export declare let getMultipartRequestOptions: Shims['getMultipartRequestOptions'] | undefined;
export declare let getDefaultAgent: Shims['getDefaultAgent'] | undefined;
export declare let isFsReadStream: Shims['isFsReadStream'] | undefined;
export declare function setShims(shims: Shims): void;
