helene
Version:
Real-time Web Apps for Node.js
39 lines (38 loc) • 1.32 kB
TypeScript
import { AnyFunction } from '../utils';
import { EventEmitter2 } from 'eventemitter2';
import { Client } from './client';
export declare class ClientChannel extends EventEmitter2 {
client: Client;
name: string;
events: Set<string>;
_events?: Record<string, AnyFunction[]>;
constructor(name: string);
setClient(client: Client): void;
private pendingSubscriptions;
private subscribeDebounceTimeout?;
commitPendingSubscriptions(): Promise<void>;
subscribe(event: string | string[]): Promise<any>;
private pendingUnsubscriptions;
private unsubscribeDebounceTimeout?;
commitPendingUnsubscriptions(): Promise<void>;
unsubscribe(event: string | string[]): Promise<any>;
resubscribe(): Promise<any>;
/**
* Wait for an event to fire asynchronously.
*
* Returns true if no params are sent.
*/
wait(event: string, callback?: (...data: any) => any): Promise<any | any[]>;
/**
* Returns true if the event was not fired within a given timeout.
*/
timeout(event: string, timeoutMs?: number): Promise<unknown>;
iterator(event: string): {
[Symbol.asyncIterator](): any;
next(): Promise<unknown>;
return(): {
done: boolean;
};
throw(error: unknown): Promise<never>;
};
}