///
import { Readable } from "stream";
import { Headers } from "./headers";
import { Signal } from "./signal";
import { CommonBody, EmptyBody, CommonRequestOptions, CommonResponseOptions, CommonRequest, CommonResponse, kBodyUsed, kBodyDestroyed } from "./common";
export declare type RawBody = Readable | Buffer | ArrayBuffer | string;
export declare type CreateBody = RawBody | EmptyBody;
export declare type RequestOptions = CommonRequestOptions;
export declare type ResponseOptions = CommonResponseOptions;
export * from "./headers";
export * from "./signal";
/**
* Node.js `Body` implementation.
*/
export declare class Body implements CommonBody {
$rawBody: RawBody | null | typeof kBodyUsed | typeof kBodyDestroyed;
constructor(body: CreateBody);
readonly bodyUsed: boolean;
json(): Promise;
text(): Promise;
buffer(): Promise;
arrayBuffer(): Promise;
stream(): Readable;
clone(): Body;
destroy(): Promise;
}
/**
* Node.js `Request` implementation.
*/
export declare class Request extends Body implements CommonRequest {
url: string;
method: string;
headers: Headers;
trailer: Promise;
readonly signal: Signal;
constructor(input: string | Request, init?: RequestOptions);
clone(): Request;
}
/**
* Node.js `Response` implementation.
*/
export declare class Response extends Body implements CommonResponse {
status: number;
statusText: string;
headers: Headers;
trailer: Promise;
readonly ok: boolean;
constructor(body?: CreateBody, init?: ResponseOptions);
clone(): Response;
}