import { ChatEvent, ChatMessage, ConnectionCloseReason, DeleteMessageEvent, DisconnectReason, DisconnectUserEvent } from './types.js'; /** * Utility type defining events emitted by {@link ChatRoom | chat room}. These include both lifecycle events as well as * received messages and room events. */ export interface ChatRoomListenerMap { /** * Called when the {@link ChatRoom | room} attempts to establish or reestablish socket connection, occurs when the room * transitions into {@link ConnectionState | connecting} state. * * During this state user cannot send nor receive messages. */ connecting: () => unknown; /** * Called when {@link ChatRoom | room} connection is established and user can start sending and receiving messages, * occurs when the {@link ChatRoom | room} transitions into the {@link ConnectionState | connected} state. */ connect: () => unknown; /** * Called when {@link ChatRoom | room} connection is closed and room will not automatically try to re-establish it, * occurs when the {@link ChatRoom | room} transitions into {@link ConnectionState | disconnected} state. * * During this state user cannot send nor receive messages. * * @param reason - {@link DisconnectReason | reason} why the room has disconnected */ disconnect: (reason: DisconnectReason) => unknown; /** * Called after receiving a chat room {@link ChatMessage | message}. The {@link ChatMessage | message} can be sent by * any of the users in the room, including the current user. * * @param message - Received message */ message: (message: ChatMessage) => unknown; /** * Called after receiving a chat room {@link ChatEvent | event}. * * This method is not called for: * * - {@link DeleteMessageEvent | delete message events} * - {@link DisconnectUserEvent | disconnect user events} as they are reported using separate event callbacks. * * @param event - Received event */ event: (event: ChatEvent) => unknown; /** * Called after receiving a {@link DeleteMessageEvent | delete message event}. * * @param event - Received delete message event */ messageDelete: (event: DeleteMessageEvent) => unknown; /** * Called after receiving a {@link DisconnectUserEvent | disconnect user event}. * * @param event - Received disconnect user event */ userDisconnect: (event: DisconnectUserEvent) => unknown; } /** @internal */ export interface SocketConnectionListenerMap { open: (tokenExpirationTime: Date | undefined) => void; close: (reason: ConnectionCloseReason) => void; message: (message: string) => void; } //# sourceMappingURL=events.d.ts.map