UNPKG

@pubby/sdk

Version:
35 lines (34 loc) 1.32 kB
import { Pubby } from "../../client"; import { PubbyStream } from "../../lib/streams"; import { PubbyModule } from "../../module"; import { User } from "../../models/user"; import { RoomUpdateResponse, UserLeaveResponse, UserSetResponse } from "../../websocket/incoming"; import { Room } from "../../models/room"; declare module "../../client" { interface Pubby { room: RoomModule; } } export interface RoomState { room: Room | null; users: Map<string, User>; usersRoles: Map<string, Set<string>>; } export declare class RoomModule extends PubbyModule { state$: PubbyStream<RoomState, RoomState>; userUpdate$: PubbyStream<UserSetResponse>; userLeave$: PubbyStream<UserLeaveResponse>; roomUpdate$: PubbyStream<RoomUpdateResponse>; get state(): RoomState | { room: any; users: Map<any, any>; usersRoles: Map<any, any>; }; constructor(client: Pubby); init(): void; join(slug: string, password?: string): Promise<void>; on(event: "load", ...cb: ((state: any) => void)[]): this; on(event: "user-join", ...cb: ((user: User) => void)[]): this; on(event: "user-update", ...cb: ((newUser: User, old: User) => void)[]): this; on(event: "user-leave", ...cb: ((user: User) => void)[]): this; }