/// <reference types="node" />
/**
 * After making a tough decision to quit socket.io
 * In order to make connections light and plane.
 *
 * I found out the default `net` module needs a parser
 * To feel socket.io like.
 *
 * - Read Streams
 * - Send writes as emits.
 */
import { Socket } from "net";
declare class PlaneSocket {
    socket: Socket;
    socketProvider?: () => Socket;
    events: Record<string, (...args: any[]) => any>;
    keepAliveRetries: number;
    private keepAlive;
    constructor(socket: Socket | (() => Socket));
    $keepAlive(): this;
    $setupListeners(): void;
    on(event: string, fn: (...args: any[]) => any): this;
    emit(event: string, ...args: any[]): this;
}
export default PlaneSocket;
