import { SessionAttendees, VideoChatSession } from '../models'; import { VonageSessionWebhookPayload } from '../providers/vonage'; import { SessionAttendeesRepository, VideoChatSessionRepository } from '../repositories'; import { IConfig, MeetingLink, MeetingOptions, SessionOptions, SessionResponse, VideoChatInterface } from '../types'; import { MeetingLinkIdGenerator } from './meeting-link-id-generator.provider'; export declare class ChatSessionService { private readonly videoChatSessionRepository; private readonly videoChatProvider; generator: MeetingLinkIdGenerator; private readonly sessionAttendeesRepository; private readonly config; constructor(videoChatSessionRepository: VideoChatSessionRepository, videoChatProvider: VideoChatInterface, generator: MeetingLinkIdGenerator, sessionAttendeesRepository: SessionAttendeesRepository, config: IConfig); getMeetingLink(meetingOptions: MeetingOptions): Promise; /** * The function `getMeetingToken` retrieves a session token for a meeting based on provided options and * meeting link ID, with validation checks for session existence, expiration, and scheduled start time. * @param {SessionOptions} sessionOptions - The `sessionOptions` parameter in the `getMeetingToken` * function represents the options for the session, such as the configuration settings for the meeting. * It is an object that contains various properties like `expireTime`, `sessionId`, etc., which are * used to customize the session behavior. * @param {string} meetingLinkId - The `meetingLinkId` parameter is a string that represents the unique * identifier for a specific meeting or session. It is used to retrieve information about the meeting * from the database and validate its status before generating a meeting token. * @returns The `getMeetingToken` function returns a Promise that resolves to a `SessionResponse` * object. */ getMeetingToken(sessionOptions: SessionOptions, meetingLinkId: string): Promise; /** * The function `_validateMeetingLinkId` checks if the provided meeting link ID is a valid non-empty * string in TypeScript. * @param {string} meetingLinkId - The `meetingLinkId` parameter is a string that represents the link * to a meeting. The `_validateMeetingLinkId` function is used to check if the `meetingLinkId` is a * valid string and not empty. If the `meetingLinkId` is not a valid string or is empty, it will throw */ private _validateMeetingLinkId; /** * The function `_validateExpireTime` checks if the provided expire time is in the correct format and * not in the past. * @param {Date} [expireTime] - The `_validateExpireTime` function is used to validate the * `expireTime` parameter. It checks if the `expireTime` is provided and if it is a valid Date object. * It also ensures that the `expireTime` is not in the past. */ private _validateExpireTime; editMeeting(meetingLinkId: string, body: Partial): Promise; endSession(meetingLinkId: string): Promise; checkWebhookPayload(webhookPayload: VonageSessionWebhookPayload): Promise; processStreamDestroyedEvent(webhookPayload: VonageSessionWebhookPayload, sessionAttendeeDetail: SessionAttendees, updatedAttendee: Partial): Promise; getAttendeesList(meetingLinkId: string, active: string): Promise; }