import { ISetRemoteDescriptionRequest } from './SetRemoteDescription'; export type SubscribeStatus = 'ok' | 'no-stream' | 'not-found' | 'geo-restricted' | 'geo-blocked' | 'unauthorized' | 'capacity' | 'rate-limited' | 'timeout' | 'forbidden-tag' | 'port-in-range-not-found' | 'failed'; export interface ISubscribeRequest { apiVersion: number; clientVersion: string; bearerToken: string; failureCount: number; httpRoundTripTime: number; } export interface ISubscribeWithOfferRequest extends ISubscribeRequest { setRemoteDescription: ISetRemoteDescriptionRequest; createAnswerDescription: { apiVersion: number; }; } export interface ISubscribeWithoutOfferRequest extends ISubscribeRequest { createOfferDescription: { apiVersion: number; }; } export interface ISubscribeSuccessResponse { status: 'ok'; streamId: string; sharedSecret: string; lag: number; rtcConfiguration?: RTCConfiguration; setRemoteDescriptionResponse?: { sessionDescription: RTCSessionDescription; }; createOfferDescriptionResponse?: { sessionDescription: RTCSessionDescription; }; createAnswerDescriptionResponse?: { sessionDescription: RTCSessionDescription; }; [key: string]: unknown; } export interface ISubscribeFailureResponse { status: SubscribeStatus; }