/**
 * @author Martin Karkowski
 * @email m.karkowski@zema.de
 * @create date 2021-03-22 19:03:15
 * @modify date 2022-01-03 17:34:13
 * @desc [description]
 */
import * as io from "socket.io";
import { ValidLoggerDefinition } from "../../logger/getLogger";
import { IRpcResponseMsg, IRequestRpcMsg } from "../../types/nope";
import { EventCommunicationInterface } from "./EventCommunicationInterface";
/**
 * Mirror Layer using IO-Sockets.
 *
 * @export
 * @class IoSocketMirrorServer
 */
export declare class ioSocketServerLayer extends EventCommunicationInterface {
    port: number;
    protected _sockets: Set<io.Socket>;
    protected _openRequests: {
        [index: string]: number;
    };
    protected _profile: boolean;
    /**
     * Creates an instance of IoSocketMirrorServer.
     * @author M.Karkowski
     * @param {number} port Port the Server is running on.
     * @param {ValidLoggerDefinition} [logger="info"]
     * @memberof IoSocketMirrorServer
     */
    constructor(port: number, logger?: ValidLoggerDefinition, profile?: boolean);
    protected _profileTask(mode: "add" | "remove", data: IRequestRpcMsg | IRpcResponseMsg): void;
    /**
     * Helper Function, to forward events to the other connected Sockets.
     *
     * @protected
     * @param {io.Socket} socket The socket, which initally received the data.
     * @param {string} event the event which was received
     * @param {*} data the data, that needs to be forwarded
     * @memberof IoSocketMirrorServer
     */
    protected _forward(socket: io.Socket, event: string, data: any): void;
    dispose(): Promise<void>;
}
