laravel-echo
Version:
Laravel Echo library for beautiful Pusher, Socket.IO, and Mercure integration
32 lines (31 loc) • 1.47 kB
TypeScript
import type { PresenceChannel } from "./presence-channel";
import { MercurePrivateChannel } from "./mercure-private-channel";
/** Presence synthesized from Mercure subscriptions with users deduplicated across connections. */
export declare class MercurePresenceChannel extends MercurePrivateChannel implements PresenceChannel {
/** Initial member-list callbacks. */
private hereCallbacks;
/** Member joining callbacks. */
private joiningCallbacks;
/** Member leaving callbacks. */
private leavingCallbacks;
/** Members keyed by hub subscriber id. */
private members;
/** Live subscription counts keyed by member identity. */
private memberCounts;
/** Whether the initial member list has been seeded. */
private seeded;
/** Register an initial member-list callback. */
here(callback: CallableFunction): this;
/** Listen for members joining. */
joining(callback: CallableFunction): this;
/** Listen for members leaving. */
leaving(callback: CallableFunction): this;
/** Seed members from the subscription API snapshot. */
setInitialMembers(members: Array<[string, unknown]>): void;
/** Apply a live subscription event. */
applySubscriptionEvent(subscriber: string, active: boolean, payload: unknown): void;
/** Return one info entry per distinct member. */
private uniqueMembers;
/** Isolate user callback failures from the connection refresh. */
private invoke;
}