@fluritheme/moon-explorer 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/LICENSE +56 -0
- package/LICENSE-MIT-LEGACY +23 -0
- package/LICENSING.md +22 -0
- package/README.md +159 -2
- package/dist/index.d.ts +4 -0
- package/dist/index.js +428 -0
- package/dist/model.d.ts +100 -0
- package/dist/model.js +429 -0
- package/dist/render.d.ts +13 -0
- package/dist/render.js +467 -0
- package/dist/types.d.ts +94 -0
- package/dist/types.js +1 -0
- package/licensing.json +51 -0
- package/package.json +79 -4
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.1.0
|
|
4
|
+
|
|
5
|
+
First lunar expedition: articulated astronaut, thruster landing and egress, low-gravity surface exploration, rock sampling, persistent flags, rover boarding/driving/dismount, telescope observations, waves, naps and shooting stars. Document-space physics, responsive canvas, reduced-motion support, bounded particles, deterministic missions, typed controller and events.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
FLURI THEMES COMMERCIAL LICENSE 1.0
|
|
2
|
+
Effective date: 14 November 2026
|
|
3
|
+
Copyright (c) 2026 František Gejdoš. All rights reserved, except as granted below.
|
|
4
|
+
Licensor: František Gejdoš, Slovakia, trading as Fluri Themes.
|
|
5
|
+
Contact: fluritheme@gmail.com
|
|
6
|
+
Canonical terms: https://fluri.xyz/license/
|
|
7
|
+
|
|
8
|
+
1. Scope and acceptance
|
|
9
|
+
|
|
10
|
+
This license covers Fluri Themes software, original theme artwork and accompanying documentation supplied with this license (the Software). It applies to the new commercial releases identified in LICENSING.md, and to future Fluri Themes releases supplied under these terms. Downloading a package does not by itself grant a production-use license. Rights in previously released MIT versions are preserved under section 6.
|
|
11
|
+
|
|
12
|
+
2. Evaluation before purchase
|
|
13
|
+
|
|
14
|
+
You may download, inspect, install and modify the Software solely for private, non-production evaluation on your own devices and access-restricted test environments. You may view and interact with Fluri's official public demonstrations. Evaluation does not permit production use, public deployment, client delivery, public source redistribution or commercial exploitation. A paid license is required for those production and client uses. Automated security analysis and package-registry processing are permitted.
|
|
15
|
+
|
|
16
|
+
3. One purchase, lifetime access
|
|
17
|
+
|
|
18
|
+
A valid purchase of the Fluri Themes Lifetime License grants the named buyer a non-exclusive, worldwide, perpetual license to use and modify all current and future Fluri Themes for unlimited personal, business and client websites and web applications. The listed one-time price is EUR 19; any legally required tax information and total payable must be provided before purchase. A receipt or written license confirmation from Fluri identifies the buyer and records the purchase. There are no recurring license fees and no per-project or per-domain charges.
|
|
19
|
+
|
|
20
|
+
Lifetime means the right to continue using lawfully obtained themes does not expire while you comply with this license. The purchase also includes access to future Fluri themes and theme updates without another theme-license payment. You may retain your own backup copies. No particular release count, release date, support response time or perpetual operation of a hosting or download service is promised. Any mandatory obligations concerning updates, digital content and consumer remedies remain applicable.
|
|
21
|
+
|
|
22
|
+
4. Personal and client projects
|
|
23
|
+
|
|
24
|
+
The buyer may be an individual or a legal entity. Employees and contractors may work with the Software only on projects covered by that buyer's license and may not use shared access for their unrelated projects. The buyer remains responsible for providing access appropriately.
|
|
25
|
+
|
|
26
|
+
You may bundle the Software, including reasonably necessary source code, into a completed website or application and charge clients for that completed project and your services. A client may operate, maintain and modify the delivered project without purchasing a separate Fluri license. That permission does not give the client a reusable theme-library license for unrelated projects. Ordinary browser delivery of compiled or bundled JavaScript, and project handover to the client or their maintainer, are permitted. Your finished project must provide substantial functionality or content beyond redistributing Fluri themes.
|
|
27
|
+
|
|
28
|
+
5. Restrictions
|
|
29
|
+
|
|
30
|
+
Except for the project delivery permitted in section 4, you may not sell, sublicense, give away, publicly redistribute or make the Software available as standalone themes, packages, downloadable source, a template pack, asset collection, theme marketplace or competing reusable library. You may not share purchase credentials or bulk-download access with unrelated buyers, or offer a service whose primary purpose is allowing others to extract, download or redistribute the themes. Private backups and private project repositories are allowed.
|
|
31
|
+
|
|
32
|
+
You may customize themes for your own and client projects. You may not claim authorship of Fluri's unmodified original assets or imply endorsement by Fluri. Keep supplied copyright, license and third-party notices in source distributions and project handovers where applicable. No visible website credit or Fluri branding is required. Rights independently granted by a third party's license or a hosting platform's applicable terms are not restricted by this license.
|
|
33
|
+
|
|
34
|
+
6. Existing MIT releases
|
|
35
|
+
|
|
36
|
+
This license does not replace, revoke or restrict the MIT license attached to earlier published versions: @fluritheme/fluri through 0.2.1; @fluritheme/fluri-react through 0.2.1; @fluritheme/spider through 0.2.1; and @fluritheme/grinch through 0.1.1. Those releases and copies remain governed by their original MIT terms. The first commercial releases are Winter core and React adapter 0.3.0, Spider 0.3.0 and Grinch 0.2.0. New themes use this commercial license from their initial release unless Fluri expressly supplies another license. See LICENSE-MIT-LEGACY for the historical notice. This is not a choice of MIT or commercial licensing for the current commercial release.
|
|
37
|
+
|
|
38
|
+
7. Third-party materials
|
|
39
|
+
|
|
40
|
+
Dependencies, fonts, contributed material and other third-party components retain their own licenses and required notices. This license does not grant exclusive rights to third-party material or replace its terms. The Fluri name and brand are not licensed for use as your own brand. Your content and modifications remain yours, subject to the license obligations for any incorporated Fluri material.
|
|
41
|
+
|
|
42
|
+
8. Operation and privacy
|
|
43
|
+
|
|
44
|
+
The animation runtime does not require online license activation, insert an advertising watermark or send installation telemetry. You remain responsible for integrating it appropriately, preserving usable page controls and respecting visitor motion preferences. Compatibility and performance depend on the host website and device.
|
|
45
|
+
|
|
46
|
+
9. Termination
|
|
47
|
+
|
|
48
|
+
You may stop using the Software at any time. Fluri may terminate this license for a material breach that remains uncorrected for 30 days after written notice explaining the breach, where correction is possible. On termination you must stop creating new deployments and stop using or redistributing the affected Software, except to the extent mandatory law or independently granted rights provide otherwise. Termination does not revoke rights under the legacy MIT releases. A refund or reversed payment is handled under the applicable purchase terms and mandatory law; it does not silently alter third-party open-source rights.
|
|
49
|
+
|
|
50
|
+
10. Warranty, liability and mandatory rights
|
|
51
|
+
|
|
52
|
+
Except for express promises made at purchase and rights that cannot lawfully be excluded, the Software is supplied as is, without a promise of fitness for every website or uninterrupted operation. To the extent permitted by applicable law, Fluri is not liable for indirect or consequential losses arising from use of the Software. Nothing in this license excludes or limits liability, guarantees, withdrawal rights, digital-content remedies or other protections that cannot lawfully be excluded or limited, including applicable consumer rights. This license does not impose an automatic waiver of refund or withdrawal rights.
|
|
53
|
+
|
|
54
|
+
11. Version of the agreement
|
|
55
|
+
|
|
56
|
+
Keep this license with your purchase records. Later changes to Fluri's published license do not retroactively narrow rights already granted under this version. Any additional services or separately agreed support have their own clearly disclosed terms. Questions and license requests: fluritheme@gmail.com.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Historical notice: this MIT license applies only to the legacy versions listed in LICENSING.md. It does not license the current commercial release.
|
|
2
|
+
|
|
3
|
+
MIT License
|
|
4
|
+
|
|
5
|
+
Copyright (c) 2026 Fluri contributors
|
|
6
|
+
|
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
9
|
+
in the Software without restriction, including without limitation the rights
|
|
10
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
12
|
+
furnished to do so, subject to the following conditions:
|
|
13
|
+
|
|
14
|
+
The above copyright notice and this permission notice shall be included in all
|
|
15
|
+
copies or substantial portions of the Software.
|
|
16
|
+
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
23
|
+
SOFTWARE.
|
package/LICENSING.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Fluri licensing
|
|
2
|
+
|
|
3
|
+
Current and future commercial releases use [Fluri Themes Commercial License 1.0](https://fluri.xyz/license/), included in `LICENSE`. A EUR 19 one-time Lifetime License covers all current and future Fluri themes on unlimited personal, business and client websites. Finished client projects may be delivered; selling or publicly redistributing the themes as a reusable library or template pack is prohibited. Private non-production evaluation is permitted before purchase. The full license controls.
|
|
4
|
+
|
|
5
|
+
| Package | Last MIT release | First commercial release |
|
|
6
|
+
| ------------------------- | ---------------- | ------------------------ |
|
|
7
|
+
| `@fluritheme/fluri` | 0.2.1 | 0.3.0 |
|
|
8
|
+
| `@fluritheme/fluri-react` | 0.2.1 | 0.3.0 |
|
|
9
|
+
| `@fluritheme/spider` | 0.2.1 | 0.3.0 |
|
|
10
|
+
| `@fluritheme/grinch` | 0.1.1 | 0.2.0 |
|
|
11
|
+
|
|
12
|
+
The listed MIT releases remain MIT. No historical package, release tag or license grant is overwritten or revoked. `LICENSE-MIT-LEGACY` records the old notice; it does not grant an MIT option for current commercial releases. Third-party dependencies and fonts retain their own licenses.
|
|
13
|
+
|
|
14
|
+
The public npm package is downloadable for inspection and private evaluation. A paid license is required before production deployment or client delivery. There is no runtime license check or telemetry. Contact fluritheme@gmail.com to arrange a license; an automated checkout and customer download portal are separate work and are not represented as complete.
|
|
15
|
+
|
|
16
|
+
## New packages and release checks
|
|
17
|
+
|
|
18
|
+
Copy `LICENSE`, `LICENSE-MIT-LEGACY`, `LICENSING.md` and `licensing.json` from the Fluri collection repository. Set package.json `license` to `SEE LICENSE IN LICENSE` and `homepage` to `https://fluri.xyz/`. Include the license and licensing notes in the archive. Copy scripts/check-licensing.mjs and invoke it from prepublishOnly so a new package cannot silently revert to MIT. Preserve third-party notices. New themes are commercial from version 0.1.0 unless the owner explicitly selects a free edition. Never infer an MIT license from an old package or scaffold.
|
|
19
|
+
|
|
20
|
+
## Hosted platform transition — 15 November 2026
|
|
21
|
+
|
|
22
|
+
The paragraphs above document the historical Commercial License 1.0 and published archives. They are not an invitation to buy the old €19 offer through the new preview. The hosted-platform source is a separate private project; its current checkout is simulation-only and grants no production access. New platform terms are under /legal/; legacy raw licences remain at /legacy/ and inside each archive. See docs/platform-launch-status.md before enabling any payments. Do not rewrite an old licence or assert that minification makes browser code unextractable.
|
package/README.md
CHANGED
|
@@ -1,3 +1,160 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Moon Explorer
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**A small step. A whole little world.**
|
|
4
|
+
|
|
5
|
+
A curious astronaut lands on your page, explores its edges, collects moon rocks, plants little flags and takes a pocket-sized rover for a drive. Drawn entirely in Canvas 2D, with articulated limbs, a reflective visor, soft dust, reactive eyes and properly unhurried lunar motion.
|
|
6
|
+
|
|
7
|
+
[Explore Fluri](https://fluri.xyz/) · [Licence](https://fluri.xyz/legal/license/) · [Installation help](https://fluri.xyz/docs/)
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
[Watch the motion preview](https://fluri.xyz/previews/moon-explorer.mp4)
|
|
12
|
+
|
|
13
|
+
## An expedition, not a looping sticker
|
|
14
|
+
|
|
15
|
+
- **A real arrival:** throttled descent, landing dust, touchdown, ladder and astronaut egress.
|
|
16
|
+
- **Low-gravity exploration:** walking, articulated steps, footprints, long arcs and soft landing reactions between actual page edges.
|
|
17
|
+
- **Little discoveries:** crouch, geological hammer, sample collection, celebration and persistent mission counters.
|
|
18
|
+
- **A flag of your own:** animated planting, tiny lunar crescent and bounded persistent flags.
|
|
19
|
+
- **A proper rover:** boarding, moving suspension, spinning wheels, dish antenna, driving dust and dismounting.
|
|
20
|
+
- **Personality:** curious eyes, blinking, waves, telescope observations, a moon nap and shooting stars.
|
|
21
|
+
- **A considerate guest:** no click interception, no CSS import, no root restyling, reduced-motion support, bounded particles, offscreen pausing and cleanup.
|
|
22
|
+
- **Typed control:** queue missions, target a surface, receive events, update options and inspect expedition telemetry.
|
|
23
|
+
|
|
24
|
+

|
|
25
|
+
|
|
26
|
+
## Install
|
|
27
|
+
|
|
28
|
+
```sh
|
|
29
|
+
npm install @fluritheme/moon-explorer
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
import { createMoonExplorer } from "@fluritheme/moon-explorer";
|
|
34
|
+
|
|
35
|
+
const moon = createMoonExplorer({
|
|
36
|
+
surfaces: "[data-moon-surface]",
|
|
37
|
+
autoExplore: true,
|
|
38
|
+
rover: true,
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
// In your HTML: <article data-moon-surface>...</article>
|
|
42
|
+
moon.collect();
|
|
43
|
+
moon.plantFlag();
|
|
44
|
+
moon.ride();
|
|
45
|
+
|
|
46
|
+
// Always clean up when the page or component unmounts.
|
|
47
|
+
moon.destroy();
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Call the factory after your DOM has mounted. The default root is the full document; pass an element to keep the expedition inside a particular section. Importing the package in a server-rendered app does not access the DOM. A factory call without a browser returns an idle controller; create a fresh controller on the client to start the expedition.
|
|
51
|
+
|
|
52
|
+
## React
|
|
53
|
+
|
|
54
|
+
```tsx
|
|
55
|
+
import { useEffect, useRef } from "react";
|
|
56
|
+
import { createMoonExplorer } from "@fluritheme/moon-explorer";
|
|
57
|
+
|
|
58
|
+
export function MoonSection() {
|
|
59
|
+
const root = useRef<HTMLElement>(null);
|
|
60
|
+
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
if (!root.current) return;
|
|
63
|
+
const moon = createMoonExplorer({
|
|
64
|
+
root: root.current,
|
|
65
|
+
surfaces: "[data-moon-surface]",
|
|
66
|
+
accent: "#ef9459",
|
|
67
|
+
});
|
|
68
|
+
return () => moon.destroy();
|
|
69
|
+
}, []);
|
|
70
|
+
|
|
71
|
+
return (
|
|
72
|
+
<section ref={root}>
|
|
73
|
+
<article data-moon-surface>Your content still works.</article>
|
|
74
|
+
</section>
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The same lifecycle works in Vue `onMounted`/`onBeforeUnmount`, Svelte `onMount` or a normal script. No framework adapter is required.
|
|
80
|
+
|
|
81
|
+
## Configuration
|
|
82
|
+
|
|
83
|
+
| Option | Default | Purpose |
|
|
84
|
+
| --------------- | ----------------------------------------------------- | -------------------------------------------------------------------------------- |
|
|
85
|
+
| `root` | Document body | Expedition territory. A scoped root is clipped without modifying its styles. |
|
|
86
|
+
| `surfaces` | `[data-moon-surface], button, h1, h2, article, .card` | Upper edges to measure as landing and walking surfaces. |
|
|
87
|
+
| `size` | `1` | Character and equipment scale, clamped to `0.55–1.8`. |
|
|
88
|
+
| `pace` | `1` | Mission and movement speed, `0.3–2.5`. |
|
|
89
|
+
| `autoExplore` | `true` | Autonomously choose missions between idle moments. |
|
|
90
|
+
| `interactive` | `true` | Look at nearby pointers and wave when clicked nearby. Page events remain usable. |
|
|
91
|
+
| `rover` | `true` | Include the rover and enable driving missions. |
|
|
92
|
+
| `lander` | `true` | Draw the lander. Landing remains part of the arrival sequence. |
|
|
93
|
+
| `shootingStars` | `true` | Occasional decorative stars while the expedition runs. |
|
|
94
|
+
| `maxFlags` | `5` | Maximum retained flags, `0–12`. Oldest flags retire first. |
|
|
95
|
+
| `accent` | `#ef9459` | Hex colour for suit, rover, lander and flags. |
|
|
96
|
+
| `seed` | `42` | Seeded mission/layout variation. |
|
|
97
|
+
| `maxFPS` | `40` | Maximum drawing rate, `12–60`. |
|
|
98
|
+
| `maxDPR` | `1.5` | Rendering density cap, `1–2.5`. |
|
|
99
|
+
| `zIndex` | `30` | Overlay stacking level. |
|
|
100
|
+
| `motion` | `'respect'` | Honour reduced motion; `'static'` always shows a still pose. |
|
|
101
|
+
|
|
102
|
+
`surfaces`, `root` and `seed` are construction options. `update()` accepts the other options. Wide, stable surfaces look best: narrow or hidden elements are skipped. Fixed-position elements are excluded because they do not share the document’s coordinate system. Use explicit surface markers when automatic detection finds too many irrelevant objects.
|
|
103
|
+
|
|
104
|
+
## Control the expedition
|
|
105
|
+
|
|
106
|
+
```ts
|
|
107
|
+
moon.explore("#next-card"); // Jump to a specific measured surface.
|
|
108
|
+
moon.collect(); // Survey a rock and collect a sample.
|
|
109
|
+
moon.plantFlag(); // Plant a flag and celebrate.
|
|
110
|
+
moon.ride(); // Board, drive and dismount the rover.
|
|
111
|
+
moon.observe(); // Raise a telescope and watch the sky.
|
|
112
|
+
moon.jump(); // A little low-gravity leap.
|
|
113
|
+
moon.wave();
|
|
114
|
+
moon.rest();
|
|
115
|
+
moon.shootingStar(); // Decorative effect, not a queued mission.
|
|
116
|
+
moon.land("#landing-pad"); // Clear the queue and repeat arrival.
|
|
117
|
+
|
|
118
|
+
moon.update({ pace: 1.3, autoExplore: false });
|
|
119
|
+
moon.pause();
|
|
120
|
+
moon.resume();
|
|
121
|
+
moon.refresh(); // Re-measure after an unusual layout change.
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Mission methods return `true` when queued and `false` when unavailable, the queue is full, the target selector is invalid, reduced motion is enabled or the controller is destroyed. Up to eight missions can wait. They run after the current mission, so a collecting astronaut finishes its sample before taking a rover ride. `land()` restarts the arrival instead. A star is drawn only while animation is permitted.
|
|
125
|
+
|
|
126
|
+
```ts
|
|
127
|
+
const unsubscribe = moon.on("sample", ({ samples, surface }) => {
|
|
128
|
+
console.log(`Sample ${samples} collected at ${surface}`);
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
console.log(moon.getState());
|
|
132
|
+
unsubscribe();
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Events: `phase`, `mission`, `sample`, `flag`, `landed`. The frozen snapshot includes lifecycle state, animation phase, current mission, document-space position, surface ID, sample count, flags, walking distance, rover distance, completed missions, elapsed simulation time and reduced-motion state. Event handlers are isolated so a thrown callback cannot stop the renderer.
|
|
136
|
+
|
|
137
|
+
## Motion and performance
|
|
138
|
+
|
|
139
|
+
The canvas is a transparent, pointer-inert overlay. The expedition is measured in **document CSS coordinates**; scrolling only changes the camera. Resize and DOM changes trigger bounded re-measurement. The runtime pauses when the tab is hidden or a scoped territory leaves the viewport. Reduced motion shows a still character and equipment without a landing or autonomous missions; no forced-motion bypass is provided.
|
|
140
|
+
|
|
141
|
+
Dust, footprints, rocks, stars, flags and the mission queue all have caps. Rendering density and frame rate are bounded. This is a decorative animation, not a physics simulation for critical use. Test your own layout, performance budget, sticky content and Content Security Policy before production use.
|
|
142
|
+
|
|
143
|
+

|
|
144
|
+
|
|
145
|
+
## Privacy and licensing
|
|
146
|
+
|
|
147
|
+
This standalone npm runtime makes **no network requests**, sets no cookies, collects no visitor information, performs no online licence check and adds no watermark. Fluri’s separately hosted installer and optional website analytics have their own configuration and disclosures; installing this package alone does not enable them.
|
|
148
|
+
|
|
149
|
+
Moon Explorer is supplied under the **Fluri Themes Commercial License**, included in `LICENSE`. Downloading the public package permits inspection and private, non-production evaluation under those terms; production and client use require an applicable licence. The current hosted platform offer and existing archive licences are distinct. Read the supplied licence and [current Fluri terms](https://fluri.xyz/legal/) rather than treating an npm download as a purchase. Historical MIT packages retain their original rights; Moon Explorer has not had an MIT release.
|
|
150
|
+
|
|
151
|
+
## Development
|
|
152
|
+
|
|
153
|
+
```sh
|
|
154
|
+
pnpm install --frozen-lockfile
|
|
155
|
+
pnpm check
|
|
156
|
+
pnpm dev
|
|
157
|
+
pnpm previews
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
The preview generator records the actual running browser animation, then exports GIF, MP4 and desktop/mobile screenshots. Tests cover mission progression, single-count sample collection, limits, scroll stability, surface changes, reduced motion, host controls, disposal and browser errors.
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { MoonExplorerOptions, MoonExplorerController } from "./types.js";
|
|
2
|
+
export type * from "./types.js";
|
|
3
|
+
/** Create a self-contained lunar expedition. Importing the module is SSR-safe. */
|
|
4
|
+
export declare function createMoonExplorer(input?: MoonExplorerOptions): MoonExplorerController;
|