/// <reference types="node" />
import { Context as KoaContext, Request as KoaRequest } from 'koa';
import { Request as ExpressRequest } from 'express';
import { IncomingMessage } from 'http';
export interface IncomingMessageJSON {
    aborted: boolean;
    httpVersion: string;
    complete: boolean;
    headers: IncomingMessage['headers'];
    trailers: IncomingMessage['trailers'];
    query?: ExpressRequest['query'];
    statusCode?: number;
    statusMessage?: string;
    method?: string;
    url?: string;
    originalUrl?: string;
}
export interface ExpressRequestJSON {
    protocol: ExpressRequest['protocol'];
    secure: ExpressRequest['secure'];
    ip: ExpressRequest['ip'];
    ips: ExpressRequest['ips'];
    subdomains: ExpressRequest['subdomains'];
    path: ExpressRequest['path'];
    hostname: ExpressRequest['hostname'];
    host: ExpressRequest['host'];
    fresh: ExpressRequest['fresh'];
    stale: ExpressRequest['stale'];
    xhr: ExpressRequest['xhr'];
    body: ExpressRequest['body'];
    cookies: ExpressRequest['cookies'];
    params: ExpressRequest['params'];
    query: ExpressRequest['query'];
    route: ExpressRequest['route'];
    signedCookies: ExpressRequest['signedCookies'];
    originalUrl: ExpressRequest['originalUrl'];
    baseUrl: ExpressRequest['baseUrl'];
    method: ExpressRequest['method'];
    url: ExpressRequest['url'];
}
export interface KoaRequestJSON {
    headers: KoaRequest['headers'];
    method: KoaRequest['method'];
    url: KoaRequest['url'];
    originalUrl: KoaRequest['originalUrl'];
    origin: KoaRequest['origin'];
    href: KoaRequest['href'];
    path: KoaRequest['path'];
    query: KoaRequest['query'];
    host: KoaRequest['host'];
    hostname: KoaRequest['hostname'];
    fresh: KoaRequest['fresh'];
    stale: KoaRequest['stale'];
    protocol: KoaRequest['protocol'];
    secure: KoaRequest['secure'];
    ip: KoaRequest['ip'];
    ips: KoaRequest['ips'];
    subdomains: KoaRequest['subdomains'];
}
export interface KoaContextJSON {
    headers: KoaContext['headers'];
    method: KoaContext['method'];
    url: KoaContext['url'];
    originalUrl: KoaContext['originalUrl'];
    origin: KoaContext['origin'];
    href: KoaContext['href'];
    path: KoaContext['path'];
    query: KoaContext['query'];
    host: KoaContext['host'];
    hostname: KoaContext['hostname'];
    fresh: KoaContext['fresh'];
    stale: KoaContext['stale'];
    protocol: KoaContext['protocol'];
    secure: KoaContext['secure'];
    ip: KoaContext['ip'];
    ips: KoaContext['ips'];
    subdomains: KoaContext['subdomains'];
}
export default function requestToJSON(req: IncomingMessage | ExpressRequest | KoaRequest | KoaContext): IncomingMessageJSON | ExpressRequestJSON | KoaRequestJSON;
