/// <reference types="node" />
/// <reference types="node" />
import type { IncomingHttpHeaders, IncomingMessage } from "http";
import { RequestInterceptor, ErrorHandler, ResponseInterceptor } from "../interface/i-$-open-api";
import { HTTP_METHOD, IRequest } from "./open-api";
export declare const http: (request: IRequest, requestInterceptor: RequestInterceptor, errorHandler: ErrorHandler, responseInterceptor: ResponseInterceptor<Response | globalThis.Response>) => Promise<string>;
export interface RequestOptions {
    body?: string | Buffer;
    method?: HTTP_METHOD;
    headers?: IncomingHttpHeaders;
}
declare class HeadersBase {
    [name: string]: string;
    constructor(headers?: IncomingHttpHeaders);
}
export declare const Headers: typeof HeadersBase;
export declare class Request {
    method: HTTP_METHOD;
    headers: HeadersBase;
    body: Buffer;
    url: URL;
    constructor(url: string | URL, { method, headers, body }?: RequestOptions);
}
export declare class Response {
    incomingMessage: IncomingMessage;
    status: number;
    statusText: string;
    headers: HeadersBase;
    body: Promise<Buffer>;
    constructor(incomingMessage: IncomingMessage);
    blob(): Promise<Buffer>;
    text(): Promise<string>;
}
export {};
