///
import WebSocket from 'isomorphic-ws';
import { MempoolOptions, Transaction } from './interfaces';
export declare enum ConnectionState {
connected = 0,
connecting = 1,
offline = 2
}
export declare enum AddressTxEvent {
removed = "removed",
mempool = "mempool",
confirmed = "confirmed"
}
export type WebsocketEvent = AddressTxEvent | 'disconnected' | 'connected' | 'error';
export declare class MempoolSocket {
private options;
private wsUrl;
private heartbeatTimer;
private lastResponseTime;
private websocketState;
private ws;
private eventCallbacks;
private outQueue;
constructor(options?: MempoolOptions);
private init;
private reconnect;
private heartbeat;
private handleOpen;
private handleClose;
private handleResponse;
private handleMultiAddressTransactions;
private send;
isConnected(): boolean;
connect(): Promise;
disconnect(): void;
on(event: WebsocketEvent, callback: (args: {
address?: string;
tx?: Transaction;
error?: any;
}) => void): void;
off(event: WebsocketEvent): void;
trackAddresses(addresses: string[]): Promise;
}