///
import * as http from 'http';
import * as WebSocket from 'ws';
import * as net from 'net';
/**
* Assume `wsServer` to be created with `noServer: true` option.
* `httpHandler` can be accessed as `app.handler` in `express` or as `app.callback()` in `koa`.
*
* Create http server.
* Handle 'request' events via `httpHandler`.
* On 'upgrade' event call `wsServer.handleUpgrade` and emit 'connection' event from `wsServer`.
*/
export declare function createHttpWsServer(): {
httpServer: http.Server;
wsServer: WebSocket.Server;
};
/**
* Register `reject` as 'error' events handler.
* Try to `server.listen`.
* If successfull then unregister `reject` as 'error' events handler and `resolve`.
*/
export declare function listen(server: http.Server, port: number): Promise;
export declare function close(server: http.Server): Promise;
export declare class HttpWsServer {
protected port: number;
httpServer: http.Server;
wsServer: WebSocket.Server;
protected sockets: Set;
constructor(port: number);
listen(): Promise;
destroyAllSockets(): void;
close({ force }?: {
force?: boolean;
}): Promise;
}