import { Orderbook } from "./orderbook";
import type { MarketId } from "./types";
export declare class WebSocketManager {
    private socket;
    private orderbooks;
    private isConnected;
    private heartbeatInterval;
    private lastUpdateIds;
    private url;
    private reconnectAttempts;
    private readonly maxReconnectAttempts;
    private readonly reconnectDelay;
    private eventEmitter;
    private disposed;
    constructor(url: string);
    private connect;
    private handleReconnect;
    private handleMessage;
    private startHeartbeat;
    private stopHeartbeat;
    private sendSubscription;
    sendMessage(message: string): void;
    /**
     * Dispose of all resources: close WebSocket, stop heartbeat, remove listeners, clear Maps
     */
    dispose(): void;
    subscribeOrderbook(marketId: MarketId, signal?: AbortSignal): AsyncIterable<Orderbook>;
    unsubscribeOrderbook(marketId: MarketId): Promise<void>;
}
//# sourceMappingURL=websocket.d.ts.map