import type { IMediaCallNegotiation, MediaCallNegotiationStream, RTCSessionDescriptionInit } from '@rocket.chat/core-typings'; import type { Document, UpdateResult } from 'mongodb'; import type { IBaseModel } from './IBaseModel'; import type { DocumentWithProjection, FindOptionsWithProjection } from '../types/DocumentWithProjection'; export interface IMediaCallNegotiationsModel extends IBaseModel { findLatestByCallId = FindOptionsWithProjection>( callId: IMediaCallNegotiation['callId'], options?: O, ): Promise | null>; setOfferById(id: string, offer: RTCSessionDescriptionInit, offerStreams?: MediaCallNegotiationStream[]): Promise; setAnswerById(id: string, answer: RTCSessionDescriptionInit, answerStreams?: MediaCallNegotiationStream[]): Promise; setStableById(id: string): Promise; }