raiden-ts
Version:
Raiden Light Client Typescript/Javascript SDK
42 lines (41 loc) • 2.15 kB
TypeScript
import type { Observable } from 'rxjs';
import type { RaidenAction } from '../../actions';
import type { RaidenState } from '../../state';
import type { RaidenEpicDeps } from '../../types';
import { matrixPresence } from '../actions';
/**
* Handles MatrixRequestMonitorPresenceAction and emits a MatrixPresenceUpdateAction
* If presence is already known, emits it, else fetch from user profile
* Even if the presence stays the same, we emit a MatrixPresenceUpdateAction, as this may be a
* request being waited by a promise or something like that
* IOW: every request should be followed by a presence update or a failed action, but presence
* updates may happen later without new requests (e.g. when the user goes offline)
*
* @param action$ - Observable of matrixPresence.request actions
* @param state$ - Observable of RaidenStates
* @param deps - RaidenEpicDeps members
* @param deps.matrix$ - MatrixClient async subject
* @param deps.log - Logger instance
* @param deps.config$ - Config observable
* @returns Observable of presence updates or fail action
*/
export declare function matrixMonitorPresenceEpic(action$: Observable<RaidenAction>, {}: Observable<RaidenState>, deps: RaidenEpicDeps): Observable<matrixPresence.success | matrixPresence.failure>;
/**
* Channel monitoring triggers matrix presence monitoring for partner
*
* @param action$ - Observable of RaidenActions
* @returns Observable of matrixPresence.request actions
*/
export declare function matrixMonitorChannelPresenceEpic(action$: Observable<RaidenAction>): Observable<matrixPresence.request>;
/**
* Update our matrix's avatarUrl on config.caps on startup and changes
*
* @param action$ - Observable of RaidenActions
* @param state$ - Observable of RaidenStates
* @param deps - Epics dependencies
* @param deps.matrix$ - MatrixClient async subject
* @param deps.config$ - Config object
* @param deps.init$ - Init$ subject
* @returns Observable which never emits
*/
export declare function matrixUpdateCapsEpic(action$: Observable<RaidenAction>, {}: Observable<RaidenState>, { matrix$, config$, init$ }: RaidenEpicDeps): Observable<never>;