///
import http from 'http';
import * as yup from 'yup';
import { Logger } from '../../logger';
import { Gauge, Meter } from '../../metrics';
import { RpcRequest } from '../request';
import { ApiNamespace, Router } from '../routes';
import { RpcServer } from '../server';
import { IRpcAdapter } from './adapter';
export type RpcHttpError = {
status: number;
code: string;
message: string;
stack?: string;
};
export declare const RpcHttpErrorSchema: yup.ObjectSchema;
export type RpcHttpResponse = {
status?: number;
data: unknown;
};
export declare const RpcHttpResponseSchema: yup.ObjectSchema;
export declare class RpcHttpAdapter implements IRpcAdapter {
server: http.Server | null;
router: Router | null;
started: boolean;
readonly host: string;
readonly port: number;
readonly logger: Logger;
readonly namespaces: ApiNamespace[];
readonly requests: Map;
}>;
inboundTraffic: Meter;
outboundTraffic: Meter;
inboundBytes: Gauge;
outboundBytes: Gauge;
constructor(host: string, port: number, logger: Logger | undefined, namespaces: ApiNamespace[]);
attach(server: RpcServer): void | Promise;
start(): Promise;
onRequest(req: http.IncomingMessage, res: http.ServerResponse): void;
stop(): Promise;
cleanUpRequest(requestId: string): void;
handleRequest(request: http.IncomingMessage, response: http.ServerResponse, requestId: string): Promise;
formatRoute(request: http.IncomingMessage): string | undefined;
}
//# sourceMappingURL=httpAdapter.d.ts.map