summaryrefslogtreecommitdiff
path: root/includes/external/matrix/node_modules/matrix-js-sdk/lib/models/room-state.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'includes/external/matrix/node_modules/matrix-js-sdk/lib/models/room-state.d.ts')
-rw-r--r--includes/external/matrix/node_modules/matrix-js-sdk/lib/models/room-state.d.ts448
1 files changed, 0 insertions, 448 deletions
diff --git a/includes/external/matrix/node_modules/matrix-js-sdk/lib/models/room-state.d.ts b/includes/external/matrix/node_modules/matrix-js-sdk/lib/models/room-state.d.ts
deleted file mode 100644
index 316a8dd..0000000
--- a/includes/external/matrix/node_modules/matrix-js-sdk/lib/models/room-state.d.ts
+++ /dev/null
@@ -1,448 +0,0 @@
-import { RoomMember } from "./room-member";
-import { EventType } from "../@types/event";
-import { MatrixEvent } from "./event";
-import { MatrixClient } from "../client";
-import { GuestAccess, HistoryVisibility, JoinRule } from "../@types/partials";
-import { TypedEventEmitter } from "./typed-event-emitter";
-import { Beacon, BeaconEvent, BeaconEventHandlerMap, BeaconIdentifier } from "./beacon";
-import { TypedReEmitter } from "../ReEmitter";
-export interface IMarkerFoundOptions {
- /** Whether the timeline was empty before the marker event arrived in the
- * room. This could be happen in a variety of cases:
- * 1. From the initial sync
- * 2. It's the first state we're seeing after joining the room
- * 3. Or whether it's coming from `syncFromCache`
- *
- * A marker event refers to `UNSTABLE_MSC2716_MARKER` and indicates that
- * history was imported somewhere back in time. It specifically points to an
- * MSC2716 insertion event where the history was imported at. Marker events
- * are sent as state events so they are easily discoverable by clients and
- * homeservers and don't get lost in timeline gaps.
- */
- timelineWasEmpty?: boolean;
-}
-declare enum OobStatus {
- NotStarted = 0,
- InProgress = 1,
- Finished = 2
-}
-export interface IPowerLevelsContent {
- users?: Record<string, number>;
- events?: Record<string, number>;
- users_default?: number;
- events_default?: number;
- state_default?: number;
- ban?: number;
- kick?: number;
- redact?: number;
-}
-export declare enum RoomStateEvent {
- Events = "RoomState.events",
- Members = "RoomState.members",
- NewMember = "RoomState.newMember",
- Update = "RoomState.update",
- BeaconLiveness = "RoomState.BeaconLiveness",
- Marker = "RoomState.Marker"
-}
-export type RoomStateEventHandlerMap = {
- /**
- * Fires whenever the event dictionary in room state is updated.
- * @param event - The matrix event which caused this event to fire.
- * @param state - The room state whose RoomState.events dictionary
- * was updated.
- * @param prevEvent - The event being replaced by the new state, if
- * known. Note that this can differ from `getPrevContent()` on the new state event
- * as this is the store's view of the last state, not the previous state provided
- * by the server.
- * @example
- * ```
- * matrixClient.on("RoomState.events", function(event, state, prevEvent){
- * var newStateEvent = event;
- * });
- * ```
- */
- [RoomStateEvent.Events]: (event: MatrixEvent, state: RoomState, lastStateEvent: MatrixEvent | null) => void;
- /**
- * Fires whenever a member in the members dictionary is updated in any way.
- * @param event - The matrix event which caused this event to fire.
- * @param state - The room state whose RoomState.members dictionary
- * was updated.
- * @param member - The room member that was updated.
- * @example
- * ```
- * matrixClient.on("RoomState.members", function(event, state, member){
- * var newMembershipState = member.membership;
- * });
- * ```
- */
- [RoomStateEvent.Members]: (event: MatrixEvent, state: RoomState, member: RoomMember) => void;
- /**
- * Fires whenever a member is added to the members dictionary. The RoomMember
- * will not be fully populated yet (e.g. no membership state) but will already
- * be available in the members dictionary.
- * @param event - The matrix event which caused this event to fire.
- * @param state - The room state whose RoomState.members dictionary
- * was updated with a new entry.
- * @param member - The room member that was added.
- * @example
- * ```
- * matrixClient.on("RoomState.newMember", function(event, state, member){
- * // add event listeners on 'member'
- * });
- * ```
- */
- [RoomStateEvent.NewMember]: (event: MatrixEvent, state: RoomState, member: RoomMember) => void;
- [RoomStateEvent.Update]: (state: RoomState) => void;
- [RoomStateEvent.BeaconLiveness]: (state: RoomState, hasLiveBeacons: boolean) => void;
- [RoomStateEvent.Marker]: (event: MatrixEvent, setStateOptions?: IMarkerFoundOptions) => void;
- [BeaconEvent.New]: (event: MatrixEvent, beacon: Beacon) => void;
-};
-type EmittedEvents = RoomStateEvent | BeaconEvent;
-type EventHandlerMap = RoomStateEventHandlerMap & BeaconEventHandlerMap;
-export declare class RoomState extends TypedEventEmitter<EmittedEvents, EventHandlerMap> {
- readonly roomId: string;
- private oobMemberFlags;
- readonly reEmitter: TypedReEmitter<EmittedEvents, EventHandlerMap>;
- private sentinels;
- private displayNameToUserIds;
- private userIdsToDisplayNames;
- private tokenToInvite;
- private joinedMemberCount;
- private summaryJoinedMemberCount;
- private invitedMemberCount;
- private summaryInvitedMemberCount;
- private modified;
- members: Record<string, RoomMember>;
- events: Map<string, Map<string, MatrixEvent>>;
- paginationToken: string | null;
- readonly beacons: Map<string, Beacon>;
- private _liveBeaconIds;
- /**
- * Construct room state.
- *
- * Room State represents the state of the room at a given point.
- * It can be mutated by adding state events to it.
- * There are two types of room member associated with a state event:
- * normal member objects (accessed via getMember/getMembers) which mutate
- * with the state to represent the current state of that room/user, e.g.
- * the object returned by `getMember('@bob:example.com')` will mutate to
- * get a different display name if Bob later changes his display name
- * in the room.
- * There are also 'sentinel' members (accessed via getSentinelMember).
- * These also represent the state of room members at the point in time
- * represented by the RoomState object, but unlike objects from getMember,
- * sentinel objects will always represent the room state as at the time
- * getSentinelMember was called, so if Bob subsequently changes his display
- * name, a room member object previously acquired with getSentinelMember
- * will still have his old display name. Calling getSentinelMember again
- * after the display name change will return a new RoomMember object
- * with Bob's new display name.
- *
- * @param roomId - Optional. The ID of the room which has this state.
- * If none is specified it just tracks paginationTokens, useful for notifTimelineSet
- * @param oobMemberFlags - Optional. The state of loading out of bound members.
- * As the timeline might get reset while they are loading, this state needs to be inherited
- * and shared when the room state is cloned for the new timeline.
- * This should only be passed from clone.
- */
- constructor(roomId: string, oobMemberFlags?: {
- status: OobStatus;
- });
- /**
- * Returns the number of joined members in this room
- * This method caches the result.
- * @returns The number of members in this room whose membership is 'join'
- */
- getJoinedMemberCount(): number;
- /**
- * Set the joined member count explicitly (like from summary part of the sync response)
- * @param count - the amount of joined members
- */
- setJoinedMemberCount(count: number): void;
- /**
- * Returns the number of invited members in this room
- * @returns The number of members in this room whose membership is 'invite'
- */
- getInvitedMemberCount(): number;
- /**
- * Set the amount of invited members in this room
- * @param count - the amount of invited members
- */
- setInvitedMemberCount(count: number): void;
- /**
- * Get all RoomMembers in this room.
- * @returns A list of RoomMembers.
- */
- getMembers(): RoomMember[];
- /**
- * Get all RoomMembers in this room, excluding the user IDs provided.
- * @param excludedIds - The user IDs to exclude.
- * @returns A list of RoomMembers.
- */
- getMembersExcept(excludedIds: string[]): RoomMember[];
- /**
- * Get a room member by their user ID.
- * @param userId - The room member's user ID.
- * @returns The member or null if they do not exist.
- */
- getMember(userId: string): RoomMember | null;
- /**
- * Get a room member whose properties will not change with this room state. You
- * typically want this if you want to attach a RoomMember to a MatrixEvent which
- * may no longer be represented correctly by Room.currentState or Room.oldState.
- * The term 'sentinel' refers to the fact that this RoomMember is an unchanging
- * guardian for state at this particular point in time.
- * @param userId - The room member's user ID.
- * @returns The member or null if they do not exist.
- */
- getSentinelMember(userId: string): RoomMember | null;
- /**
- * Get state events from the state of the room.
- * @param eventType - The event type of the state event.
- * @param stateKey - Optional. The state_key of the state event. If
- * this is `undefined` then all matching state events will be
- * returned.
- * @returns A list of events if state_key was
- * `undefined`, else a single event (or null if no match found).
- */
- getStateEvents(eventType: EventType | string): MatrixEvent[];
- getStateEvents(eventType: EventType | string, stateKey: string): MatrixEvent | null;
- get hasLiveBeacons(): boolean;
- get liveBeaconIds(): BeaconIdentifier[];
- /**
- * Creates a copy of this room state so that mutations to either won't affect the other.
- * @returns the copy of the room state
- */
- clone(): RoomState;
- /**
- * Add previously unknown state events.
- * When lazy loading members while back-paginating,
- * the relevant room state for the timeline chunk at the end
- * of the chunk can be set with this method.
- * @param events - state events to prepend
- */
- setUnknownStateEvents(events: MatrixEvent[]): void;
- /**
- * Add an array of one or more state MatrixEvents, overwriting any existing
- * state with the same `{type, stateKey}` tuple. Will fire "RoomState.events"
- * for every event added. May fire "RoomState.members" if there are
- * `m.room.member` events. May fire "RoomStateEvent.Marker" if there are
- * `UNSTABLE_MSC2716_MARKER` events.
- * @param stateEvents - a list of state events for this room.
- *
- * @remarks
- * Fires {@link RoomStateEvent.Members}
- * Fires {@link RoomStateEvent.NewMember}
- * Fires {@link RoomStateEvent.Events}
- * Fires {@link RoomStateEvent.Marker}
- */
- setStateEvents(stateEvents: MatrixEvent[], markerFoundOptions?: IMarkerFoundOptions): void;
- processBeaconEvents(events: MatrixEvent[], matrixClient: MatrixClient): Promise<void>;
- /**
- * Looks up a member by the given userId, and if it doesn't exist,
- * create it and emit the `RoomState.newMember` event.
- * This method makes sure the member is added to the members dictionary
- * before emitting, as this is done from setStateEvents and setOutOfBandMember.
- * @param userId - the id of the user to look up
- * @param event - the membership event for the (new) member. Used to emit.
- * @returns the member, existing or newly created.
- *
- * @remarks
- * Fires {@link RoomStateEvent.NewMember}
- */
- private getOrCreateMember;
- private setStateEvent;
- /**
- * @experimental
- */
- private setBeacon;
- /**
- * @experimental
- * Check liveness of room beacons
- * emit RoomStateEvent.BeaconLiveness event
- */
- private onBeaconLivenessChange;
- private getStateEventMatching;
- private updateMember;
- /**
- * Get the out-of-band members loading state, whether loading is needed or not.
- * Note that loading might be in progress and hence isn't needed.
- * @returns whether or not the members of this room need to be loaded
- */
- needsOutOfBandMembers(): boolean;
- /**
- * Check if loading of out-of-band-members has completed
- *
- * @returns true if the full membership list of this room has been loaded. False if it is not started or is in
- * progress.
- */
- outOfBandMembersReady(): boolean;
- /**
- * Mark this room state as waiting for out-of-band members,
- * ensuring it doesn't ask for them to be requested again
- * through needsOutOfBandMembers
- */
- markOutOfBandMembersStarted(): void;
- /**
- * Mark this room state as having failed to fetch out-of-band members
- */
- markOutOfBandMembersFailed(): void;
- /**
- * Clears the loaded out-of-band members
- */
- clearOutOfBandMembers(): void;
- /**
- * Sets the loaded out-of-band members.
- * @param stateEvents - array of membership state events
- */
- setOutOfBandMembers(stateEvents: MatrixEvent[]): void;
- /**
- * Sets a single out of band member, used by both setOutOfBandMembers and clone
- * @param stateEvent - membership state event
- */
- private setOutOfBandMember;
- /**
- * Set the current typing event for this room.
- * @param event - The typing event
- */
- setTypingEvent(event: MatrixEvent): void;
- /**
- * Get the m.room.member event which has the given third party invite token.
- *
- * @param token - The token
- * @returns The m.room.member event or null
- */
- getInviteForThreePidToken(token: string): MatrixEvent | null;
- /**
- * Update the last modified time to the current time.
- */
- private updateModifiedTime;
- /**
- * Get the timestamp when this room state was last updated. This timestamp is
- * updated when this object has received new state events.
- * @returns The timestamp
- */
- getLastModifiedTime(): number;
- /**
- * Get user IDs with the specified or similar display names.
- * @param displayName - The display name to get user IDs from.
- * @returns An array of user IDs or an empty array.
- */
- getUserIdsWithDisplayName(displayName: string): string[];
- /**
- * Returns true if userId is in room, event is not redacted and either sender of
- * mxEvent or has power level sufficient to redact events other than their own.
- * @param mxEvent - The event to test permission for
- * @param userId - The user ID of the user to test permission for
- * @returns true if the given used ID can redact given event
- */
- maySendRedactionForEvent(mxEvent: MatrixEvent, userId: string): boolean;
- /**
- * Returns true if the given power level is sufficient for action
- * @param action - The type of power level to check
- * @param powerLevel - The power level of the member
- * @returns true if the given power level is sufficient
- */
- hasSufficientPowerLevelFor(action: "ban" | "kick" | "redact", powerLevel: number): boolean;
- /**
- * Short-form for maySendEvent('m.room.message', userId)
- * @param userId - The user ID of the user to test permission for
- * @returns true if the given user ID should be permitted to send
- * message events into the given room.
- */
- maySendMessage(userId: string): boolean;
- /**
- * Returns true if the given user ID has permission to send a normal
- * event of type `eventType` into this room.
- * @param eventType - The type of event to test
- * @param userId - The user ID of the user to test permission for
- * @returns true if the given user ID should be permitted to send
- * the given type of event into this room,
- * according to the room's state.
- */
- maySendEvent(eventType: EventType | string, userId: string): boolean;
- /**
- * Returns true if the given MatrixClient has permission to send a state
- * event of type `stateEventType` into this room.
- * @param stateEventType - The type of state events to test
- * @param cli - The client to test permission for
- * @returns true if the given client should be permitted to send
- * the given type of state event into this room,
- * according to the room's state.
- */
- mayClientSendStateEvent(stateEventType: EventType | string, cli: MatrixClient): boolean;
- /**
- * Returns true if the given user ID has permission to send a state
- * event of type `stateEventType` into this room.
- * @param stateEventType - The type of state events to test
- * @param userId - The user ID of the user to test permission for
- * @returns true if the given user ID should be permitted to send
- * the given type of state event into this room,
- * according to the room's state.
- */
- maySendStateEvent(stateEventType: EventType | string, userId: string): boolean;
- /**
- * Returns true if the given user ID has permission to send a normal or state
- * event of type `eventType` into this room.
- * @param eventType - The type of event to test
- * @param userId - The user ID of the user to test permission for
- * @param state - If true, tests if the user may send a state
- event of this type. Otherwise tests whether
- they may send a regular event.
- * @returns true if the given user ID should be permitted to send
- * the given type of event into this room,
- * according to the room's state.
- */
- private maySendEventOfType;
- /**
- * Returns true if the given user ID has permission to trigger notification
- * of type `notifLevelKey`
- * @param notifLevelKey - The level of notification to test (eg. 'room')
- * @param userId - The user ID of the user to test permission for
- * @returns true if the given user ID has permission to trigger a
- * notification of this type.
- */
- mayTriggerNotifOfType(notifLevelKey: string, userId: string): boolean;
- /**
- * Returns the join rule based on the m.room.join_rule state event, defaulting to `invite`.
- * @returns the join_rule applied to this room
- */
- getJoinRule(): JoinRule;
- /**
- * Returns the history visibility based on the m.room.history_visibility state event, defaulting to `shared`.
- * @returns the history_visibility applied to this room
- */
- getHistoryVisibility(): HistoryVisibility;
- /**
- * Returns the guest access based on the m.room.guest_access state event, defaulting to `shared`.
- * @returns the guest_access applied to this room
- */
- getGuestAccess(): GuestAccess;
- /**
- * Find the predecessor room based on this room state.
- *
- * @param msc3946ProcessDynamicPredecessor - if true, look for an
- * m.room.predecessor state event and use it if found (MSC3946).
- * @returns null if this room has no predecessor. Otherwise, returns
- * the roomId, last eventId and viaServers of the predecessor room.
- *
- * If msc3946ProcessDynamicPredecessor is true, use m.predecessor events
- * as well as m.room.create events to find predecessors.
- *
- * Note: if an m.predecessor event is used, eventId may be undefined
- * since last_known_event_id is optional.
- *
- * Note: viaServers may be undefined, and will definitely be undefined if
- * this predecessor comes from a RoomCreate event (rather than a
- * RoomPredecessor, which has the optional via_servers property).
- */
- findPredecessor(msc3946ProcessDynamicPredecessor?: boolean): {
- roomId: string;
- eventId?: string;
- viaServers?: string[];
- } | null;
- private updateThirdPartyTokenCache;
- private updateDisplayNameCache;
-}
-export {};
-//# sourceMappingURL=room-state.d.ts.map \ No newline at end of file