Introduce an abstraction for Room

All APIs that need to return a room will use this type.
This commit is contained in:
R Midhun Suresh
2025-10-23 12:18:33 +05:30
parent 214f3e20a8
commit c24cfb6311
2 changed files with 29 additions and 0 deletions
@@ -10,6 +10,7 @@ export type { Api, Module, ModuleFactory } from "./api";
export type { Config, ConfigApi } from "./api/config";
export type { I18nApi, Variables, Translations } from "./api/i18n";
export type * from "./models/event";
export type * from "./models/Room";
export type * from "./api/custom-components";
export type * from "./api/extras";
export type * from "./api/legacy-modules";
@@ -0,0 +1,28 @@
/*
Copyright 2025 New Vector Ltd.
SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
import { Watchable } from "../api/watchable";
/**
* Represents a room from element-web.
* @public
*/
export interface Room {
/**
* Id of this room.
*/
id: string;
/**
* {@link Watchable} holding the name for this room.
*/
name: Watchable<string>;
/**
* Get the timestamp of the last message in this room.
* @returns last active timestamp
*/
getLastActiveTimestamp: () => number;
}