import type { BroadcastConfig, BroadcastEvent, QueueConfig } from './types'; import type { BroadcastServer } from './server'; /** * Helper function to create a broadcast event */ export declare function createEvent(channels: string | string[], eventName: string, data?: Record): BroadcastEvent; export declare class Broadcaster { constructor(server: BroadcastServer, config: BroadcastConfig); setQueue(queueConfig: QueueConfig): this; broadcast(event: BroadcastEvent, exclude?: string | string[]): Promise; send(channels: string | string[], event: string, data: TData, exclude?: string | string[]): void; toOthers(socketId: string): BroadcastTo; } /** * Fluent interface for broadcasting with filters */ export declare class BroadcastTo { readonly excludeSocketId?: string; constructor(broadcaster: Broadcaster, excludeSocketId?: string); broadcast(event: BroadcastEvent): Promise; send(channels: string | string[], event: string, data: TData): void; } /** * Anonymous event broadcasting */ export declare class AnonymousEvent { readonly excludeSocketId?: string; constructor(channels: string | string[]); as(name: string): this; with(data: T): AnonymousEvent; toOthers(socketId: string): AnonymousEvent; send(broadcaster: Broadcaster): void; sendNow(broadcaster: Broadcaster): void; }