{"version":3,"sources":["src/sdk/AvatarConfig.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;;GAMG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,mBAAmB,CAAM;IACjC,OAAO,CAAC,oBAAoB,CAAiB;IAE7C;;OAEG;IACI,SAAS,EAAE,MAAM,CAAC;IACzB;;OAEG;IACI,KAAK,EAAE,MAAM,CAAC;IACrB;;OAEG;IACI,WAAW,EAAE,iBAAiB,CAAC;IAEtC;;OAEG;IACH,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED;;OAEG;IACH,IAAW,UAAU,CAAC,KAAK,EAAE,OAAO,EAEnC;IAED;;OAEG;IACH,IAAW,eAAe,IAAI,OAAO,CAEpC;IAED;;OAEG;IACH,IAAW,eAAe,CAAC,KAAK,EAAE,OAAO,EAExC;IAED;;OAEG;IACH,IAAW,eAAe,IAAI,MAAM,CAEnC;IAED;;OAEG;IACH,IAAW,eAAe,CAAC,KAAK,EAAE,MAAM,EAEvC;IAED;;OAEG;IACH,IAAW,eAAe,IAAI,GAAG,CAEhC;IAED;;;OAGG;IACH,IAAW,eAAe,CAAC,KAAK,EAAE,GAAG,EAEpC;IAED;;;;OAIG;IACH,IAAW,gBAAgB,IAAI,YAAY,EAAE,CAE5C;IAED;;;;;;OAMG;IACH,IAAW,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,EAEhD;IAED;;;;;;OAMG;gBACgB,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB;CAStF","file":"AvatarConfig.d.ts","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n\nimport { Contracts } from \"./Contracts.js\";\nimport { AvatarVideoFormat } from \"./Exports.js\";\n\n/**\n * Defines the talking avatar configuration.\n * @class AvatarConfig\n * Added in version 1.33.0\n *\n * @experimental This feature is experimental and might change or have limited support.\n */\nexport class AvatarConfig {\n    private privCustomized: boolean = false;\n    private privUseBuiltInVoice: boolean = false;\n    private privBackgroundColor: string;\n    private privBackgroundImage: URL;\n    private privRemoteIceServers: RTCIceServer[];\n\n    /**\n     * Defines the avatar character.\n     */\n    public character: string;\n    /**\n     * Defines the avatar style.\n     */\n    public style: string;\n    /**\n     * Defines the talking avatar output video format.\n     */\n    public videoFormat: AvatarVideoFormat;\n\n    /**\n     * Indicates if the talking avatar is customized.\n     */\n    public get customized(): boolean {\n        return this.privCustomized;\n    }\n\n    /**\n     * Sets if the talking avatar is customized.\n     */\n    public set customized(value: boolean) {\n        this.privCustomized = value;\n    }\n\n    /**\n     * Indicates whether to use built-in voice for custom avatar.\n     */\n    public get useBuiltInVoice(): boolean {\n        return this.privUseBuiltInVoice;\n    }\n\n    /**\n     * Sets whether to use built-in voice for custom avatar.\n     */\n    public set useBuiltInVoice(value: boolean) {\n        this.privUseBuiltInVoice = value;\n    }\n\n    /**\n     * Gets the background color.\n     */\n    public get backgroundColor(): string {\n        return this.privBackgroundColor;\n    }\n\n    /**\n     * Sets the background color.\n     */\n    public set backgroundColor(value: string) {\n        this.privBackgroundColor = value;\n    }\n\n    /**\n     * Gets the background image.\n     */\n    public get backgroundImage(): URL {\n        return this.privBackgroundImage;\n    }\n\n    /**\n     * Sets the background image.\n     * @param {URL} value - The background image.\n     */\n    public set backgroundImage(value: URL) {\n        this.privBackgroundImage = value;\n    }\n\n    /**\n     * Gets the remote ICE servers.\n     * @remarks This method is designed to be used internally in the SDK.\n     * @returns {RTCIceServer[]} The remote ICE servers.\n     */\n    public get remoteIceServers(): RTCIceServer[] {\n        return this.privRemoteIceServers;\n    }\n\n    /**\n     * Sets the remote ICE servers.\n     * @remarks Normally, the ICE servers are gathered from the PeerConnection,\n     * set this property to override the ICE servers. E.g., the ICE servers are\n     * different in client and server side.\n     * @param {RTCIceServer[]} value - The remote ICE servers.\n     */\n    public set remoteIceServers(value: RTCIceServer[]) {\n        this.privRemoteIceServers = value;\n    }\n\n    /**\n     * Creates and initializes an instance of this class.\n     * @constructor\n     * @param {string} character - The avatar character.\n     * @param {string} style - The avatar style.\n     * @param {AvatarVideoFormat} videoFormat - The talking avatar output video format.\n     */\n    public constructor(character: string, style: string, videoFormat: AvatarVideoFormat) {\n        Contracts.throwIfNullOrWhitespace(character, \"character\");\n        this.character = character;\n        this.style = style;\n        if (videoFormat === undefined) {\n            videoFormat = new AvatarVideoFormat();\n        }\n        this.videoFormat = videoFormat;\n    }\n}\n"]}