@cashu/cashu-ts
Version:
cashu library for communicating with a cashu mint
50 lines (49 loc) • 1.96 kB
TypeScript
import { JsonRpcReqParams } from './model/types';
import { Logger } from './logger';
export declare class ConnectionManager {
private static instance;
private connectionMap;
static getInstance(): ConnectionManager;
getConnection(url: string, logger?: Logger): WSConnection;
}
export declare class WSConnection {
readonly url: URL;
private readonly _WS;
private ws;
private connectionPromise;
private subListeners;
private rpcListeners;
private messageQueue;
private handlingInterval?;
private rpcId;
private _logger;
private onCloseCallbacks;
constructor(url: string, logger?: Logger);
connect(): Promise<void>;
sendRequest(method: 'subscribe', params: JsonRpcReqParams): void;
sendRequest(method: 'unsubscribe', params: {
subId: string;
}): void;
/**
* @deprecated Use cancelSubscription for JSONRPC compliance.
*/
closeSubscription(subId: string): void;
addSubListener<TPayload = unknown>(subId: string, callback: (payload: TPayload) => void): void;
private addRpcListener;
private removeRpcListener;
private removeListener;
ensureConnection(): Promise<void>;
private handleNextMessage;
createSubscription<TPayload = unknown>(params: Omit<JsonRpcReqParams, 'subId'>, callback: (payload: TPayload) => void, errorCallback: (e: Error) => void): string;
/**
* Cancels a subscription, sending an unsubscribe request and handling responses.
*
* @param subId The subscription ID to cancel.
* @param callback The original payload callback to remove.
* @param errorCallback Optional callback for unsubscribe errors (defaults to logging).
*/
cancelSubscription<TPayload = unknown>(subId: string, callback: (payload: TPayload) => void, errorCallback?: (e: Error) => void): void;
get activeSubscriptions(): string[];
close(): void;
onClose(callback: (e: CloseEvent) => void): void;
}