import type { AllButLast, DecorateAcknowledgements, EventNames, EventNamesWithError, EventParams, EventsMap, FirstNonErrorArg, Last, TypedEventBroadcaster } from '../types/typed-events'; import { type DefaultSocketData } from '../types/socket-types'; import type { Adapter, Room } from './socket.io-adapter'; import type { Socket } from './socket'; export interface BroadcastFlags { volatile?: boolean; compress?: boolean; local?: boolean; broadcast?: boolean; timeout?: number; binary?: boolean; } /** * Simplified BroadcastOperator with only emit and emitWithAck */ export declare class BroadcastOperator< /** {@link TypedEventBroadcaster} */ EmitEvents extends EventsMap, SocketData extends DefaultSocketData> implements TypedEventBroadcaster { private readonly adapter; private readonly rooms; private readonly exceptRooms; private readonly flags; private readonly socket?; constructor(adapter: Adapter, rooms?: Set, exceptRooms?: Set, flags?: BroadcastFlags & { expectSingleResponse?: boolean; }, socket?: Socket | undefined); /** * Target specific room(s) */ to(room: Room | Room[]): BroadcastOperator; /** * Target specific room(s) - alias for to() */ in(room: Room | Room[]): BroadcastOperator; /** * Exclude specific room(s) or socket(s) */ except(room: Room | Room[]): BroadcastOperator; /** * Set compress flag */ compress(compress: boolean): BroadcastOperator; /** * Set volatile flag */ get volatile(): BroadcastOperator; /** * Set local flag */ get local(): BroadcastOperator; /** * Set timeout for acknowledgements */ timeout(timeout: number): BroadcastOperator, SocketData>; /** * Set binary flag for forced binary protocol usage */ get binary(): BroadcastOperator; /** * Main emit method with full Socket.IO compatibility */ emit>(ev: Ev, ...args: EventParams): boolean; /** * Emit with acknowledgement callback */ emitWithAck>(ev: Ev, ...args: AllButLast>): Promise>>>; /** * Get all matching socket instances */ fetchSockets(): Promise[]>; /** * Make all matching sockets join room(s) */ socketsJoin(room: Room | Room[]): void; /** * Make all matching sockets leave room(s) */ socketsLeave(room: Room | Room[]): void; /** * Disconnect all matching sockets */ disconnectSockets(close?: boolean): void; }