///
///
///
import { IncomingMessage, ServerResponse } from "http";
import { ContextOptions, ILogger, SkhailNetwork } from "@skhail/core";
import { Duplex } from "stream";
import { IRequestHandler } from "../types";
import { WebSocket } from "ws";
import "urlpattern-polyfill";
export declare class WebSocketHandler implements IRequestHandler {
private readonly callback;
private webSocketServer?;
private readonly pattern;
private logger?;
constructor(route: string, callback: (websocket: WebSocket, id: string) => void);
setLogger(logger: ILogger): void;
private getParameters;
match(url: string): boolean;
prepare(): Promise;
cleanup(): Promise;
upgrade(_network: SkhailNetwork, request: IncomingMessage, socket: Duplex, head: Buffer): void;
handle(_network: SkhailNetwork, _request: IncomingMessage, response: ServerResponse): Promise;
}