@waku/sdk
Version:
A unified SDK for easy creation and management of js-waku nodes.
45 lines (44 loc) • 1.56 kB
TypeScript
import type { Callback, IDecodedMessage, IDecoder } from "@waku/interfaces";
import { WakuMessage } from "@waku/proto";
import { SubscriptionParams } from "./types.js";
export declare class Subscription {
private readonly pubsubTopic;
private readonly protocol;
private readonly peerManager;
private readonly config;
private isStarted;
private inProgress;
private peers;
private peerFailures;
private readonly receivedMessages;
private callbacks;
private messageEmitter;
private toSubscribeContentTopics;
private toUnsubscribeContentTopics;
private subscribeIntervalId;
private keepAliveIntervalId;
private get contentTopics();
constructor(params: SubscriptionParams);
start(): void;
stop(): void;
isEmpty(): boolean;
add<T extends IDecodedMessage>(decoder: IDecoder<T> | IDecoder<T>[], callback: Callback<T>): Promise<boolean>;
remove<T extends IDecodedMessage>(decoder: IDecoder<T> | IDecoder<T>[]): Promise<boolean>;
invoke(message: WakuMessage, _peerId: string): void;
private addSingle;
private removeSingle;
private isMessageReceived;
private setupSubscriptionInterval;
private setupKeepAliveInterval;
private setupEventListeners;
private disposeIntervals;
private disposeHandlers;
private disposePeers;
private disposeEventListeners;
private onPeerConnected;
private onPeerDisconnected;
private attemptSubscribe;
private requestSubscribe;
private attemptUnsubscribe;
private requestUnsubscribe;
}