import { Observable, Subject } from 'rxjs';
import { MessageMappingProperties } from './gateway-metadata-explorer';
import { ApplicationConfig } from '../app';
import { SocketServerProvider } from './socket-server-provider';
import { WsContextCreator } from './context/ws-context-creator';
import { ApplicationContextOptionsInterface, CleanGateway, Type } from '../contracts';
import { GatewayMetadata } from '../contracts/gateway-metadata';
import { ServerAndEventStreamsHost } from '../contracts/server-and-event-streams-host';
import { GraphInspector } from '../inspector/graph-inspector';
export declare class WebSocketsController {
    private readonly socketServerProvider;
    private readonly config;
    private readonly contextCreator;
    private readonly graphInspector;
    private readonly appOptions;
    private readonly logger;
    private readonly metadataExplorer;
    constructor(socketServerProvider: SocketServerProvider, config: ApplicationConfig, contextCreator: WsContextCreator, graphInspector: GraphInspector, appOptions?: ApplicationContextOptionsInterface);
    connectGatewayToServer(instance: CleanGateway, metatype: Type<unknown> | Function, moduleKey: string, instanceWrapperId: string): void;
    subscribeToServerEvents<T extends GatewayMetadata>(instance: CleanGateway, options: T, port: number, moduleKey: string, instanceWrapperId: string): void;
    subscribeEvents(instance: CleanGateway, subscribersMap: MessageMappingProperties[], observableServer: ServerAndEventStreamsHost): void;
    getConnectionHandler(context: WebSocketsController, instance: CleanGateway, subscribersMap: MessageMappingProperties[], disconnect: Subject<any>, connection: Subject<any>): (...args: unknown[]) => void;
    subscribeInitEvent(instance: CleanGateway, event: Subject<any>): void;
    subscribeConnectionEvent(instance: CleanGateway, event: Subject<any>): void;
    subscribeDisconnectEvent(instance: CleanGateway, event: Subject<any>): void;
    subscribeMessages<T = any>(subscribersMap: MessageMappingProperties[], client: T, instance: CleanGateway): void;
    pickResult(deferredResult: Promise<any>): Promise<Observable<any>>;
    inspectEntrypointDefinitions(instance: CleanGateway, port: number, messageHandlers: MessageMappingProperties[], instanceWrapperId: string): void;
    private assignServerToProperties;
    private printSubscriptionLogs;
}
//# sourceMappingURL=web-sockets-controller.d.ts.map