UNPKG

matrix-js-sdk

Version:
66 lines 3.14 kB
import * as RustSdkCryptoJs from "@matrix-org/matrix-sdk-crypto-js"; import type { IEventDecryptionResult, IMegolmSessionData } from "../@types/crypto"; import type { IToDeviceEvent } from "../sync-accumulator"; import type { IEncryptedEventInfo } from "../crypto/api"; import { MatrixEvent } from "../models/event"; import { Room } from "../models/room"; import { RoomMember } from "../models/room-member"; import { CryptoBackend, OnSyncCompletedData } from "../common-crypto/CryptoBackend"; import { IHttpOpts, MatrixHttpApi } from "../http-api"; import { DeviceTrustLevel, UserTrustLevel } from "../crypto/CrossSigning"; /** * An implementation of {@link CryptoBackend} using the Rust matrix-sdk-crypto. */ export declare class RustCrypto implements CryptoBackend { private readonly olmMachine; globalBlacklistUnverifiedDevices: boolean; globalErrorOnUnknownDevices: boolean; /** whether {@link stop} has been called */ private stopped; /** whether {@link outgoingRequestLoop} is currently running */ private outgoingRequestLoopRunning; /** mapping of roomId → encryptor class */ private roomEncryptors; private keyClaimManager; private outgoingRequestProcessor; constructor(olmMachine: RustSdkCryptoJs.OlmMachine, http: MatrixHttpApi<IHttpOpts & { onlyData: true; }>, _userId: string, _deviceId: string); stop(): void; prepareToEncrypt(room: Room): void; encryptEvent(event: MatrixEvent, _room: Room): Promise<void>; decryptEvent(event: MatrixEvent): Promise<IEventDecryptionResult>; getEventEncryptionInfo(event: MatrixEvent): IEncryptedEventInfo; userHasCrossSigningKeys(): Promise<boolean>; exportRoomKeys(): Promise<IMegolmSessionData[]>; checkUserTrust(userId: string): UserTrustLevel; checkDeviceTrust(userId: string, deviceId: string): DeviceTrustLevel; /** called by the sync loop to preprocess incoming to-device messages * * @param events - the received to-device messages * @returns A list of preprocessed to-device messages. */ preprocessToDeviceMessages(events: IToDeviceEvent[]): Promise<IToDeviceEvent[]>; /** called by the sync loop on m.room.encrypted events * * @param room - in which the event was received * @param event - encryption event to be processed */ onCryptoEvent(room: Room, event: MatrixEvent): Promise<void>; /** called by the sync loop after processing each sync. * * TODO: figure out something equivalent for sliding sync. * * @param syncState - information on the completed sync. */ onSyncCompleted(syncState: OnSyncCompletedData): void; /** called by the MatrixClient on a room membership event * * @param event - The matrix event which caused this event to fire. * @param member - The member whose RoomMember.membership changed. * @param oldMembership - The previous membership state. Null if it's a new member. */ onRoomMembership(event: MatrixEvent, member: RoomMember, oldMembership?: string): void; private outgoingRequestLoop; } //# sourceMappingURL=rust-crypto.d.ts.map