UNPKG

@vonage/client-sdk

Version:

The Client SDK is intended to provide a ready solution for developers to build Programmable Conversation applications across multiple Channels including: Messages, Voice, SIP, websockets, and App.

29 lines 70.1 kB
<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>@vonage/client-sdk - v0.0.0</title><meta name="description" content="Documentation for @vonage/client-sdk"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base="."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">@vonage/client-sdk - v0.0.0</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h2>@vonage/client-sdk - v0.0.0</h2></div><div class="tsd-panel tsd-typography"><a id="md:vonage-client-sdk" class="tsd-anchor"></a><h1><a href="#md:vonage-client-sdk">Vonage Client SDK</a></h1><p>The Client SDK is intended to provide a ready solution for developers to build Programmable Conversation applications across multiple Channels including: Messages, Voice, SIP, websockets, and App.</p> <a id="md:installation" class="tsd-anchor"></a><h2><a href="#md:installation">Installation</a></h2><p>The SDK can be installed using the npm install command</p> <pre><code class="language-bash"><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">i</span><span class="hl-1"> </span><span class="hl-2">@vonage/client-sdk</span> </code><button>Copy</button></pre> <a id="md:sdk-setup" class="tsd-anchor"></a><h2><a href="#md:sdk-setup">SDK setup</a></h2><a id="md:with-bundler-webpack-vite-etc-and-react" class="tsd-anchor"></a><h3><a href="#md:with-bundler-webpack-vite-etc-and-react">With bundler (Webpack, Vite, etc.) and React</a></h3><pre><code class="language-js"><span class="hl-3">import</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">VonageClient</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">ClientConfig</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">ConfigRegion</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">LoggingLevel</span><br/><span class="hl-1">} </span><span class="hl-3">from</span><span class="hl-1"> </span><span class="hl-2">&#39;@vonage/client-sdk&#39;</span><span class="hl-1">;</span><br/><span class="hl-3">import</span><span class="hl-1"> { </span><span class="hl-4">useState</span><span class="hl-1">, </span><span class="hl-4">useEffect</span><span class="hl-1"> } </span><span class="hl-3">from</span><span class="hl-1"> </span><span class="hl-2">&#39;react&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-5">function</span><span class="hl-1"> </span><span class="hl-0">App</span><span class="hl-1">() {</span><br/><span class="hl-1"> </span><span class="hl-5">const</span><span class="hl-1"> [</span><span class="hl-6">config</span><span class="hl-1">] = </span><span class="hl-0">useState</span><span class="hl-1">(() </span><span class="hl-5">=&gt;</span><span class="hl-1"> </span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-0">ClientConfig</span><span class="hl-1">(</span><span class="hl-4">ConfigRegion</span><span class="hl-1">.</span><span class="hl-6">AP</span><span class="hl-1">));</span><br/><span class="hl-1"> </span><span class="hl-5">const</span><span class="hl-1"> [</span><span class="hl-6">client</span><span class="hl-1">] = </span><span class="hl-0">useState</span><span class="hl-1">(() </span><span class="hl-5">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-7">// Initialize client with optional config (default: ERROR logging, US region).</span><br/><span class="hl-1"> </span><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">client</span><span class="hl-1"> = </span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-0">VonageClient</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-4">loggingLevel:</span><span class="hl-1"> </span><span class="hl-4">LoggingLevel</span><span class="hl-1">.</span><span class="hl-6">DEBUG</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">region:</span><span class="hl-1"> </span><span class="hl-4">ConfigRegion</span><span class="hl-1">.</span><span class="hl-6">EU</span><br/><span class="hl-1"> });</span><br/><span class="hl-1"> </span><span class="hl-7">// Or update some options after initialization.</span><br/><span class="hl-1"> </span><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">setConfig</span><span class="hl-1">(</span><span class="hl-4">config</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-3">return</span><span class="hl-1"> </span><span class="hl-4">client</span><span class="hl-1">;</span><br/><span class="hl-1"> });</span><br/><span class="hl-1"> </span><span class="hl-5">const</span><span class="hl-1"> [</span><span class="hl-6">session</span><span class="hl-1">, </span><span class="hl-6">setSession</span><span class="hl-1">] = </span><span class="hl-0">useState</span><span class="hl-1">();</span><br/><span class="hl-1"> </span><span class="hl-5">const</span><span class="hl-1"> [</span><span class="hl-6">user</span><span class="hl-1">, </span><span class="hl-6">setUser</span><span class="hl-1">] = </span><span class="hl-0">useState</span><span class="hl-1">();</span><br/><span class="hl-1"> </span><span class="hl-5">const</span><span class="hl-1"> [</span><span class="hl-6">error</span><span class="hl-1">, </span><span class="hl-6">setError</span><span class="hl-1">] = </span><span class="hl-0">useState</span><span class="hl-1">();</span><br/><br/><span class="hl-1"> </span><span class="hl-7">// Create Session as soon as client is available</span><br/><span class="hl-1"> </span><span class="hl-0">useEffect</span><span class="hl-1">(() </span><span class="hl-5">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (!</span><span class="hl-4">client</span><span class="hl-1">) </span><span class="hl-3">return</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-4">client</span><br/><span class="hl-1"> .</span><span class="hl-0">createSession</span><span class="hl-1">(</span><span class="hl-2">&#39;my-token&#39;</span><span class="hl-1">)</span><br/><span class="hl-1"> .</span><span class="hl-0">then</span><span class="hl-1">((</span><span class="hl-4">session</span><span class="hl-1">) </span><span class="hl-5">=&gt;</span><span class="hl-1"> </span><span class="hl-0">setSession</span><span class="hl-1">(</span><span class="hl-4">session</span><span class="hl-1">))</span><br/><span class="hl-1"> .</span><span class="hl-0">catch</span><span class="hl-1">((</span><span class="hl-4">error</span><span class="hl-1">) </span><span class="hl-5">=&gt;</span><span class="hl-1"> </span><span class="hl-0">setError</span><span class="hl-1">(</span><span class="hl-4">error</span><span class="hl-1">));</span><br/><span class="hl-1"> }, [</span><span class="hl-4">client</span><span class="hl-1">]);</span><br/><br/><span class="hl-1"> </span><span class="hl-7">// Get User as soon as a session is available</span><br/><span class="hl-1"> </span><span class="hl-0">useEffect</span><span class="hl-1">(() </span><span class="hl-5">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (!</span><span class="hl-4">client</span><span class="hl-1"> || !</span><span class="hl-4">session</span><span class="hl-1">) </span><span class="hl-3">return</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-4">client</span><br/><span class="hl-1"> .</span><span class="hl-0">getUser</span><span class="hl-1">(</span><span class="hl-2">&#39;me&#39;</span><span class="hl-1">)</span><br/><span class="hl-1"> .</span><span class="hl-0">then</span><span class="hl-1">((</span><span class="hl-4">user</span><span class="hl-1">) </span><span class="hl-5">=&gt;</span><span class="hl-1"> </span><span class="hl-0">setUser</span><span class="hl-1">(</span><span class="hl-4">user</span><span class="hl-1">))</span><br/><span class="hl-1"> .</span><span class="hl-0">catch</span><span class="hl-1">((</span><span class="hl-4">error</span><span class="hl-1">) </span><span class="hl-5">=&gt;</span><span class="hl-1"> </span><span class="hl-0">setError</span><span class="hl-1">(</span><span class="hl-4">error</span><span class="hl-1">));</span><br/><span class="hl-1"> }, [</span><span class="hl-4">client</span><span class="hl-1">, </span><span class="hl-4">session</span><span class="hl-1">]);</span><br/><br/><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">error</span><span class="hl-1">) </span><span class="hl-3">return</span><span class="hl-1"> </span><span class="hl-8">&lt;</span><span class="hl-9">pre</span><span class="hl-8">&gt;</span><span class="hl-5">{</span><span class="hl-6">JSON</span><span class="hl-10">.</span><span class="hl-0">stringify</span><span class="hl-10">(</span><span class="hl-4">error</span><span class="hl-10">)</span><span class="hl-5">}</span><span class="hl-8">&lt;/</span><span class="hl-9">pre</span><span class="hl-8">&gt;</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (!</span><span class="hl-4">session</span><span class="hl-1"> || !</span><span class="hl-4">user</span><span class="hl-1">) </span><span class="hl-3">return</span><span class="hl-1"> </span><span class="hl-8">&lt;</span><span class="hl-9">div</span><span class="hl-8">&gt;</span><span class="hl-1">Loading...</span><span class="hl-8">&lt;/</span><span class="hl-9">div</span><span class="hl-8">&gt;</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-3">return</span><span class="hl-1"> </span><span class="hl-8">&lt;</span><span class="hl-9">div</span><span class="hl-8">&gt;</span><span class="hl-1">User </span><span class="hl-5">{</span><span class="hl-4">user</span><span class="hl-10">.</span><span class="hl-4">displayName</span><span class="hl-10"> </span><span class="hl-1">||</span><span class="hl-10"> </span><span class="hl-4">user</span><span class="hl-10">.</span><span class="hl-4">name</span><span class="hl-5">}</span><span class="hl-1"> logged in</span><span class="hl-8">&lt;/</span><span class="hl-9">div</span><span class="hl-8">&gt;</span><span class="hl-1">;</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-3">export</span><span class="hl-1"> </span><span class="hl-3">default</span><span class="hl-1"> </span><span class="hl-4">App</span><span class="hl-1">;</span> </code><button>Copy</button></pre> <a id="md:with-script-tag-umd" class="tsd-anchor"></a><h3><a href="#md:with-script-tag-umd">With script tag (UMD)</a></h3><pre><code class="language-html"><span class="hl-7">&lt;!-- &lt;script src=&quot;./node_modules/@vonage/client-sdk/dist/vonageClientSDK.js&quot;&gt;&lt;/script&gt; --&gt;</span><br/><span class="hl-7">&lt;!-- &lt;script src=&quot;https://cdn.jsdelivr.net/npm/@vonage/client-sdk/dist/vonageClientSDK.min.js&quot;&gt;&lt;/script&gt; --&gt;</span><br/><span class="hl-8">&lt;</span><span class="hl-9">script</span><span class="hl-10"> </span><span class="hl-11">src</span><span class="hl-10">=</span><span class="hl-12">&quot;./node_modules/@vonage/client-sdk/dist/vonageClientSDK.min.js&quot;</span><span class="hl-8">&gt;&lt;/</span><span class="hl-9">script</span><span class="hl-8">&gt;</span><br/><span class="hl-8">&lt;</span><span class="hl-9">script</span><span class="hl-8">&gt;</span><br/><span class="hl-10"> </span><span class="hl-5">const</span><span class="hl-10"> </span><span class="hl-6">token</span><span class="hl-10"> </span><span class="hl-1">=</span><span class="hl-10"> </span><span class="hl-2">&#39;my-token&#39;</span><span class="hl-10">;</span><br/><span class="hl-10"> </span><span class="hl-7">// Initialize client with optional config (default: ERROR logging, US region).</span><br/><span class="hl-10"> </span><span class="hl-5">const</span><span class="hl-10"> </span><span class="hl-6">client</span><span class="hl-10"> </span><span class="hl-1">=</span><span class="hl-10"> </span><span class="hl-5">new</span><span class="hl-10"> </span><span class="hl-4">vonageClientSDK</span><span class="hl-10">.</span><span class="hl-0">VoiceClient</span><span class="hl-10">({</span><br/><span class="hl-10"> </span><span class="hl-4">loggingLevel:</span><span class="hl-10"> </span><span class="hl-4">LoggingLevel</span><span class="hl-10">.</span><span class="hl-6">DEBUG</span><span class="hl-10">, </span><br/><span class="hl-10"> </span><span class="hl-4">region:</span><span class="hl-10"> </span><span class="hl-4">ConfigRegion</span><span class="hl-10">.</span><span class="hl-6">EU</span><br/><span class="hl-10"> });</span><br/><span class="hl-10"> </span><span class="hl-7">// Or update some options after initialization.</span><br/><span class="hl-10"> </span><span class="hl-4">client</span><span class="hl-10">.</span><span class="hl-0">setConfig</span><span class="hl-10">({</span><br/><span class="hl-10"> </span><span class="hl-4">region:</span><span class="hl-10"> </span><span class="hl-4">ConfigRegion</span><span class="hl-10">.</span><span class="hl-6">AP</span><br/><span class="hl-10"> });</span><br/><br/><span class="hl-10"> </span><span class="hl-4">client</span><span class="hl-10">.</span><span class="hl-0">createSession</span><span class="hl-10">(</span><span class="hl-4">token</span><span class="hl-10">).</span><span class="hl-0">then</span><span class="hl-10">((</span><span class="hl-4">Session</span><span class="hl-10">) </span><span class="hl-5">=&gt;</span><span class="hl-10"> {});</span><br/><span class="hl-8">&lt;/</span><span class="hl-9">script</span><span class="hl-8">&gt;</span> </code><button>Copy</button></pre> <a id="md:with-cdn-es" class="tsd-anchor"></a><h3><a href="#md:with-cdn-es">With CDN (ES)</a></h3><pre><code class="language-js"><span class="hl-3">import</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">VonageClient</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">ConfigRegion</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">LoggingLevel</span><br/><span class="hl-1">} </span><span class="hl-3">from</span><span class="hl-1"> </span><span class="hl-2">&#39;https://cdn.jsdelivr.net/npm/@vonage/client-sdk/dist/vonageClientSDK.esm.min.js&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-7">// Initialize client with optional config (default: ERROR logging, US region).</span><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">client</span><span class="hl-1"> = </span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-0">VonageClient</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-4">loggingLevel:</span><span class="hl-1"> </span><span class="hl-4">LoggingLevel</span><span class="hl-1">.</span><span class="hl-6">DEBUG</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">region:</span><span class="hl-1"> </span><span class="hl-4">ConfigRegion</span><span class="hl-1">.</span><span class="hl-6">EU</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-7">// Or update some options after initialization.</span><br/><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">setConfig</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-4">region:</span><span class="hl-1"> </span><span class="hl-4">ConfigRegion</span><span class="hl-1">.</span><span class="hl-6">AP</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-1">(</span><span class="hl-5">async</span><span class="hl-1"> () </span><span class="hl-5">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">token</span><span class="hl-1"> = </span><span class="hl-2">&#39;my-token&#39;</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-3">try</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-7">// Create Session</span><br/><span class="hl-1"> </span><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">sessionId</span><span class="hl-1"> = </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">createSession</span><span class="hl-1">(</span><span class="hl-4">token</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-7">// Get User</span><br/><span class="hl-1"> </span><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">user</span><span class="hl-1"> = </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">getUser</span><span class="hl-1">(</span><span class="hl-2">&#39;me&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-2">`User </span><span class="hl-5">${</span><br/><span class="hl-10"> </span><span class="hl-4">user</span><span class="hl-10">.</span><span class="hl-4">displayName</span><span class="hl-10"> </span><span class="hl-1">||</span><span class="hl-10"> </span><span class="hl-4">user</span><span class="hl-10">.</span><span class="hl-4">name</span><br/><span class="hl-10"> </span><span class="hl-5">}</span><span class="hl-2"> logged in with session ID: </span><span class="hl-5">${</span><span class="hl-4">sessionId</span><span class="hl-5">}</span><span class="hl-2">`</span><br/><span class="hl-1"> );</span><br/><span class="hl-1"> } </span><span class="hl-3">catch</span><span class="hl-1"> (</span><span class="hl-4">error</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-7">// Log errors for either createSession or getUser</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">error</span><span class="hl-1">(</span><span class="hl-4">error</span><span class="hl-1">);</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">})();</span> </code><button>Copy</button></pre> <a id="md:example-usage" class="tsd-anchor"></a><h2><a href="#md:example-usage">Example Usage</a></h2><p>Below are several typical scenarios where the SDK is commonly utilized.</p> <a id="md:make-an-outbound-call" class="tsd-anchor"></a><h3><a href="#md:make-an-outbound-call">Make an Outbound Call</a></h3><pre><code class="language-ts"><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">context</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-4">callee:</span><span class="hl-1"> </span><span class="hl-2">&#39;user1&#39;</span><br/><span class="hl-1">};</span><br/><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">callId</span><span class="hl-1"> = </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">serverCall</span><span class="hl-1">(</span><span class="hl-4">context</span><span class="hl-1">);</span> </code><button>Copy</button></pre> <a id="md:answerreject-an-inbound-call" class="tsd-anchor"></a><h3><a href="#md:answerreject-an-inbound-call">Answer/Reject an Inbound Call</a></h3><pre><code class="language-ts"><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">on</span><span class="hl-1">(</span><span class="hl-2">&#39;callInvite&#39;</span><span class="hl-1">, </span><span class="hl-5">async</span><span class="hl-1"> (</span><span class="hl-4">callId</span><span class="hl-1">, </span><span class="hl-4">from</span><span class="hl-1">, </span><span class="hl-4">channelType</span><span class="hl-1">) </span><span class="hl-5">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Received call invite from </span><span class="hl-5">${</span><span class="hl-4">from</span><span class="hl-5">}</span><span class="hl-2"> on </span><span class="hl-5">${</span><span class="hl-4">channelType</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><br/><span class="hl-1"> </span><span class="hl-7">// Accept the call</span><br/><span class="hl-1"> </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">answer</span><span class="hl-1">(</span><span class="hl-4">callId</span><span class="hl-1">);</span><br/><br/><span class="hl-1"> </span><span class="hl-7">// Reject the call</span><br/><span class="hl-1"> </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">reject</span><span class="hl-1">(</span><span class="hl-4">callId</span><span class="hl-1">);</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">on</span><span class="hl-1">(</span><span class="hl-2">&#39;callInviteCancel&#39;</span><span class="hl-1">, (</span><span class="hl-4">callId</span><span class="hl-1">, </span><span class="hl-4">reason</span><span class="hl-1">) </span><span class="hl-5">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">reason</span><span class="hl-1"> === </span><span class="hl-4">CancelReason</span><span class="hl-1">.</span><span class="hl-4">AnsweredElsewhere</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Call </span><span class="hl-5">${</span><span class="hl-4">callId</span><span class="hl-5">}</span><span class="hl-2"> was answered elsewhere`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">reason</span><span class="hl-1"> === </span><span class="hl-4">CancelReason</span><span class="hl-1">.</span><span class="hl-4">RejectedElsewhere</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Call </span><span class="hl-5">${</span><span class="hl-4">callId</span><span class="hl-5">}</span><span class="hl-2"> was rejected elsewhere`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">reason</span><span class="hl-1"> === </span><span class="hl-4">CancelReason</span><span class="hl-1">.</span><span class="hl-4">RemoteCancel</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Call </span><span class="hl-5">${</span><span class="hl-4">callId</span><span class="hl-5">}</span><span class="hl-2"> was cancelled by the caller`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">reason</span><span class="hl-1"> === </span><span class="hl-4">CancelReason</span><span class="hl-1">.</span><span class="hl-4">RemoteTimeout</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Call </span><span class="hl-5">${</span><span class="hl-4">callId</span><span class="hl-5">}</span><span class="hl-2"> timed out`</span><span class="hl-1">);</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">});</span> </code><button>Copy</button></pre> <a id="md:hang-up-and-collect-stats" class="tsd-anchor"></a><h3><a href="#md:hang-up-and-collect-stats">Hang-up and Collect Stats</a></h3><pre><code class="language-ts"><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">on</span><span class="hl-1">(</span><span class="hl-2">&#39;callHangup&#39;</span><span class="hl-1">, (</span><span class="hl-4">callId</span><span class="hl-1">, </span><span class="hl-4">callQuality</span><span class="hl-1">, </span><span class="hl-4">reason</span><span class="hl-1">) </span><span class="hl-5">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">reason</span><span class="hl-1">.</span><span class="hl-4">name</span><span class="hl-1"> == </span><span class="hl-2">&#39;LOCAL_HANGUP&#39;</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Call </span><span class="hl-5">${</span><span class="hl-4">callId</span><span class="hl-5">}</span><span class="hl-2"> was hung up locally`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">reason</span><span class="hl-1">.</span><span class="hl-4">name</span><span class="hl-1"> == </span><span class="hl-2">&#39;REMOTE_HANGUP&#39;</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Call </span><span class="hl-5">${</span><span class="hl-4">callId</span><span class="hl-5">}</span><span class="hl-2"> was hung up remotely`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">reason</span><span class="hl-1">.</span><span class="hl-4">name</span><span class="hl-1"> == </span><span class="hl-2">&#39;REMOTE_REJECT&#39;</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Call </span><span class="hl-5">${</span><span class="hl-4">callId</span><span class="hl-5">}</span><span class="hl-2"> was rejected remotely`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">reason</span><span class="hl-1">.</span><span class="hl-4">name</span><span class="hl-1"> == </span><span class="hl-2">&#39;REMOTE_NO_ANSWER_TIMEOUT&#39;</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Call </span><span class="hl-5">${</span><span class="hl-4">callId</span><span class="hl-5">}</span><span class="hl-2"> timed out`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">reason</span><span class="hl-1">.</span><span class="hl-4">name</span><span class="hl-1"> == </span><span class="hl-2">&#39;MEDIA_TIMEOUT&#39;</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Call </span><span class="hl-5">${</span><span class="hl-4">callId</span><span class="hl-5">}</span><span class="hl-2"> timed out`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-0">exhaustiveCheck</span><span class="hl-1">(</span><span class="hl-4">reason</span><span class="hl-1">.</span><span class="hl-4">name</span><span class="hl-1">);</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">});</span> </code><button>Copy</button></pre> <a id="md:get-conversations" class="tsd-anchor"></a><h3><a href="#md:get-conversations">Get Conversations</a></h3><pre><code class="language-ts"><span class="hl-5">const</span><span class="hl-1"> { </span><span class="hl-6">conversations</span><span class="hl-1">, </span><span class="hl-6">nextCursor</span><span class="hl-1">, </span><span class="hl-6">previousCursor</span><span class="hl-1"> } =</span><br/><span class="hl-1"> </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">getConversations</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-4">order:</span><span class="hl-1"> </span><span class="hl-4">PresentingOrder</span><span class="hl-1">.</span><span class="hl-6">DESC</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">pageSize:</span><span class="hl-1"> </span><span class="hl-13">10</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">cursor:</span><span class="hl-1"> </span><span class="hl-5">undefined</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">includeCustomData:</span><span class="hl-1"> </span><span class="hl-5">true</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">orderBy:</span><span class="hl-1"> </span><span class="hl-4">OrderBy</span><span class="hl-1">.</span><span class="hl-6">CUSTOM_SORT_KEY</span><br/><span class="hl-1"> });</span> </code><button>Copy</button></pre> <a id="md:send-text-messages" class="tsd-anchor"></a><h3><a href="#md:send-text-messages">Send Text Messages</a></h3><pre><code class="language-ts"><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">timestamp</span><span class="hl-1"> = </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">sendMessageTextEvent</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-2">&#39;CONVERSATION_ID&#39;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">&#39;Hello World!&#39;</span><br/><span class="hl-1">);</span> </code><button>Copy</button></pre> <a id="md:listen-for-conversation-events" class="tsd-anchor"></a><h3><a href="#md:listen-for-conversation-events">Listen for Conversation Events</a></h3><pre><code class="language-ts"><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-0">eventHandler</span><span class="hl-1"> = (</span><span class="hl-4">event</span><span class="hl-1">: </span><span class="hl-14">ConversationEvent</span><span class="hl-1">) </span><span class="hl-5">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">&#39;member:invited&#39;</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Member invited: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">memberId</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">&#39;member:joined&#39;</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Member joined: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">memberId</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">&#39;member:left&#39;</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Member left: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">memberId</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">&#39;ephemeral&#39;</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Ephemeral event: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">&#39;custom&#39;</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Custom event: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">&#39;message:text&#39;</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Text message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">text</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">&#39;message:custom&#39;</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Custom message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">customData</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">&#39;message:image&#39;</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Image message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">imageUrl</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">&#39;message:video&#39;</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Video message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">videoUrl</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">&#39;message:audio&#39;</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Audio message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">audioUrl</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">&#39;message:file&#39;</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`File message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">fileUrl</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">&#39;message:vcard&#39;</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Vcard message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">vcardUrl</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">&#39;message:location&#39;</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Location message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">location</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">&#39;message:template&#39;</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Template message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-10">.</span><span class="hl-4">template</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (</span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">kind</span><span class="hl-1"> == </span><span class="hl-2">&#39;event:delete&#39;</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Template message: </span><span class="hl-5">${</span><span class="hl-4">event</span><span class="hl-10">.</span><span class="hl-4">body</span><span class="hl-5">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1"> } </span><span class="hl-3">else</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-0">exhaustiveCheck</span><span class="hl-1">(</span><span class="hl-4">event</span><span class="hl-1">);</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">};</span><br/><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">listener</span><span class="hl-1"> = </span><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">on</span><span class="hl-1">(</span><span class="hl-2">&#39;conversationEvent&#39;</span><span class="hl-1">, </span><span class="hl-4">eventHandler</span><span class="hl-1">);</span><br/><br/><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">off</span><span class="hl-1">(</span><span class="hl-2">&#39;conversationEvent&#39;</span><span class="hl-1">, </span><span class="hl-4">listener</span><span class="hl-1">);</span> </code><button>Copy</button></pre> <a id="md:documentation-and-examples" class="tsd-anchor"></a><h2><a href="#md:documentation-and-examples">Documentation and examples</a></h2><p>Visit <a href="https://developer.vonage.com/tools">Vonage website</a></p> <a id="md:license" class="tsd-anchor"></a><h2><a href="#md:license">License</a></h2><p>Copyright (c) 2023 Vonage, Inc. All rights reserved. Licensed only under the Vonage Client SDK License Agreement (the &quot;License&quot;) located at <a href="https://github.com/nexmoinc/conversation-js-sdk/blob/master/LICENSE">LICENSE</a>.</p> <p>By downloading or otherwise using our software or services, you acknowledge that you have read, understand and agree to be bound by the Vonage Client SDK License Agreement and Privacy Policy.</p> <p>You may not use, exercise any rights with respect to or exploit this SDK, or any modifications or derivative works thereof, except in accordance with the License.</p> <p><a href="https://www.vonage.com/communications-apis/"><img src="https://developer.nexmo.com/images/logos/vbc-logo.svg" width="30%"></a></p> </div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-alpha" name="alpha" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="non