@realsee/five
Version:
Realsee Renderer SDK
101 lines (95 loc) • 23.3 kB
HTML
<html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>features/pano-tile | 如视 Five SDK</title><meta name="description" content="Documentation for 如视 Five 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/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">如视 Five SDK</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">features/pano-tile</a></li></ul></div><div class="tsd-panel tsd-typography"><h1 id="panorama-tile" class="tsd-anchor-link">Panorama Tile<a href="#panorama-tile" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h1>
<ul>
<li><strong>Summary</strong>: 全景模式下的瓦片加载策略,支持多分辨率层级(LOD)和视锥体裁剪,以优化全景浏览的性能和清晰度。</li>
<li><strong>Schema</strong>: WorkTile 接口及相关配置参数。</li>
<li><strong>Concepts</strong>: LOD (Level of Detail), Frustum Culling, Tile URL Generation.</li>
<li><strong>Configuration</strong>: tileLevelForFov, tileMaxRequest, imageOptions.</li>
<li><strong>Examples</strong>: 瓦片数据结构查看与 Five 初始化配置。</li>
</ul>
<h2 id="schema" class="tsd-anchor-link">Schema<a href="#schema" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
<blockquote>
<p><strong>Definition</strong>: <a href="../../five/work/work.d.ts">WorkImage</a>, <a href="../../five/types/imageOptions.d.ts">ImageOptions</a></p>
</blockquote>
<h3 id="workobserverimages" class="tsd-anchor-link">WorkObserver.images<a href="#workobserverimages" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
<p>点位全景图数据结构,包含瓦片列表。</p>
<pre><code class="typescript"><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">WorkImage</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">/** 分辨率列表 */</span><br/><span class="hl-1"> </span><span class="hl-6">sizeList</span><span class="hl-1">: </span><span class="hl-3">readonly</span><span class="hl-1"> </span><span class="hl-7">number</span><span class="hl-1">[];</span><br/><span class="hl-1"> </span><span class="hl-8">/** 瓦片信息列表,按 level 排序 */</span><br/><span class="hl-1"> </span><span class="hl-6">tiles</span><span class="hl-1">: </span><span class="hl-3">readonly</span><span class="hl-1"> </span><span class="hl-7">WorkTile</span><span class="hl-1">[];</span><br/><span class="hl-1"> </span><span class="hl-8">// ... 其他基础图片 URL</span><br/><span class="hl-1">}</span>
</code><button type="button">Copy</button></pre>
<h3 id="imageoptions" class="tsd-anchor-link">ImageOptions<a href="#imageoptions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
<p>全景图及瓦片的图片处理配置。</p>
<pre><code class="typescript"><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">ImageOptions</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">/** 图片尺寸参数 (例如 512, 1024...) */</span><br/><span class="hl-1"> </span><span class="hl-6">size</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 图片质量参数 (0-100) */</span><br/><span class="hl-1"> </span><span class="hl-6">quality</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 图片格式参数 */</span><br/><span class="hl-1"> </span><span class="hl-6">format</span><span class="hl-1">?: </span><span class="hl-9">"jpg"</span><span class="hl-1"> | </span><span class="hl-9">"jpeg"</span><span class="hl-1"> | </span><span class="hl-9">"png"</span><span class="hl-1"> | </span><span class="hl-9">"heif"</span><span class="hl-1"> | </span><span class="hl-9">"heic"</span><span class="hl-1"> | </span><span class="hl-9">"webp"</span><span class="hl-1"> | </span><span class="hl-9">"avif"</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** URL 转换函数 */</span><br/><span class="hl-1"> </span><span class="hl-5">transform</span><span class="hl-1">?: (</span><span class="hl-6">url</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">, </span><span class="hl-6">options</span><span class="hl-1">: </span><span class="hl-7">ImageURLOptions</span><span class="hl-1">) </span><span class="hl-3">=></span><span class="hl-1"> </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1">}</span>
</code><button type="button">Copy</button></pre>
<h2 id="concepts" class="tsd-anchor-link">Concepts<a href="#concepts" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
<h3 id="tile-parsing-瓦片解析" class="tsd-anchor-link">Tile Parsing (瓦片解析)<a href="#tile-parsing-瓦片解析" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
<p>在 <code>Five</code> 加载 <code>Work</code> 数据时,<code>WorkParser</code> 会解析 <code>panorama.size_list</code> (或 <code>panorama.tiles</code>) 字段。</p>
<ul>
<li><strong>Level 计算</strong>: <code>level = log2(size / 512)</code>。</li>
<li><strong>URL 生成</strong>:
<ul>
<li>如果 <code>size > baseSize</code> (通常是初始全景图大小),URL 中的 <code>/cube_{size}/</code> 部分会被动态替换(通过 <code>replaceImageSize</code> 函数)。</li>
<li>如果 <code>size <= baseSize</code>,直接使用基础全景图 URL,并设置 <code>scale</code>。</li>
</ul>
</li>
<li><strong>排序</strong>: 解析后的 <code>tiles</code> 数组会按 <code>level</code> 升序排列。</li>
</ul>
<h3 id="sizelist" class="tsd-anchor-link">sizeList<a href="#sizelist" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
<ul>
<li><strong>类型</strong>: <code>readonly number[]</code></li>
<li><strong>说明</strong>: 包含所有可用的分辨率(以像素为单位)。</li>
<li><strong>示例</strong>: <code>[2048, 6144]</code> 表示该点位全景图有两个层级,分别是 2048px 和 6144px。</li>
<li><strong>图片路径</strong>: 每个层级的图片路径都是 <code>cube_{size}</code>,<code>{size}</code> 是层级分辨率,必须与 <code>sizeList</code> 中的值对应。并必须存在 2048px 层级的图片。</li>
</ul>
<h3 id="level-of-detail-lod-loading-strategy" class="tsd-anchor-link">Level of Detail (LOD) & Loading Strategy<a href="#level-of-detail-lod-loading-strategy" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
<p><code>PanoramaController</code> 使用 <code>Tiling</code> 类来管理瓦片加载:</p>
<ul>
<li><strong>LOD 选择</strong>: 根据当前的视场角 (<code>FOV</code>) 和视图大小 (<code>viewSize</code>),计算所需的最佳瓦片层级。默认策略会优先保证画面清晰度,同时考虑网络开销。</li>
<li><strong>视锥体裁剪 (Frustum Culling)</strong>: 仅加载当前相机视锥体可见范围内的瓦片面。</li>
<li><strong>并发控制</strong>: 通过 <code>tileMaxRequest</code> 限制同时进行的网络请求数量,避免阻塞。</li>
</ul>
<h2 id="configuration" class="tsd-anchor-link">Configuration<a href="#configuration" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
<p>在初始化 <code>Five</code> 时,可以通过 <code>panorama</code> 配置参数来配置瓦片加载行为。</p>
<table>
<thead>
<tr>
<th style="text-align:left">Parameter</th>
<th style="text-align:left">Type</th>
<th style="text-align:left">Default</th>
<th style="text-align:left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><code>tileLevelForFov</code></td>
<td style="text-align:left"><code>(fov: number, viewSize: Vector2) => number</code> | <code>false</code></td>
<td style="text-align:left"><code>undefined</code></td>
<td style="text-align:left">自定义函数,用于根据当前 FOV 和视图尺寸决定加载哪个层级的瓦片。返回 <code>level</code> 数值。如果设置为 <code>false</code>,则禁用动态瓦片加载。默认使用内部策略。</td>
</tr>
<tr>
<td style="text-align:left"><code>tileMaxRequest</code></td>
<td style="text-align:left"><code>number</code></td>
<td style="text-align:left"><code>3</code></td>
<td style="text-align:left">最大的瓦片图片并发请求数。增加此值可能加快加载速度,但也可能导致网络拥塞。</td>
</tr>
<tr>
<td style="text-align:left"><code>imageOptions</code></td>
<td style="text-align:left"><code>ImageOptions</code></td>
<td style="text-align:left"><code>undefined</code></td>
<td style="text-align:left">全景图及瓦片的图片处理配置。可用于全局控制图片的加载格式(如强制使用 WebP)、质量压缩比例或通过 <code>transform</code> 函数自定义图片 URL。</td>
</tr>
</tbody>
</table>
<h2 id="examples" class="tsd-anchor-link">Examples<a href="#examples" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
<h3 id="查看瓦片数据结构" class="tsd-anchor-link">查看瓦片数据结构<a href="#查看瓦片数据结构" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
<pre><code class="typescript"><span class="hl-10">import</span><span class="hl-1"> { </span><span class="hl-6">Five</span><span class="hl-1"> } </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">"@realsee/five"</span><span class="hl-1">;</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">five</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-5">Five</span><span class="hl-1">();</span><br/><br/><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">on</span><span class="hl-1">(</span><span class="hl-9">"loaded"</span><span class="hl-1">, () </span><span class="hl-3">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">observer</span><span class="hl-1"> = </span><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-6">work</span><span class="hl-1">.</span><span class="hl-6">observers</span><span class="hl-1">[</span><span class="hl-11">0</span><span class="hl-1">];</span><br/><span class="hl-1"> </span><span class="hl-10">if</span><span class="hl-1"> (</span><span class="hl-6">observer</span><span class="hl-1"> && </span><span class="hl-6">observer</span><span class="hl-1">.</span><span class="hl-6">images</span><span class="hl-1"> && </span><span class="hl-6">observer</span><span class="hl-1">.</span><span class="hl-6">images</span><span class="hl-1">.</span><span class="hl-6">tiles</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-6">console</span><span class="hl-1">.</span><span class="hl-5">log</span><span class="hl-1">(</span><span class="hl-9">"Available Tiles:"</span><span class="hl-1">, </span><span class="hl-6">observer</span><span class="hl-1">.</span><span class="hl-6">images</span><span class="hl-1">.</span><span class="hl-6">tiles</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-6">observer</span><span class="hl-1">.</span><span class="hl-6">images</span><span class="hl-1">.</span><span class="hl-6">tiles</span><span class="hl-1">.</span><span class="hl-5">forEach</span><span class="hl-1">(</span><span class="hl-6">tile</span><span class="hl-1"> </span><span class="hl-3">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-6">console</span><span class="hl-1">.</span><span class="hl-5">log</span><span class="hl-1">(</span><span class="hl-9">`Level: </span><span class="hl-3">${</span><span class="hl-6">tile</span><span class="hl-12">.</span><span class="hl-6">level</span><span class="hl-3">}</span><span class="hl-9">, Size: </span><span class="hl-3">${</span><span class="hl-6">tile</span><span class="hl-12">.</span><span class="hl-6">size</span><span class="hl-3">}</span><span class="hl-9">, Scale: </span><span class="hl-3">${</span><span class="hl-6">tile</span><span class="hl-12">.</span><span class="hl-6">scale</span><span class="hl-3">}</span><span class="hl-9">`</span><span class="hl-1">);</span><br/><span class="hl-1"> });</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">});</span>
</code><button type="button">Copy</button></pre>
<h3 id="配置瓦片加载策略与图片参数" class="tsd-anchor-link">配置瓦片加载策略与图片参数<a href="#配置瓦片加载策略与图片参数" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
<pre><code class="typescript"><span class="hl-10">import</span><span class="hl-1"> { </span><span class="hl-6">Five</span><span class="hl-1"> } </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">"@realsee/five"</span><span class="hl-1">;</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">five</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-5">Five</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-8">// 自定义瓦片层级选择策略</span><br/><span class="hl-1"> </span><span class="hl-5">tileLevelForFov</span><span class="hl-6">:</span><span class="hl-1"> (</span><span class="hl-6">fov</span><span class="hl-1">, </span><span class="hl-6">viewSize</span><span class="hl-1">) </span><span class="hl-3">=></span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">// 简单示例:FOV 小于 60 度时强制使用 Level 2,否则使用 Level 1</span><br/><span class="hl-1"> </span><span class="hl-10">if</span><span class="hl-1"> (</span><span class="hl-6">fov</span><span class="hl-1"> < </span><span class="hl-11">60</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-10">return</span><span class="hl-1"> </span><span class="hl-11">2</span><span class="hl-1">;</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> </span><span class="hl-10">return</span><span class="hl-1"> </span><span class="hl-11">1</span><span class="hl-1">;</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-8">// 限制并发请求数</span><br/><span class="hl-1"> </span><span class="hl-6">tileMaxRequest:</span><span class="hl-1"> </span><span class="hl-11">6</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-8">// 图片加载配置</span><br/><span class="hl-1"> </span><span class="hl-6">imageOptions:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">// 强制请求 WebP 格式的图片</span><br/><span class="hl-1"> </span><span class="hl-6">format:</span><span class="hl-1"> </span><span class="hl-9">"webp"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-8">// 图片质量设置为 80%</span><br/><span class="hl-1"> </span><span class="hl-6">quality:</span><span class="hl-1"> </span><span class="hl-11">80</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-8">// (可选) 自定义 URL 转换逻辑</span><br/><span class="hl-1"> </span><span class="hl-8">// transform: (url, options) => {</span><br/><span class="hl-1"> </span><span class="hl-8">// return url + `?x-oss-process=image/format,webp/quality,q_80`;</span><br/><span class="hl-1"> </span><span class="hl-8">// }</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">});</span>
</code><button type="button">Copy</button></pre>
<h2 id="related" class="tsd-anchor-link">Related<a href="#related" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
<ul>
<li><a href="features_mode.html">Mode</a>: 了解不同模态下 Work 数据的表现。</li>
<li><a href="features_image-options.html">ImageOptions</a>: 了解图片加载配置选项。</li>
</ul>
<hr>
<pre><code class="yaml"><span class="hl-0">tags</span><span class="hl-1">: [</span><span class="hl-2">全景瓦片</span><span class="hl-1">, </span><span class="hl-2">高清全景</span><span class="hl-1">, </span><span class="hl-2">分片加载</span><span class="hl-1">, </span><span class="hl-2">瓦片</span><span class="hl-1">, </span><span class="hl-2">全景图</span><span class="hl-1">, </span><span class="hl-2">分辨率</span><span class="hl-1">, </span><span class="hl-2">按需加载</span><span class="hl-1">, </span><span class="hl-2">pano-tile</span><span class="hl-1">, </span><span class="hl-2">observer</span><span class="hl-1">, </span><span class="hl-2">LOD</span><span class="hl-1">, </span><span class="hl-2">tile</span><span class="hl-1">]</span>
</code><button type="button">Copy</button></pre>
</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><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></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#panorama-tile"><span>Panorama <wbr/>Tile</span></a><ul><li><a href="#schema"><span>Schema</span></a></li><li><ul><li><a href="#workobserverimages"><span>Work<wbr/>Observer.images</span></a></li><li><a href="#imageoptions"><span>Image<wbr/>Options</span></a></li></ul></li><li><a href="#concepts"><span>Concepts</span></a></li><li><ul><li><a href="#tile-parsing-瓦片解析"><span>Tile <wbr/>Parsing (瓦片解析)</span></a></li><li><a href="#sizelist"><span>size<wbr/>List</span></a></li><li><a href="#level-of-detail-lod-loading-strategy"><span>Level of <wbr/>Detail (<wbr/>LOD) & <wbr/>Loading <wbr/>Strategy</span></a></li></ul></li><li><a href="#configuration"><span>Configuration</span></a></li><li><a href="#examples"><span>Examples</span></a></li><li><ul><li><a href="#查看瓦片数据结构"><span>查看瓦片数据结构</span></a></li><li><a href="#配置瓦片加载策略与图片参数"><span>配置瓦片加载策略与图片参数</span></a></li></ul></li><li><a href="#related"><span>Related</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">如视 Five SDK</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>