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