import { type WebSocketServiceTopicSubscriptionMessage } from '@nori-zk/pts-types';
import { type WebSocketSubject } from 'rxjs/webSocket';
import { type ReconnectingWebSocketSubject } from './reconnectingSocket.js';
export { type ReconnectingWebSocketSubject };
/**
 * Creates a basic `WebSocketSubject` for receiving bridge-related messages.
 *
 * This socket:
 * - Subscribes to `state.eth`, `state.bridge`, and `timings.notices.transition` on open.
 * - Sends `ping` messages at a fixed interval (heartbeat).
 * - Ignores `pong` replies in the message stream.
 *
 * Automatically unsubscribes from heartbeat pings on socket close.
 *
 * @param url WebSocket server URL (default: wss://wss.nori.it.com)
 * @param heartBeatInterval Interval for heartbeat pings in ms (default: 3000)
 * @returns A filtered WebSocketSubject that emits structured subscription messages.
 */
export declare function getBridgeSocket$(url?: string, heartBeatInterval?: number): WebSocketSubject<WebSocketServiceTopicSubscriptionMessage>;
/**
 * Creates a reconnecting WebSocketSubject that:
 * - Handles connection state tracking and automatic reconnect with exponential backoff
 * - Sends regular `ping` heartbeats
 * - Watches for missing `pong` responses and triggers reconnection if threshold is exceeded
 * - Subscribes to key bridge-related topics on connection
 * - Filters out pong replies from message stream
 *
 * @param url WebSocket server URL (default: wss://wss.nori.it.com)
 * @param heartBeatInterval Interval in ms for sending pings (default: 3000)
 * @param pongTimeoutMultiplier Multiplier to determine allowed pong delay before reconnection (default: 2)
 * @returns An object containing:
 *   - `bridgeSocket$`: the reconnecting WebSocket observable for bridge messages
 *   - `bridgeSocketConnectionState$`: connection state observable
 */
export declare function getReconnectingBridgeSocket$(url?: string, heartBeatInterval?: number, pongTimeoutMultiplier?: number): {
    bridgeSocket$: ReconnectingWebSocketSubject<WebSocketServiceTopicSubscriptionMessage>;
    bridgeSocketConnectionState$: import("rxjs").Observable<"connecting" | "open" | "closed" | "reconnecting" | "permanently-closed">;
};
