import { EventEmitter } from "node:events"; import type { JoinCloudOptions, JoinRoomOptions, CreateRoomOptions, RoomSummary, RoomInfo, Message, SendOptions, HistoryOptions, ListRoomsOptions } from "./types.js"; export type { JoinCloudOptions, JoinRoomOptions, CreateRoomOptions, RoomSummary, RoomInfo, Message, SendOptions, HistoryOptions, ListRoomsOptions, } from "./types.js"; export declare class JoinCloud { readonly serverUrl: string; private persist; constructor(serverUrl?: string, options?: JoinCloudOptions); private rpc; listRooms(options?: ListRoomsOptions): Promise<{ rooms: RoomSummary[]; total: number; }>; createRoom(name: string, options?: CreateRoomOptions): Promise<{ roomId: string; name: string; }>; roomInfo(roomName: string): Promise; joinRoom(roomName: string, options: JoinRoomOptions): Promise; } export declare class Room extends EventEmitter { readonly roomName: string; readonly roomId: string; readonly agentName: string; readonly agentToken: string; private client; private unsubscribe?; private connectPromise; private seenIds; private messageBuffer; private hasMessageListener; private joinedAt; constructor(client: JoinCloud, roomName: string, roomId: string, agentName: string, agentToken: string, joinedAt: string); on(event: string | symbol, listener: (...args: any[]) => void): this; private replayMissed; connected(): Promise; private subscribe; send(text: string, options?: SendOptions): Promise; getHistory(options?: HistoryOptions): Promise<{ messages: Message[]; total: number; }>; getUnread(): Promise<{ messages: Message[]; total: number; }>; leave(): Promise; close(): void; }