{"version":3,"sources":["src/common.speech/Transcription/ConversationTranslatorInterfaces.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,mBAAmB,EACnB,+BAA+B,EAC/B,wCAAwC,EACxC,gBAAgB,EACf,MAAM,sBAAsB,CAAC;AAElC,OAAO,EACH,wCAAwC,EACxC,iBAAiB,EACjB,gBAAgB,EAChB,6BAA6B,EAC7B,oBAAoB,EACpB,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAElC,wBAAwB,EAAE,MAAM,CAAC;IAEjC,qBAAqB,EAAE,MAAM,CAAC;IAE9B,aAAa,EAAE,MAAM,CAAC;IAEtB,IAAI,EAAE,MAAM,CAAC;IAEb,WAAW,EAAE,MAAM,CAAC;IAEpB,WAAW,EAAE,MAAM,CAAC;IAEpB,UAAU,EAAE,MAAM,CAAC;IAEnB,UAAU,EAAE,OAAO,CAAC;IAEpB,OAAO,EAAE,OAAO,CAAC;IAEjB,MAAM,EAAE,MAAM,CAAC;IAEf,MAAM,EAAE,MAAM,CAAC;IAEf,KAAK,EAAE,MAAM,CAAC;IAEd,aAAa,EAAE,MAAM,CAAC;IAEtB,SAAS,EAAE,MAAM,CAAC;IAElB,MAAM,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,8CAA8C;AAC9C,qBAAa,oBAAoB;IAEH,YAAY,EAAE,oBAAoB,EAAE;IAAc,IAAI,CAAC,EAAE,MAAM;gBAA/D,YAAY,GAAE,oBAAoB,EAAO,EAAS,IAAI,CAAC,EAAE,MAAM;IAIzF;;;OAGG;IACI,sBAAsB,CAAC,KAAK,EAAE,oBAAoB,GAAG,oBAAoB;IAgBhF;;;OAGG;IACI,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAI9C;;;OAGG;IACI,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,oBAAoB;IAIvD;;OAEG;IACI,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI1C;;OAEG;IACH,IAAW,IAAI,IAAI,oBAAoB,CAEtC;IAED;;OAEG;IACH,IAAW,EAAE,IAAI,oBAAoB,CAEpC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,UAAU,IAAI,OAAO,CAAC;IACtB,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC;IACnF,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,+BAA+B,KAAK,IAAI,CAAC;IAC1G,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC7C,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAChD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,wCAAwC,KAAK,IAAI,CAAC;IACrG,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACrF,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACrF,wBAAwB,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACtG,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,wCAAwC,KAAK,IAAI,CAAC;IAChH,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7F,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC3F,8BAA8B,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACvG,+BAA+B,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACxG,gCAAgC,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,6BAA6B,KAAK,IAAI,CAAC;IAClH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC;CACjF;AAED;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC,KAAK,EAAE,iCAAiC,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,GAAG,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC7D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,eAAe;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,kCAAkC;;;;;;;;;CAS9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;CAe9C,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACnB","file":"ConversationTranslatorInterfaces.d.ts","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport {\r\n    ConnectionEventArgs,\r\n    ConversationExpirationEventArgs,\r\n    ConversationTranslationCanceledEventArgs,\r\n    SessionEventArgs,\r\n    } from \"../../sdk/Exports.js\";\r\n// import { ConversationClient } from \"./ConversationConnection\";\r\nimport {\r\n    ConversationReceivedTranslationEventArgs,\r\n    LockRoomEventArgs,\r\n    MuteAllEventArgs,\r\n    ParticipantAttributeEventArgs,\r\n    ParticipantEventArgs,\r\n    ParticipantsListEventArgs } from \"./ConversationTranslatorEventArgs.js\";\r\n\r\n/**\r\n * Internal conversation data\r\n */\r\nexport interface IInternalConversation {\r\n    // the token to use for connecting to the Speech Service\r\n    cognitiveSpeechAuthToken: string;\r\n    // the region to use for connecting to the Speech Service\r\n    cognitiveSpeechRegion: string;\r\n    // the unique id of the user who started or joined the Conversation\r\n    participantId: string;\r\n    // a descriptive name for the Conversation\r\n    name: string;\r\n    // a descriptive name for the Conversation\r\n    description: string;\r\n    // the speech model ID for custom speech\r\n    speechModel: string;\r\n    // represents the level of speech supported in the Conversation (0: everyone can speak, 2: only host can speak, 3: no-one can speak)\r\n    modalities: number;\r\n    // ?\r\n    isApproved: boolean;\r\n    // the mute flag has been set at conversation level and only the host can speak\r\n    isMuted: boolean;\r\n    // the 5 character conversation Id\r\n    roomId: string;\r\n    // the hex color string to represent a user. If there are many users this hex color may be reused (?).\r\n    avatar: string;\r\n    // the token to use when calling the websocket\r\n    token: string;\r\n    // used for tracking the session and help with troubleshooting problems in the logs\r\n    correlationId: string;\r\n    // extracted from the headers\r\n    requestId: string;\r\n    // set programmatically\r\n    isHost: boolean;\r\n}\r\n\r\n/**\r\n * The user who is participating in the conversation.\r\n */\r\nexport interface IInternalParticipant {\r\n    avatar?: string;\r\n    displayName?: string;\r\n    id?: string;\r\n    isHost?: boolean;\r\n    isMuted?: boolean;\r\n    isUsingTts?: boolean;\r\n    profanity?: boolean;\r\n    preferredLanguage?: string;\r\n    translateToLanguages?: string[];\r\n    voice?: string;\r\n}\r\n\r\n/** Users participating in the conversation */\r\nexport class InternalParticipants {\r\n\r\n    public constructor(public participants: IInternalParticipant[] = [], public meId?: string) {\r\n\r\n    }\r\n\r\n    /**\r\n     * Add or update a participant\r\n     * @param value\r\n     */\r\n    public addOrUpdateParticipant(value: IInternalParticipant): IInternalParticipant {\r\n        if (value === undefined) {\r\n            return;\r\n        }\r\n\r\n        const exists: number = this.getParticipantIndex(value.id);\r\n        if (exists > -1) {\r\n            this.participants.splice(exists, 1, value);\r\n        } else {\r\n            this.participants.push(value);\r\n        }\r\n\r\n        // ensure it was added ok\r\n        return this.getParticipant(value.id);\r\n    }\r\n\r\n    /**\r\n     * Find the participant's position in the participants list.\r\n     * @param id\r\n     */\r\n    public getParticipantIndex(id: string): number {\r\n        return this.participants.findIndex((p: IInternalParticipant): boolean => p.id === id);\r\n    }\r\n\r\n    /**\r\n     * Find the participant by id.\r\n     * @param id\r\n     */\r\n    public getParticipant(id: string): IInternalParticipant {\r\n        return this.participants.find((p: IInternalParticipant): boolean => p.id === id);\r\n    }\r\n\r\n    /**\r\n     * Remove a participant from the participants list.\r\n     */\r\n    public deleteParticipant(id: string): void {\r\n        this.participants = this.participants.filter((p: IInternalParticipant): boolean => p.id !== id);\r\n    }\r\n\r\n    /**\r\n     * Helper to return the conversation host.\r\n     */\r\n    public get host(): IInternalParticipant {\r\n        return this.participants.find((p: IInternalParticipant): boolean => p.isHost === true );\r\n    }\r\n\r\n    /**\r\n     * Helper to return the current user.\r\n     */\r\n    public get me(): IInternalParticipant {\r\n        return this.getParticipant(this.meId);\r\n    }\r\n}\r\n\r\n/**\r\n * Recognizer for handling Conversation Translator websocket messages\r\n */\r\nexport interface ConversationRecognizer {\r\n    isDisposed(): boolean;\r\n    sendRequest: (command: string, cb?: () => void, err?: (e: string) => void) => void;\r\n    cancelSpeech?: () => Promise<void>;\r\n    close?: () => Promise<void>;\r\n    conversationExpiration?: (sender: ConversationRecognizer, event: ConversationExpirationEventArgs) => void;\r\n    connected?: (e: ConnectionEventArgs) => void;\r\n    disconnected?: (e: ConnectionEventArgs) => void;\r\n    canceled?: (sender: ConversationRecognizer, event: ConversationTranslationCanceledEventArgs) => void;\r\n    connectionOpened?: (sender: ConversationRecognizer, event: SessionEventArgs) => void;\r\n    connectionClosed?: (sender: ConversationRecognizer, event: SessionEventArgs) => void;\r\n    participantsListReceived?: (sender: ConversationRecognizer, event: ParticipantsListEventArgs) => void;\r\n    translationReceived?: (sender: ConversationRecognizer, event: ConversationReceivedTranslationEventArgs) => void;\r\n    lockRoomCommandReceived?: (sender: ConversationRecognizer, event: LockRoomEventArgs) => void;\r\n    muteAllCommandReceived?: (sender: ConversationRecognizer, event: MuteAllEventArgs) => void;\r\n    participantJoinCommandReceived?: (sender: ConversationRecognizer, event: ParticipantEventArgs) => void;\r\n    participantLeaveCommandReceived?: (sender: ConversationRecognizer, event: ParticipantEventArgs) => void;\r\n    participantUpdateCommandReceived?: (sender: ConversationRecognizer, event: ParticipantAttributeEventArgs) => void;\r\n    connect?: (token: string, cb?: () => void, err?: (e: string) => void) => void;\r\n}\r\n\r\n/**\r\n * Error message returned from the Conversation Translator websocket\r\n */\r\nexport interface IConversationResponseErrorMessage {\r\n    code: string;\r\n    message: string;\r\n}\r\n\r\n/**\r\n * Error returned from the Conversation Translator websocket\r\n */\r\nexport interface IConversationResponseError {\r\n    error: IConversationResponseErrorMessage;\r\n}\r\n\r\n/**\r\n * Base message command\r\n */\r\nexport interface IClientMessage {\r\n    type: any;\r\n}\r\n\r\n/**\r\n * Command message\r\n */\r\nexport interface ICommandMessage extends IClientMessage {\r\n    command?: string;\r\n}\r\n\r\n/**\r\n * Text message command\r\n */\r\nexport interface IInstantMessageCommand extends ICommandMessage {\r\n    roomId: string;\r\n    nickname?: string;\r\n    participantId: string;\r\n    text: string;\r\n}\r\n\r\n/**\r\n * Lock command\r\n */\r\nexport interface ILockConversationCommand extends ICommandMessage {\r\n    id?: string; // incoming ws\r\n    nickname?: string; // incoming ws\r\n    participantId: string; // host - incoming ws\r\n    roomid: string;\r\n    value: boolean;\r\n}\r\n\r\n/**\r\n * Mute all command\r\n */\r\nexport interface IMuteAllCommand extends ICommandMessage {\r\n    roomid: string;\r\n    nickname?: string;  // incoming ws\r\n    participantId: string; // host\r\n    value: boolean;\r\n    id?: string; // incoming ws\r\n}\r\n\r\n/**\r\n * Mute participant command\r\n */\r\nexport interface IMuteCommand extends ICommandMessage {\r\n    roomid: string;\r\n    nickname?: string;\r\n    participantId: string; // participant\r\n    value: boolean;\r\n    id?: string; // incoming ws\r\n}\r\n\r\n/**\r\n * Remove participant command\r\n */\r\nexport interface IEjectParticipantCommand extends ICommandMessage {\r\n    roomid: string;\r\n    participantId: string; // participant\r\n}\r\n\r\n/**\r\n * Change nickname command\r\n */\r\nexport interface IChangeNicknameCommand extends ICommandMessage {\r\n    roomid: string;\r\n    participantId: string;\r\n    nickname: string;\r\n    value: string;\r\n}\r\n\r\n/**\r\n * List of command message types\r\n */\r\nexport const ConversationTranslatorMessageTypes = {\r\n    command: \"command\",\r\n    final: \"final\",\r\n    info: \"info\",\r\n    instantMessage: \"instant_message\",\r\n    keepAlive: \"keep_alive\",\r\n    partial: \"partial\",\r\n    participantCommand: \"participant_command\",\r\n    translatedMessage: \"translated_message\"\r\n};\r\n\r\n/**\r\n * List of command types\r\n */\r\nexport const ConversationTranslatorCommandTypes = {\r\n    changeNickname: \"ChangeNickname\",\r\n    disconnectSession: \"DisconnectSession\",\r\n    ejectParticipant: \"EjectParticipant\",\r\n    instant_message: \"instant_message\",\r\n    joinSession: \"JoinSession\",\r\n    leaveSession: \"LeaveSession\",\r\n    participantList: \"ParticipantList\",\r\n    roomExpirationWarning: \"RoomExpirationWarning\",\r\n    setLockState: \"SetLockState\",\r\n    setMute: \"SetMute\",\r\n    setMuteAll: \"SetMuteAll\",\r\n    setProfanityFiltering: \"SetProfanityFiltering\",\r\n    setTranslateToLanguages: \"SetTranslateToLanguages\",\r\n    setUseTTS: \"SetUseTTS\"\r\n};\r\n\r\n/**\r\n * HTTP response helper\r\n */\r\nexport interface IResponse {\r\n    ok: boolean;\r\n    status: number;\r\n    statusText: string;\r\n    data: string;\r\n    json: <T>() => T;\r\n    headers: string;\r\n}\r\n"]}