///
import { ArtusApplication } from '@artus/core';
import { WebsocketConfig, WebSocketEventNames, WebsocketEventRules, WebsocketMetrics } from './types';
import http from 'http';
import ws from 'ws';
export declare class WebsocketClient {
app: ArtusApplication;
private server;
private wsServer;
get supportedSocketEventNames(): WebSocketEventNames[];
init(config: WebsocketConfig, options?: Partial<{
existedServer: http.Server;
}>): Promise;
getServer(): http.Server;
getWsServer(): ws.WebSocketServer;
recordSocketMetrics(socket: ws.WebSocket, obj: WebsocketMetrics | object, options?: Partial<{
reset: boolean;
}>): WebsocketMetrics;
getSocketMetrics(socket: ws.WebSocket): WebsocketMetrics;
filterWsServerSockets(options?: Partial<{
filter: Parameters['filter']>[0];
}>): ws.WebSocket[];
findWsServerSocket(options: {
find: Parameters['filter']>[0];
}): ws.WebSocket | undefined;
getWsServerSameReqPathSockets(targetSocket: ws.WebSocket, options?: Partial<{
reqPathCaseInsensitive: boolean;
}>): ws.WebSocket[];
initializeEventRules(options?: Partial<{
requestPathCaseSensitive: boolean;
}>): WebsocketEventRules;
registerEvents(options?: Partial<{
requestPathCaseSensitive: boolean;
}>): void;
}