/// import * as tls from "tls"; import Hub, { UserRights } from "./hub"; import { Logger } from "./logger"; export interface Binding { from: string; to: string; pattern?: string; } export interface WSServerOptions extends tls.TlsOptions { type: "websocket"; port?: number; } export interface TcpServerOptions { type: "tcp"; host?: string; port?: number; backlog?: number; } export interface NodeDefinition { type: string; options?: { [key: string]: any; }; } export interface NodesConfig { [nodeName: string]: string | NodeDefinition; } export declare type ListenOption = WSServerOptions | TcpServerOptions; export interface UserOptions { [username: string]: string; } export declare type LoggingOptions = "none" | "fatal" | "error" | "warning" | "info" | "debug"; export interface Config { listen?: ListenOption | ListenOption[]; port?: number; verbose?: boolean; logging?: LoggingOptions; bindings?: Binding[]; nodes: string[] | NodesConfig; storage?: string; users?: string | UserOptions; rights?: UserRights; } export interface NormalizedConfig { listen: ListenOption[]; logging: LoggingOptions; bindings: Binding[]; nodes: NodesConfig; storage: string; users: UserOptions; rights: UserRights; } export declare class MServer { private hub; private plainAuth; private normalizedConfig; private logger; private connectionId; constructor(normalizedConfig: NormalizedConfig, hub?: Hub); init(): Promise; setLogger(logger: Logger): void; private log; private setUsers; private setPermissions; private instantiateNodes; private setupBindings; private setStorage; private startWebSocketServer; private startTcpServer; private startTransports; }