sayance-matrix-native-module
Version:
Native Matrix client module for Expo using Rust SDK
49 lines (48 loc) • 2.66 kB
TypeScript
import { EventSubscription } from 'expo-modules-core';
import type { MatrixConfig, MessageData, RoomInfo, EncryptedMessageData, DeviceInfo, EncryptedEvent, DecryptedEvent, SessionData, TimelineEvent, MatrixEvent } from './index';
export interface MatrixModuleInterface {
initializeClient(config: MatrixConfig): Promise<void>;
startSync(): Promise<void>;
stopSync(): Promise<void>;
sendMessage(messageData: MessageData): Promise<void>;
getJoinedRooms(): Promise<RoomInfo[]>;
setSyncCallback(): string;
setNextBatchToken(nextBatch: string | null): Promise<void>;
getNextBatchToken(): Promise<string | null>;
setupEncryption(): Promise<void>;
isEncryptionEnabled(): Promise<boolean>;
verifyDevice(userId: string, deviceId: string): Promise<void>;
getUserDevices(userId: string): Promise<DeviceInfo[]>;
sendEncryptedMessage(messageData: EncryptedMessageData): Promise<void>;
decryptEvent(event: EncryptedEvent): Promise<DecryptedEvent>;
shareRoomKey(roomId: string, userIds: string[]): Promise<void>;
backupKeys(): Promise<void>;
restoreKeysFromBackup(recoveryKey: string): Promise<void>;
storeCryptoData(key: string, value: string): Promise<void>;
getCryptoData(key: string): Promise<string | null>;
deleteCryptoData(key: string): Promise<void>;
storeSessionData(session: SessionData): Promise<void>;
getSessionData(sessionId: string): Promise<SessionData | null>;
getRoomEvents(roomId: string, limit: number): Promise<TimelineEvent[]>;
handleSyncResponse(syncResponseJson: string): Promise<void>;
registerSyncUpdateCallback(callback: {
onSyncUpdate: (state: any) => void;
}): Promise<void>;
registerTimelineEventCallback(roomId: string, callback: {
onTimelineEvent: (roomId: string, event: TimelineEvent) => void;
}): Promise<void>;
registerRoomInviteCallback(callback: {
onRoomInvite: (roomId: string, inviter: string, roomName?: string) => void;
}): Promise<void>;
registerMembershipChangeCallback(callback: {
onMembershipChange: (roomId: string, userId: string, membership: string, inviter?: string) => void;
}): Promise<void>;
unregisterSyncUpdateCallback(): Promise<void>;
unregisterTimelineEventCallback(roomId: string): Promise<void>;
unregisterRoomInviteCallback(): Promise<void>;
unregisterMembershipChangeCallback(): Promise<void>;
addListener(event: string, listener: (event: MatrixEvent) => void): EventSubscription;
removeListener(event: string, listener: (event: MatrixEvent) => void): void;
}
declare const _default: MatrixModuleInterface;
export default _default;