/// <reference types="node" />
import EventEmitter from 'events';
import { StrictEventEmitter } from 'strict-event-emitter-types';
import MessageConnection from './MessageConnection';
import { MessageEvent, MessageHandlerOptions } from './types';
export interface MessageServerEvents {
    connection: MessageConnection;
    message: (event: MessageEvent, connection: MessageConnection) => void;
    close: MessageConnection;
    error: Error;
}
declare const MessageServer_base: new () => StrictEventEmitter<EventEmitter, MessageServerEvents, MessageServerEvents, "addEventListener" | "removeEventListener", "on" | "addListener" | "removeListener" | "once" | "emit">;
export default class MessageServer extends MessageServer_base {
    private running;
    private readonly options;
    private readonly binary;
    private readonly connections;
    private server;
    private listening;
    constructor(options?: MessageHandlerOptions);
    start(): Promise<void>;
    stop(): void;
    isConnected(): boolean;
    isListening(): boolean;
    send(message: Buffer | string): void;
    private onServerConnection;
}
export {};
