/// <reference types="node" />
import { Socket } from 'net';
import { EventEmitter } from 'eventemitter3';
import { IncomingConnectionType, SocketServerEvent } from './socketConnection';
export interface MosSocketServerEvents {
    [SocketServerEvent.CLIENT_CONNECTED]: (options: {
        socket: Socket;
        portDescription: IncomingConnectionType;
    }) => void;
    [SocketServerEvent.ERROR]: (err: Error) => void;
    [SocketServerEvent.CLOSE]: () => void;
}
export declare class MosSocketServer extends EventEmitter<MosSocketServerEvents> {
    private _port;
    private _portDescription;
    private _socketServer;
    private _debug;
    private _connectedSockets;
    /** */
    constructor(port: number, description: IncomingConnectionType, debug: boolean);
    dispose(sockets: Socket[]): Promise<void>;
    /** */
    listen(): Promise<void>;
    setDebug(debug: boolean): void;
    get port(): number;
    get portDescription(): IncomingConnectionType;
    /** */
    private _onClientConnection;
    /** */
    private _onServerError;
    /** */
    private _onServerClose;
    private debugTrace;
}
//# sourceMappingURL=mosSocketServer.d.ts.map