import "../polyfill";
import { Message } from "@truffle/dashboard-message-bus-common";
import { DashboardMessageBusConnectionEvents, DashboardMessageBusConnectionOptions } from "./types";
import { TypedEmitter } from "tiny-typed-emitter";
export declare class DashboardMessageBusConnection extends TypedEmitter<DashboardMessageBusConnectionEvents> {
    private _connectionType;
    private _socket;
    private _host;
    private _port;
    private _publishPort;
    private _subscribePort;
    private _connecting;
    constructor({ host, port, publishPort, subscribePort, connectionType: socketType }: DashboardMessageBusConnectionOptions);
    get isConnected(): boolean | undefined;
    get isConnecting(): boolean | undefined;
    get isClosing(): boolean | undefined;
    connect(): Promise<void>;
    send(message: Message): Promise<void>;
    send(data: string): Promise<void>;
    close(): Promise<void>;
    private _getMessageBusPort;
    private _createEventWrapperPromise;
    private _registerEventHandlers;
    private _cleanUpEventHandlers;
}
