import { TransportTopology } from '../classes/transport/Transport'; import CallDirection from '../enums/CallDirection'; import CallType from '../enums/CallType'; import ConversationFeature from '../enums/ConversationFeature'; import ConversationOption from '../enums/ConversationOption'; import MediaOption from '../enums/MediaOption'; import UserRole from '../enums/UserRole'; import { AsrInfo } from './Asr'; import { IFeaturesPerRole } from './ConversationFeature'; import { ExternalId, ExternalParticipantId } from './ExternalId'; import { FastStartHandler } from './FastStart'; import MediaModifiers from './MediaModifiers'; import MuteStates from './MuteStates'; import { OkUserId, ParticipantId } from './Participant'; import { IRoomId, RoomUrlSharingInfo } from './Room'; import { RecordInfo } from './SignalingMessage'; /** * Данные текущего звонка */ export type ConversationData = { /** @hidden */ userId: OkUserId; /** @hidden */ compositeUserId: ParticipantId; externalId: ExternalParticipantId; /** * Время принятия звонка */ acceptTime: number | null; features: ConversationFeature[]; /** @hidden */ featuresPerRole?: IFeaturesPerRole | null; /** * ID звонка */ id: string; participantsLimit: number; /** @hidden */ topology: TransportTopology; /** @hidden */ direction: CallDirection; concurrent: boolean; needRate: boolean; /** @hidden */ recordsInfoByRoom: Map; /** @hidden */ asrInfoByRoom: Map; chatId: string | null; /** @hidden */ asrInfo: AsrInfo | null; /** * Роли пользователя */ roles: UserRole[]; /** * Токен комнаты для подключения к звонку по ссылке */ joinLink?: string; /** @hidden */ pinnedParticipantIdByRoom: Map; mediaModifiers: MediaModifiers; options: ConversationOption[]; muteStates: Map; muteStatesPersonal: MuteStates; networkRating: number; waitingHall: boolean; waitForAdmin: boolean; observer: boolean; roomId: IRoomId; audienceMode: boolean; restricted: boolean; /** @hidden */ urlSharingInfoByRoom: Map; }; export type ConversationOnStartParams = { opponentIds?: OkUserId[]; opponentType: CallType; mediaOptions: MediaOption[]; payload?: string; joiningAllowed?: boolean; requireAuthToJoin?: boolean; onlyAdminCanShareMovie?: boolean; externalIds?: ExternalId[]; onFastStart?: FastStartHandler; conversationId?: string; }; export type StartConversationParams = { opponentIds?: OkUserId[]; opponentType: CallType; direction: CallDirection; mediaOptions: MediaOption[]; payload?: string; joiningAllowed?: boolean; requireAuthToJoin?: boolean; onlyAdminCanShareMovie?: boolean; externalIds?: ExternalId[]; startedTime: number; onFastStart?: FastStartHandler; conversationId?: string; };