UNPKG

matrix-react-sdk

Version:
55 lines (54 loc) 2.29 kB
import { Room, SyncState } from "matrix-js-sdk/src/matrix"; import { ActionPayload } from "../../dispatcher/payloads"; import { AsyncStoreWithClient } from "../AsyncStoreWithClient"; import { MatrixDispatcher } from "../../dispatcher/dispatcher"; import { TagID } from "../room-list/models"; import { ListNotificationState } from "./ListNotificationState"; import { RoomNotificationState } from "./RoomNotificationState"; import { SummarizedNotificationState } from "./SummarizedNotificationState"; interface IState { } export declare const UPDATE_STATUS_INDICATOR: unique symbol; export declare class RoomNotificationStateStore extends AsyncStoreWithClient<IState> { private static readonly internalInstance; private roomMap; private listMap; private _globalState; private constructor(); /** * @internal Public for test only */ static testInstance(dispatcher: MatrixDispatcher): RoomNotificationStateStore; /** * Gets a snapshot of notification state for all visible rooms. The number of states recorded * on the SummarizedNotificationState is equivalent to rooms. */ get globalState(): SummarizedNotificationState; /** * Gets an instance of the list state class for the given tag. * @param tagId The tag to get the notification state for. * @returns The notification state for the tag. */ getListState(tagId: TagID): ListNotificationState; /** * Gets a copy of the notification state for a room. The consumer should not * attempt to destroy the returned state as it may be shared with other * consumers. * @param room The room to get the notification state for. * @returns The room's notification state. */ getRoomState(room: Room): RoomNotificationState; static get instance(): RoomNotificationStateStore; private onSync; /** * If the SummarizedNotificationState of this room has changed, or forceEmit * is true, emit an UPDATE_STATUS_INDICATOR event. * * @internal public for test */ emitUpdateIfStateChanged: (state: SyncState, forceEmit: boolean) => void; protected onReady(): Promise<void>; protected onNotReady(): Promise<any>; protected onAction(payload: ActionPayload): Promise<void>; } export {};