///
/**
* @typedef {import('./ws-types.js').Message} Message
* @typedef {import('./ws-types.js').WsClientOpts} WsClientOpts
* @typedef {import('./ws-types.js').FullWsClientOpts} FullWsClientOpts
*/
export class WsClient extends EventEmitter<[never]> {
/**
* @param {WsClientOpts} opts
*/
constructor(opts: WsClientOpts);
/** @type {string[]} */
_channels: string[];
/** @type {WebSocket | undefined} */
_ws: WebSocket | undefined;
/** @type {FullWsClientOpts} */
opts: FullWsClientOpts;
/**
* @returns {Promise}
*/
_connect(): Promise;
_reconnect(): Promise;
/**
* @param {string} channel
* @param {boolean} [force]
* @param {number} [timeout]
* @returns {Promise}
*/
subscribe(channel: string, force?: boolean | undefined, timeout?: number | undefined): Promise;
/**
* @param {string} channel
* @param {(message: Message) => boolean} [filter]
* @param {number} [timeout]
* @param {boolean} [skipSubscribe]
* @param {boolean} [fullMessage]
* @returns {Promise}
*/
waitFor(channel: string, filter?: ((message: Message) => boolean) | undefined, timeout?: number | undefined, skipSubscribe?: boolean | undefined, fullMessage?: boolean | undefined): Promise;
close(): void;
}
export class DataFairWsClient extends WsClient {
/**
* @param {string} datasetId
* @param {string} eventType
* @param {number} [timeout]
* @returns {Promise}
*/
waitForJournal(datasetId: string, eventType: string, timeout?: number | undefined): Promise;
}
export type Message = import('./ws-types.js').Message;
export type WsClientOpts = import('./ws-types.js').WsClientOpts;
export type FullWsClientOpts = import('./ws-types.js').FullWsClientOpts;
import EventEmitter from 'node:events';
import WebSocket from 'ws';
//# sourceMappingURL=ws.d.ts.map