export declare interface ChannelHookData { channel: string event: ChannelLifecycleEvent timestamp: number socketId?: string subscriberCount?: number data?: unknown } /** * Channel Lifecycle Hooks * * Fire callbacks on channel lifecycle events */ export type ChannelLifecycleEvent = 'created' | 'subscribed' | 'unsubscribed' | 'empty' | 'destroyed'; export type ChannelHookCallback = (_data: ChannelHookData) => void | Promise; export declare class ChannelLifecycleManager { on(event: ChannelLifecycleEvent | 'all', callback: ChannelHookCallback): void; off(event: ChannelLifecycleEvent | 'all', callback: ChannelHookCallback): void; fire(data: ChannelHookData): Promise; channelCreated(channel: string, socketId?: string): Promise; channelSubscribed(channel: string, socketId: string, subscriberCount: number): Promise; channelUnsubscribed(channel: string, socketId: string, subscriberCount: number): Promise; channelEmpty(channel: string): Promise; channelDestroyed(channel: string): Promise; }