import { SessionAttendees } from './models/session-attendees.model' ; import { VideoChatSession } from './models/video-chat-session.model' ; import { VonageSessionWebhookPayload } from './providers' ; interface param message export interface ResponseInterface { message : string ; } export interface IConfig { timeToStart : number ; } export interface VideoChatInterface { function param options interface returns interface getMeetingLink ( options ) : Promise < MeetingResponse > ; function param options interface returns interface getToken ( sessionId , options ) : Promise < SessionResponse > ; function param archiveId returns getArchives ( archiveId ) : Promise < ArchiveResponse | ArchiveResponseList > ; function param archiveId returns deleteArchive ( archiveId ) : Promise < void > ; function param config interface interface setUploadTarget ( config ) : Promise < void > ; } interface param sessionId param token export interface SessionResponse { sessionId : string ; token : string ; } interface param name param sessionId export interface ArchiveResponse { name ? : string ; sessionId : string ; metaData : object ; } interface param count param items interface export interface ArchiveResponseList { count : number ; items : ArchiveResponse [ ] ; } interface param config param accessKey param secretKey param bucket export interface S3TargetOptions { accessKey : string ; secretKey : string ; region : string ; bucket : string ; } interface param accountName param accountKey param container param domain export interface AzureTargetOptions { accountName : string ; accountKey : string ; container : string ; domain ? : string ; } interface param archiveMode param isScheduled param isScheduled param isScheduled param scheduleTime param isScheduled export interface MeetingOptions { isScheduled : boolean ; scheduleTime ? : Date ; } export interface MeetingResponse { sessionId : string ; isArchived ? : boolean ; } interface param meetingId param expireTime export interface SessionOptions { meetingLink : string ; expireTime ? : Date ; data ? : string ; } export interface IArchiveService { getArchive ( archiveId ) : void ; getArchives ( ) : void ; deleteArchive ( archiveId ) : Promise < void > ; setUploadTarget ( body ) : Promise < void > ; } export interface ISessionService { getMeetingLink ( options ) : Promise < string > ; getMeetingToken ( sessionOptions , meetingLinkId ) : Promise < SessionResponse > ; editMeeting ( meetingLinkId , body ) : Promise < void > ; endSession ( meetingLinkId ) : Promise < void > ; checkWebhookPayload ( webhookPayload ) : void ; processStreamDestroyedEvent ( webhookPayload , sessionAttendeeDetail , updatedAttendee ) : void ; getAttendeesList ( meetingLinkId , active ) : Promise < SessionAttendees [ ] > ; }