import { Type } from '@nestjs/common/interfaces/type.interface';
import { ApplicationConfig } from '@nestjs/core/application-config';
import { Observable, Subject } from 'rxjs';
import { WsContextCreator } from './context/ws-context-creator';
import { MessageMappingProperties } from './gateway-metadata-explorer';
import { GatewayMetadata } from './interfaces/gateway-metadata.interface';
import { NestGateway } from './interfaces/nest-gateway.interface';
import { SocketEventsHost } from './interfaces/socket-events-host.interface';
import { SocketServerProvider } from './socket-server-provider';
export declare class WebSocketsController {
private readonly socketServerProvider;
private readonly config;
private readonly contextCreator;
private readonly metadataExplorer;
constructor(socketServerProvider: SocketServerProvider, config: ApplicationConfig, contextCreator: WsContextCreator);
mergeGatewayAndServer(instance: NestGateway, metatype: Type<any> | Function, moduleKey: string): void;
subscribeToServerEvents<T extends GatewayMetadata>(instance: NestGateway, options: T, port: number, moduleKey: string): void;
subscribeEvents(instance: NestGateway, subscribersMap: MessageMappingProperties[], observableServer: SocketEventsHost): void;
getConnectionHandler(context: WebSocketsController, instance: NestGateway, subscribersMap: MessageMappingProperties[], disconnect: Subject<any>, connection: Subject<any>): (...args: unknown[]) => void;
subscribeInitEvent(instance: NestGateway, event: Subject<any>): void;
subscribeConnectionEvent(instance: NestGateway, event: Subject<any>): void;
subscribeDisconnectEvent(instance: NestGateway, event: Subject<any>): void;
subscribeMessages<T = any>(subscribersMap: MessageMappingProperties[], client: T, instance: NestGateway): void;
pickResult(defferedResult: Promise<any>): Promise<Observable<any>>;
private assignServerToProperties;
}