///
import * as Component from '../Component';
import * as RpcBus from '../RpcBus';
import { Query } from '../Query';
import { Request } from '../Request';
import { Reply } from '../Reply';
import * as http from 'http';
export declare type queryHandler = (query: Query) => Promise;
export declare type requestHandler = (request: Request) => Promise;
export declare type Mode = 'client' | 'server';
export interface Subscription extends RpcBus.Subscription {
}
export interface props extends Component.props {
mode: Mode;
HTTP: Config;
}
export interface Config {
port: number;
host?: string;
}
export declare class Transport extends Component.Component implements RpcBus.Transport {
protected mode: Mode;
protected config: Config;
protected server: http.Server;
protected queryHandler: queryHandler;
protected requestHandler: requestHandler;
constructor(props: props);
start(): Promise;
stop(): Promise;
serveQuery(handler: queryHandler): Promise;
query(query: Query): Promise;
serveRequest(handler: requestHandler): Promise;
request(request: Request): Promise;
respondReply(res: http.ServerResponse, promise: Promise): void;
}