UNPKG

fcr-core

Version:

Core APIs for building online scenes

48 lines (47 loc) 1.66 kB
import { FcrPeerSessionParamsSchema } from '../schema'; import { FcrSessionBase, FcrSessionResponse } from '../type'; export interface FcrPeerSessionControl { /** * Start a new peer session. */ startPeerSession(params: FcrPeerSessionParams): Promise<string>; /** * Stop the current peer session. */ stopPeerSession(sessionId: string): void; /** * Accept an incoming peer session. */ acceptPeerSession(session: FcrPeerSession, cause?: Record<string, unknown>): Promise<void>; /** * Reject an incoming peer session. */ rejectPeerSession(session: FcrPeerSession, cause?: Record<string, unknown>): Promise<void>; /** * Add an observer to the peer session control. */ addObserver(observer: FcrPeerSessionObserver): void; /** * Remove an observer from the peer session control. */ removeObserver(observer: FcrPeerSessionObserver): void; } export interface FcrPeerSessionObserver { /** * Called when a new peer session is received. * @param session The received peer session. */ onPeerSessionReceived?(session: FcrPeerSession): void; /** * Called when a peer session is accepted. * @param session The response of the accepted peer session. */ onPeerSessionAccepted?(session: FcrSessionResponse): void; /** * Called when a peer session is rejected. * @param session The response of the rejected peer session. */ onPeerSessionRejected?(session: FcrSessionResponse): void; } export type FcrPeerSessionParams = FcrPeerSessionParamsSchema; export type FcrPeerSession = FcrSessionBase & {};