{"version":3,"sources":["src/common.speech/Transcription/ConversationTranslatorInterfaces.ts"],"names":[],"mappings":"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","file":"ConversationTranslatorInterfaces.d.ts","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n\nimport {\n    ConnectionEventArgs,\n    ConversationExpirationEventArgs,\n    ConversationTranslationCanceledEventArgs,\n    SessionEventArgs,\n    } from \"../../sdk/Exports.js\";\n// import { ConversationClient } from \"./ConversationConnection\";\nimport {\n    ConversationReceivedTranslationEventArgs,\n    LockRoomEventArgs,\n    MuteAllEventArgs,\n    ParticipantAttributeEventArgs,\n    ParticipantEventArgs,\n    ParticipantsListEventArgs } from \"./ConversationTranslatorEventArgs.js\";\n\n/**\n * Internal conversation data\n */\nexport interface IInternalConversation {\n    // the token to use for connecting to the Speech Service\n    cognitiveSpeechAuthToken: string;\n    // the region to use for connecting to the Speech Service\n    cognitiveSpeechRegion: string;\n    // the unique id of the user who started or joined the Conversation\n    participantId: string;\n    // a descriptive name for the Conversation\n    name: string;\n    // a descriptive name for the Conversation\n    description: string;\n    // the speech model ID for custom speech\n    speechModel: string;\n    // represents the level of speech supported in the Conversation (0: everyone can speak, 2: only host can speak, 3: no-one can speak)\n    modalities: number;\n    // ?\n    isApproved: boolean;\n    // the mute flag has been set at conversation level and only the host can speak\n    isMuted: boolean;\n    // the 5 character conversation Id\n    roomId: string;\n    // the hex color string to represent a user. If there are many users this hex color may be reused (?).\n    avatar: string;\n    // the token to use when calling the websocket\n    token: string;\n    // used for tracking the session and help with troubleshooting problems in the logs\n    correlationId: string;\n    // extracted from the headers\n    requestId: string;\n    // set programmatically\n    isHost: boolean;\n}\n\n/**\n * The user who is participating in the conversation.\n */\nexport interface IInternalParticipant {\n    avatar?: string;\n    displayName?: string;\n    id?: string;\n    isHost?: boolean;\n    isMuted?: boolean;\n    isUsingTts?: boolean;\n    profanity?: boolean;\n    preferredLanguage?: string;\n    translateToLanguages?: string[];\n    voice?: string;\n}\n\n/** Users participating in the conversation */\nexport class InternalParticipants {\n\n    public constructor(public participants: IInternalParticipant[] = [], public meId?: string) {\n\n    }\n\n    /**\n     * Add or update a participant\n     * @param value\n     */\n    public addOrUpdateParticipant(value: IInternalParticipant): IInternalParticipant {\n        if (value === undefined) {\n            return;\n        }\n\n        const exists: number = this.getParticipantIndex(value.id);\n        if (exists > -1) {\n            this.participants.splice(exists, 1, value);\n        } else {\n            this.participants.push(value);\n        }\n\n        // ensure it was added ok\n        return this.getParticipant(value.id);\n    }\n\n    /**\n     * Find the participant's position in the participants list.\n     * @param id\n     */\n    public getParticipantIndex(id: string): number {\n        return this.participants.findIndex((p: IInternalParticipant): boolean => p.id === id);\n    }\n\n    /**\n     * Find the participant by id.\n     * @param id\n     */\n    public getParticipant(id: string): IInternalParticipant {\n        return this.participants.find((p: IInternalParticipant): boolean => p.id === id);\n    }\n\n    /**\n     * Remove a participant from the participants list.\n     */\n    public deleteParticipant(id: string): void {\n        this.participants = this.participants.filter((p: IInternalParticipant): boolean => p.id !== id);\n    }\n\n    /**\n     * Helper to return the conversation host.\n     */\n    public get host(): IInternalParticipant {\n        return this.participants.find((p: IInternalParticipant): boolean => p.isHost === true );\n    }\n\n    /**\n     * Helper to return the current user.\n     */\n    public get me(): IInternalParticipant {\n        return this.getParticipant(this.meId);\n    }\n}\n\n/**\n * Recognizer for handling Conversation Translator websocket messages\n */\nexport interface ConversationRecognizer {\n    isDisposed(): boolean;\n    sendRequest: (command: string, cb?: () => void, err?: (e: string) => void) => void;\n    cancelSpeech?: () => Promise<void>;\n    close?: () => Promise<void>;\n    conversationExpiration?: (sender: ConversationRecognizer, event: ConversationExpirationEventArgs) => void;\n    connected?: (e: ConnectionEventArgs) => void;\n    disconnected?: (e: ConnectionEventArgs) => void;\n    canceled?: (sender: ConversationRecognizer, event: ConversationTranslationCanceledEventArgs) => void;\n    connectionOpened?: (sender: ConversationRecognizer, event: SessionEventArgs) => void;\n    connectionClosed?: (sender: ConversationRecognizer, event: SessionEventArgs) => void;\n    participantsListReceived?: (sender: ConversationRecognizer, event: ParticipantsListEventArgs) => void;\n    translationReceived?: (sender: ConversationRecognizer, event: ConversationReceivedTranslationEventArgs) => void;\n    lockRoomCommandReceived?: (sender: ConversationRecognizer, event: LockRoomEventArgs) => void;\n    muteAllCommandReceived?: (sender: ConversationRecognizer, event: MuteAllEventArgs) => void;\n    participantJoinCommandReceived?: (sender: ConversationRecognizer, event: ParticipantEventArgs) => void;\n    participantLeaveCommandReceived?: (sender: ConversationRecognizer, event: ParticipantEventArgs) => void;\n    participantUpdateCommandReceived?: (sender: ConversationRecognizer, event: ParticipantAttributeEventArgs) => void;\n    connect?: (token: string, cb?: () => void, err?: (e: string) => void) => void;\n}\n\n/**\n * Error message returned from the Conversation Translator websocket\n */\nexport interface IConversationResponseErrorMessage {\n    code: string;\n    message: string;\n}\n\n/**\n * Error returned from the Conversation Translator websocket\n */\nexport interface IConversationResponseError {\n    error: IConversationResponseErrorMessage;\n}\n\n/**\n * Base message command\n */\nexport interface IClientMessage {\n    type: any;\n}\n\n/**\n * Command message\n */\nexport interface ICommandMessage extends IClientMessage {\n    command?: string;\n}\n\n/**\n * Text message command\n */\nexport interface IInstantMessageCommand extends ICommandMessage {\n    roomId: string;\n    nickname?: string;\n    participantId: string;\n    text: string;\n}\n\n/**\n * Lock command\n */\nexport interface ILockConversationCommand extends ICommandMessage {\n    id?: string; // incoming ws\n    nickname?: string; // incoming ws\n    participantId: string; // host - incoming ws\n    roomid: string;\n    value: boolean;\n}\n\n/**\n * Mute all command\n */\nexport interface IMuteAllCommand extends ICommandMessage {\n    roomid: string;\n    nickname?: string;  // incoming ws\n    participantId: string; // host\n    value: boolean;\n    id?: string; // incoming ws\n}\n\n/**\n * Mute participant command\n */\nexport interface IMuteCommand extends ICommandMessage {\n    roomid: string;\n    nickname?: string;\n    participantId: string; // participant\n    value: boolean;\n    id?: string; // incoming ws\n}\n\n/**\n * Remove participant command\n */\nexport interface IEjectParticipantCommand extends ICommandMessage {\n    roomid: string;\n    participantId: string; // participant\n}\n\n/**\n * Change nickname command\n */\nexport interface IChangeNicknameCommand extends ICommandMessage {\n    roomid: string;\n    participantId: string;\n    nickname: string;\n    value: string;\n}\n\n/**\n * List of command message types\n */\nexport const ConversationTranslatorMessageTypes = {\n    command: \"command\",\n    final: \"final\",\n    info: \"info\",\n    instantMessage: \"instant_message\",\n    keepAlive: \"keep_alive\",\n    partial: \"partial\",\n    participantCommand: \"participant_command\",\n    translatedMessage: \"translated_message\"\n};\n\n/**\n * List of command types\n */\nexport const ConversationTranslatorCommandTypes = {\n    changeNickname: \"ChangeNickname\",\n    disconnectSession: \"DisconnectSession\",\n    ejectParticipant: \"EjectParticipant\",\n    instant_message: \"instant_message\",\n    joinSession: \"JoinSession\",\n    leaveSession: \"LeaveSession\",\n    participantList: \"ParticipantList\",\n    roomExpirationWarning: \"RoomExpirationWarning\",\n    setLockState: \"SetLockState\",\n    setMute: \"SetMute\",\n    setMuteAll: \"SetMuteAll\",\n    setProfanityFiltering: \"SetProfanityFiltering\",\n    setTranslateToLanguages: \"SetTranslateToLanguages\",\n    setUseTTS: \"SetUseTTS\"\n};\n\n/**\n * HTTP response helper\n */\nexport interface IResponse {\n    ok: boolean;\n    status: number;\n    statusText: string;\n    data: string;\n    json: <T>() => T;\n    headers: string;\n}\n"]}