import KoaRouter from "@koa/router";
import { WebSocketServer, WebSocket, ServerOptions } from "ws";
import { IncomingMessage, Server } from "http";
export declare class WsServer<T extends typeof WebSocket.WebSocket = typeof WebSocket.WebSocket, U extends typeof IncomingMessage = typeof IncomingMessage> extends WebSocketServer<T, U> {
    constructor(options?: WsServer.Options<T, U>);
}
export declare namespace WsServer {
    interface Options<T extends typeof WebSocket.WebSocket = typeof WebSocket.WebSocket, U extends typeof IncomingMessage = typeof IncomingMessage> extends ServerOptions<T, U> {
        path: string;
    }
}
export declare class Router extends KoaRouter {
    wsStack: WsServer[];
    constructor(server: Server, options?: KoaRouter.RouterOptions);
    ws(path: string): WsServer<typeof import("ws"), typeof IncomingMessage>;
}
