import type { ArgsRealtimeControllerSubscribe, RealtimeController } from "../controllers/Realtime"; import type { JSONObject, Notification } from "../types"; type SubscribeResponse = { result: { channel: string; roomId: string; }; }; type RoomOptions = ArgsRealtimeControllerSubscribe & { autoResubscribe?: boolean; state?: string; }; type SubscribeRequest = { action: "subscribe"; body: JSONObject; collection: string; controller: "realtime"; index: string; scope?: RoomOptions["scope"]; state?: RoomOptions["state"]; users?: RoomOptions["users"]; volatile?: RoomOptions["volatile"]; }; type RoomCallback = (notification: Notification) => void | Promise; declare class Room { controller: RealtimeController; index: string; collection: string; callback: RoomCallback; options: RoomOptions; id: string; channel: string; request: SubscribeRequest; autoResubscribe: boolean; subscribeToSelf: boolean; private _kuzzle; /** * @param controller * @param index * @param collection * @param body * @param callback * @param options */ constructor(controller: RealtimeController, index: string, collection: string, body: JSONObject, callback: RoomCallback, options?: RoomOptions); get kuzzle(): any; subscribe(): Promise; removeListeners(): void; private _channelListener; } export default Room;