/// <reference types="node" />
import { EventEmitter } from 'events';
import net from 'net';
import StrictEventEmitter from 'strict-event-emitter-types';
import { MessageEvent } from './types';
export declare type MessageConnectionOptions = {
    binary?: boolean;
};
export interface MessageConnectionEmittedEvents {
    message: MessageEvent;
    error: Error;
    close: void;
}
declare const MessageConnection_base: new () => StrictEventEmitter<EventEmitter, MessageConnectionEmittedEvents, MessageConnectionEmittedEvents, "addEventListener" | "removeEventListener", "on" | "addListener" | "removeListener" | "once" | "emit">;
export default class MessageConnection extends MessageConnection_base {
    private socket;
    private readonly messageCodec;
    constructor(socket: net.Socket, options: MessageConnectionOptions);
    send(message: string | Buffer): void;
    private onSocketData;
    /**
     * Included for compatibility with the WebSocket API
     */
    destroy(): void;
    close: () => void;
    private onError;
}
export {};
