/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import { IncomingMessage } from 'http';
import { Http2ServerRequest } from 'http2';
import { Data, Method, Query } from '../@types';
export type ServerRequest<T extends typeof IncomingMessage | typeof Http2ServerRequest = typeof IncomingMessage | typeof Http2ServerRequest> = Omit<InstanceType<T>, 'method'> & {
    parsedUrl: URL;
    error: boolean;
    startedAt: Date;
    endedAt: Date | null;
    query: Query;
    data: Data;
    buffer: Buffer;
    entityTooLarge: boolean;
    encrypted: boolean;
    method: Method;
    initialized: boolean;
    init: (this: ServerRequest<T>, encrypted: boolean) => void;
    prototype: ServerRequest<T>;
};
declare class Http1BaseRequest extends IncomingMessage {
}
export declare const Http1Request: typeof Http1BaseRequest;
declare class Http2BaseRequest extends Http2ServerRequest {
}
export declare const Http2Request: typeof Http2BaseRequest;
export {};
