import type { Observable } from 'rxjs'; import type { RaidenAction } from '../../actions'; import { messageReceived, messageSend } from '../../messages/actions'; import type { RaidenState } from '../../state'; import type { RaidenEpicDeps } from '../../types'; import { matrixPresence, rtcChannel } from '../actions'; /** * Creates and manages WebRTC connection requests * * For whitelisted peers, it'll always listen for 'offer' messages and answer to try to establish * the RTC channel. If a new one comes while the previous is waiting, it'll teardown the previous * request and answer the new. * For Raiden channel partners (on startup/channelOpen), targets, initiators and also upon new * messageSend.requests, it's checked if the peer is online, and in parallel with any callee * handling, a call is initiated, times out after a few seconds and is retried a few times (to be * retried again in any of the above events). The winner channel of the callee/caller race is used. * * @param action$ - Observable of RaidenActions * @param deps - Epics dependencies * @returns Observable of rtcChannel|messageSend.request|messageReceived|matrixPresence.request * actions */ export declare function rtcConnectionManagerEpic(action$: Observable, {}: Observable, deps: RaidenEpicDeps): Observable;