UNPKG

matrix-react-sdk

Version:
37 lines (36 loc) 1.86 kB
import { Optional } from "matrix-events-sdk"; import { Room, IEventRelation } from "matrix-js-sdk/src/matrix"; import { AsyncStoreWithClient } from "./AsyncStoreWithClient"; import { ActionPayload } from "../dispatcher/payloads"; import { VoiceMessageRecording } from "../audio/VoiceMessageRecording"; interface IState { [voiceRecordingId: string]: Optional<VoiceMessageRecording>; } export declare class VoiceRecordingStore extends AsyncStoreWithClient<IState> { private static internalInstance; constructor(); static get instance(): VoiceRecordingStore; protected onAction(payload: ActionPayload): Promise<void>; static getVoiceRecordingId(room: Room, relation?: IEventRelation): string; /** * Gets the active recording instance, if any. * @param {string} voiceRecordingId The room ID (with optionally the thread ID if in one) to get the recording in. * @returns {Optional<VoiceRecording>} The recording, if any. */ getActiveRecording(voiceRecordingId: string): Optional<VoiceMessageRecording>; /** * Starts a new recording if one isn't already in progress. Note that this simply * creates a recording instance - whether or not recording is actively in progress * can be seen via the VoiceRecording class. * @param {string} voiceRecordingId The room ID (with optionally the thread ID if in one) to start recording in. * @returns {VoiceRecording} The recording. */ startRecording(voiceRecordingId?: string): VoiceMessageRecording; /** * Disposes of the current recording, no matter the state of it. * @param {string} voiceRecordingId The room ID (with optionally the thread ID if in one) to dispose of the recording in. * @returns {Promise<void>} Resolves when complete. */ disposeRecording(voiceRecordingId: string): Promise<void>; } export {};