import type { Broadcastable } from './Broadcastable.js'; export interface SocketLikeServer { to(room: string): { emit(eventName: string, payload: unknown): void; }; emit(eventName: string, payload: unknown): void; except(room: string): { emit(eventName: string, payload: unknown): void; }; use(mw: (socket: unknown, next: (err?: Error) => void) => void): void; } export type AuthCallback = (socket: unknown, channel: string) => boolean | Promise; export interface BroadcastTarget { emit(eventName: string, payload: unknown): void; } /** * Bridges {@link EventDispatcher} → Socket.io server. */ export declare class SocketBroadcaster { private readonly io; private readonly authCallbacks; constructor(io: SocketLikeServer); /** * Broadcast an event. */ broadcast(event: Broadcastable & object): Promise; broadcastToAll(eventName: string, payload: Record): void; broadcastExcept(socketId: string, eventName: string, payload: unknown): void; toChannel(channel: string): BroadcastTarget; /** * Register a channel authorization callback (private/presence). */ authorize(channelName: string, authCallback: AuthCallback): this; /** * @internal */ _getAuthCallbacks(): Map; private normalizeRoom; } //# sourceMappingURL=SocketBroadcaster.d.ts.map