///
import { Socket } from 'net';
import { ByteBuffer } from '../buffer';
import { ConnectionStatus } from './connection-status';
export declare abstract class SocketServer {
readonly socket: Socket;
protected _connectionStatus: ConnectionStatus | T;
constructor(socket: Socket);
static launch>(serverName: string, hostName: string, port: number, socketServerFactory: (socket: Socket) => T): void;
dataReceived(data: Buffer): void;
closeConnection(): void;
error(error: any): void;
abstract initialHandshake(data: ByteBuffer): boolean;
abstract decodeMessage(data: ByteBuffer): void | Promise;
abstract connectionDestroyed(): void;
get connectionStatus(): ConnectionStatus | T;
get connectionAlive(): boolean;
}