import { Twilio as TwilioClient } from 'twilio'; import { RoomInstance, RoomListInstanceCreateOptions } from 'twilio/lib/rest/video/v1/room'; import { TwilioConfig } from './types'; import { RecordingInstance } from 'twilio/lib/rest/video/v1/recording'; import { TwilioMeetingResponse, TwilioS3TargetOptions, TwilioWebhookPayload } from '.'; import { TwilioMeetingOptions, TwilioSessonOptions } from '..'; import { ArchiveResponse, SessionResponse, VideoChatFeatures } from '../..'; import { SessionAttendeesRepository, VideoChatSessionRepository } from '../../repositories'; export declare class TwilioService { private readonly twilioConfig; private readonly videoChatSessionRepository; private readonly sessionAttendeesRepository; twilioClient: TwilioClient; constructor(twilioConfig: TwilioConfig, videoChatSessionRepository: VideoChatSessionRepository, sessionAttendeesRepository: SessionAttendeesRepository); getToken(sessionId: string, options: TwilioSessonOptions): Promise; getAccessToken(sessionId: string): string; getMeetingLink(meetingOptions: TwilioMeetingOptions): Promise; getArchives(recordingSid: string | null): Promise; fetchArchive(recordingSid: string): Promise>; deleteArchive(archiveId: string): Promise; setUploadTarget(storageOptions: TwilioS3TargetOptions): Promise; checkWebhookPayload(webhookPayload: TwilioWebhookPayload): Promise; createRoom(createRoomConfig: RoomListInstanceCreateOptions, callback?: (error: Error | null, item?: RoomInstance) => any): Promise; getFeatures(): VideoChatFeatures; }