openrtc 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.
Files changed (122) hide show
  1. package/README.md +106 -0
  2. package/dist/OpenRTC.d.ts +71 -0
  3. package/dist/OpenRTC.js +130 -0
  4. package/dist/api/MediaTransport.d.ts +7 -0
  5. package/dist/api/MediaTransport.js +262 -0
  6. package/dist/api/PlutoPeerConnection.d.ts +50 -0
  7. package/dist/api/PlutoPeerConnection.js +434 -0
  8. package/dist/api/PlutoWebSocket.d.ts +24 -0
  9. package/dist/api/PlutoWebSocket.js +113 -0
  10. package/dist/api/PlutoWebTransport.d.ts +29 -0
  11. package/dist/api/PlutoWebTransport.js +105 -0
  12. package/dist/auth/host.d.ts +73 -0
  13. package/dist/auth/host.js +513 -0
  14. package/dist/auth/index.d.ts +1 -0
  15. package/dist/auth/index.js +1 -0
  16. package/dist/auth/internal.d.ts +1 -0
  17. package/dist/auth/internal.js +1 -0
  18. package/dist/compat/index.d.ts +20 -0
  19. package/dist/compat/index.js +20 -0
  20. package/dist/core/Client.d.ts +352 -0
  21. package/dist/core/Client.js +3689 -0
  22. package/dist/core/Connection.d.ts +67 -0
  23. package/dist/core/Connection.js +404 -0
  24. package/dist/core/IEngineBridge.d.ts +18 -0
  25. package/dist/core/IEngineBridge.js +1 -0
  26. package/dist/core/ISignalingTransport.d.ts +13 -0
  27. package/dist/core/ISignalingTransport.js +1 -0
  28. package/dist/core/PeerLifecycleManager.d.ts +43 -0
  29. package/dist/core/PeerLifecycleManager.js +330 -0
  30. package/dist/core/PeerProjectionStore.d.ts +43 -0
  31. package/dist/core/PeerProjectionStore.js +327 -0
  32. package/dist/core/PlutoRTC.d.ts +13 -0
  33. package/dist/core/PlutoRTC.js +26 -0
  34. package/dist/core/Room.d.ts +47 -0
  35. package/dist/core/Room.js +376 -0
  36. package/dist/core/Signaling.d.ts +39 -0
  37. package/dist/core/Signaling.js +147 -0
  38. package/dist/core/bridges/BridgeCodecs.d.ts +19 -0
  39. package/dist/core/bridges/BridgeCodecs.js +317 -0
  40. package/dist/core/bridges/BrowserFirestoreRooms.d.ts +36 -0
  41. package/dist/core/bridges/BrowserFirestoreRooms.js +169 -0
  42. package/dist/core/bridges/BrowserFirestoreSignaling.d.ts +111 -0
  43. package/dist/core/bridges/BrowserFirestoreSignaling.js +1010 -0
  44. package/dist/core/bridges/NativeIpcBridge.d.ts +156 -0
  45. package/dist/core/bridges/NativeIpcBridge.js +1472 -0
  46. package/dist/core/bridges/RtdbPresence.d.ts +122 -0
  47. package/dist/core/bridges/RtdbPresence.js +201 -0
  48. package/dist/core/bridges/TauriBridge.d.ts +8 -0
  49. package/dist/core/bridges/TauriBridge.js +7 -0
  50. package/dist/core/bridges/WasmBridge.d.ts +233 -0
  51. package/dist/core/bridges/WasmBridge.js +1811 -0
  52. package/dist/core/config.d.ts +31 -0
  53. package/dist/core/config.js +138 -0
  54. package/dist/core/transports/ITransport.d.ts +12 -0
  55. package/dist/core/transports/ITransport.js +1 -0
  56. package/dist/core/transports/LocalDaemonBridge.d.ts +41 -0
  57. package/dist/core/transports/LocalDaemonBridge.js +227 -0
  58. package/dist/core/transports/TauriSignaling.d.ts +28 -0
  59. package/dist/core/transports/TauriSignaling.js +373 -0
  60. package/dist/core/transports/TransportFactory.d.ts +9 -0
  61. package/dist/core/transports/TransportFactory.js +59 -0
  62. package/dist/core/transports/WasmSignaling.d.ts +78 -0
  63. package/dist/core/transports/WasmSignaling.js +522 -0
  64. package/dist/core/transports/WebRTCTransport.d.ts +23 -0
  65. package/dist/core/transports/WebRTCTransport.js +132 -0
  66. package/dist/core/trust.d.ts +23 -0
  67. package/dist/core/trust.js +99 -0
  68. package/dist/core/types.d.ts +559 -0
  69. package/dist/core/types.js +19 -0
  70. package/dist/index.d.ts +3 -0
  71. package/dist/index.js +3 -0
  72. package/dist/moq/MoQMediaTransport.d.ts +6 -0
  73. package/dist/moq/MoQMediaTransport.js +106 -0
  74. package/dist/moq/MoQPublisher.d.ts +22 -0
  75. package/dist/moq/MoQPublisher.js +179 -0
  76. package/dist/moq/MoQSession.d.ts +35 -0
  77. package/dist/moq/MoQSession.js +166 -0
  78. package/dist/moq/MoQSubscriber.d.ts +19 -0
  79. package/dist/moq/MoQSubscriber.js +235 -0
  80. package/dist/moq/common.d.ts +47 -0
  81. package/dist/moq/common.js +304 -0
  82. package/dist/moq/messages.d.ts +105 -0
  83. package/dist/moq/messages.js +367 -0
  84. package/dist/presets/plutoHosted.d.ts +13 -0
  85. package/dist/presets/plutoHosted.js +18 -0
  86. package/dist/runtime/DelegatingRuntimeAdapter.d.ts +68 -0
  87. package/dist/runtime/DelegatingRuntimeAdapter.js +250 -0
  88. package/dist/runtime/IpcRuntimeAdapter.d.ts +9 -0
  89. package/dist/runtime/IpcRuntimeAdapter.js +13 -0
  90. package/dist/runtime/RuntimeClient.d.ts +257 -0
  91. package/dist/runtime/RuntimeClient.js +1484 -0
  92. package/dist/runtime/TauriRuntimeAdapter.d.ts +1 -0
  93. package/dist/runtime/TauriRuntimeAdapter.js +1 -0
  94. package/dist/runtime/WasmRuntimeAdapter.d.ts +6 -0
  95. package/dist/runtime/WasmRuntimeAdapter.js +11 -0
  96. package/dist/runtime/factories.d.ts +24 -0
  97. package/dist/runtime/factories.js +66 -0
  98. package/dist/runtime/index.d.ts +6 -0
  99. package/dist/runtime/index.js +5 -0
  100. package/dist/runtime/ipc.d.ts +8 -0
  101. package/dist/runtime/ipc.js +65 -0
  102. package/dist/runtime/ipcContract.d.ts +46 -0
  103. package/dist/runtime/ipcContract.js +1 -0
  104. package/dist/runtime/tauri.d.ts +16 -0
  105. package/dist/runtime/tauri.js +22 -0
  106. package/dist/runtime/types.d.ts +110 -0
  107. package/dist/runtime/types.js +1 -0
  108. package/dist/transports/TauriTransport.d.ts +17 -0
  109. package/dist/transports/TauriTransport.js +49 -0
  110. package/dist/transports/WebTransport.d.ts +23 -0
  111. package/dist/transports/WebTransport.js +71 -0
  112. package/dist/utils/debug.d.ts +4 -0
  113. package/dist/utils/debug.js +33 -0
  114. package/dist/utils/runtime.d.ts +1 -0
  115. package/dist/utils/runtime.js +10 -0
  116. package/package.json +97 -0
  117. package/wasm/README.md +64 -0
  118. package/wasm/openrtc.d.ts +284 -0
  119. package/wasm/openrtc.js +2132 -0
  120. package/wasm/openrtc_bg.wasm +0 -0
  121. package/wasm/openrtc_bg.wasm.d.ts +110 -0
  122. package/wasm/package.json +16 -0
package/package.json ADDED
@@ -0,0 +1,97 @@
1
+ {
2
+ "name": "openrtc",
3
+ "version": "0.1.0",
4
+ "private": false,
5
+ "type": "module",
6
+ "sideEffects": false,
7
+ "description": "A Rust-first realtime runtime for browser and native apps, exposed through TypeScript and WASM.",
8
+ "keywords": [
9
+ "realtime",
10
+ "p2p",
11
+ "networking",
12
+ "iroh",
13
+ "wasm",
14
+ "tauri",
15
+ "runtime"
16
+ ],
17
+ "author": "Bryant Hargreaves",
18
+ "license": "MIT",
19
+ "homepage": "https://openrtc.app",
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/bluestarburst/Plutonium.git"
23
+ },
24
+ "main": "dist/index.js",
25
+ "types": "dist/index.d.ts",
26
+ "files": [
27
+ "dist/**/*.js",
28
+ "dist/**/*.d.ts",
29
+ "README.md",
30
+ "wasm/openrtc.js",
31
+ "wasm/openrtc.d.ts",
32
+ "wasm/openrtc_bg.wasm",
33
+ "wasm/openrtc_bg.wasm.d.ts",
34
+ "wasm/package.json",
35
+ "wasm/README.md"
36
+ ],
37
+ "exports": {
38
+ ".": {
39
+ "types": "./dist/index.d.ts",
40
+ "import": "./dist/index.js"
41
+ },
42
+ "./runtime": {
43
+ "types": "./dist/runtime/index.d.ts",
44
+ "import": "./dist/runtime/index.js"
45
+ },
46
+ "./runtime/wasm": {
47
+ "types": "./dist/runtime/WasmRuntimeAdapter.d.ts",
48
+ "import": "./dist/runtime/WasmRuntimeAdapter.js"
49
+ },
50
+ "./runtime/tauri": {
51
+ "types": "./dist/runtime/tauri.d.ts",
52
+ "import": "./dist/runtime/tauri.js"
53
+ },
54
+ "./auth": {
55
+ "types": "./dist/auth/index.d.ts",
56
+ "import": "./dist/auth/index.js"
57
+ },
58
+ "./auth/internal": {
59
+ "types": "./dist/auth/internal.d.ts",
60
+ "import": "./dist/auth/internal.js"
61
+ },
62
+ "./package.json": "./package.json"
63
+ },
64
+ "scripts": {
65
+ "build": "tsc",
66
+ "build:wasm": "cd ../rust && wasm-pack build --target web --out-dir ../ts/wasm && rm -rf ../ts/wasm/.gitignore",
67
+ "test": "pnpm run test:deterministic",
68
+ "test:deterministic": "OPENRTC_LIVE_TESTS=0 vitest run tests/unit tests/contract",
69
+ "test:live": "pnpm run build:wasm && pnpm run build && OPENRTC_LIVE_TESTS=1 vitest run tests/live",
70
+ "test:live:emulator": "OPENRTC_LIVE_TESTS=1 FIREBASE_AUTH_EMULATOR_HOST=127.0.0.1:9099 vitest run tests/live",
71
+ "test:watch": "vitest",
72
+ "coverage": "vitest run --coverage",
73
+ "prepublishOnly": "npm run build:wasm && npm run build"
74
+ },
75
+ "dependencies": {
76
+ "firebase": "^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0",
77
+ "tweetnacl": "^1.0.3"
78
+ },
79
+ "peerDependencies": {
80
+ "firebase": "^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0"
81
+ },
82
+ "devDependencies": {
83
+ "@types/node": "^20.0.0",
84
+ "@vitest/coverage-v8": "^4.0.18",
85
+ "happy-dom": "^20.5.0",
86
+ "playwright": "^1.58.2",
87
+ "typescript": "^5.0.0",
88
+ "vitest": "^4.0.18"
89
+ },
90
+ "directories": {
91
+ "example": "examples",
92
+ "test": "tests"
93
+ },
94
+ "bugs": {
95
+ "url": "https://github.com/bluestarburst/Plutonium/issues"
96
+ }
97
+ }
package/wasm/README.md ADDED
@@ -0,0 +1,64 @@
1
+ # Pluto RTC Rust Core
2
+
3
+ The Rust crate is the realtime engine behind Pluto RTC.
4
+
5
+ It powers:
6
+ - the native runtime used by Tauri and other native hosts
7
+ - the WASM runtime loaded by the npm package in browsers
8
+
9
+ ## Core Responsibilities
10
+ - app-scoped device discovery
11
+ - presence publishing and cleanup
12
+ - signaling messages and sessions
13
+ - room membership
14
+ - peer identity resolution
15
+ - iroh endpoint lifecycle and connection management
16
+ - shared runtime records used by both native and WASM hosts
17
+
18
+ ## Native vs WASM
19
+
20
+ ### Native
21
+ Used for:
22
+ - Tauri desktop/mobile-style hosts
23
+ - headless or CLI-style runners
24
+ - advanced endpoint and router integration
25
+
26
+ Native-only features include:
27
+ - endpoint adoption/export
28
+ - custom router / no-internal-router mode
29
+ - native auth relay helpers
30
+ - protocol registry and plugin registration
31
+
32
+ ### WASM
33
+ The same runtime logic compiles to WebAssembly for browser hosts.
34
+
35
+ The npm package loads that WASM build and forwards auth/runtime configuration into it. The browser path should behave like the native path at the runtime-contract level.
36
+
37
+ ## Recommended Native Shape
38
+ - use `ClientBuilder` / injected runtime construction
39
+ - keep host-specific behavior outside the core where possible
40
+ - use the runtime manager and protocol registry for advanced native composition
41
+
42
+ ## Peer Sessions and Custom Protocols
43
+
44
+ The Rust core owns one peer-session view per `deviceId`. Host layers should
45
+ consume connected peer-session snapshots rather than reason about transport
46
+ records directly.
47
+
48
+ Protocol authors have two supported extension paths:
49
+
50
+ 1. **Session-adjacent stream composition**
51
+ - wait for a connected peer session
52
+ - open `open_bi` / `open_uni` streams
53
+ - define framing and message semantics externally
54
+
55
+ 2. **ALPN protocol plugins**
56
+ - register protocol plugins through `RuntimeManager` / `ProtocolRegistry`
57
+ - use `SessionAdjacent` plugins for runtime-ready hooks without ALPN routing
58
+ - use `Alpn` plugins when the native runtime should register a dedicated ALPN
59
+
60
+ WASM/browser consumers should prefer the first model. The second is a
61
+ Rust-first advanced capability.
62
+
63
+ ## Important Rule
64
+ Rust owns discovery, signaling, presence, lifecycle, and peer identity. TypeScript should wrap those contracts, not duplicate them.
@@ -0,0 +1,284 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * The `ReadableStreamType` enum.
5
+ *
6
+ * *This API requires the following crate features to be activated: `ReadableStreamType`*
7
+ */
8
+
9
+ type ReadableStreamType = "bytes";
10
+
11
+ export class BiStream {
12
+ private constructor();
13
+ free(): void;
14
+ [Symbol.dispose](): void;
15
+ readonly endpoint_id: string;
16
+ readonly recv: ReadableStream;
17
+ readonly send: WritableStream;
18
+ }
19
+
20
+ export class IntoUnderlyingByteSource {
21
+ private constructor();
22
+ free(): void;
23
+ [Symbol.dispose](): void;
24
+ cancel(): void;
25
+ pull(controller: ReadableByteStreamController): Promise<any>;
26
+ start(controller: ReadableByteStreamController): void;
27
+ readonly autoAllocateChunkSize: number;
28
+ readonly type: ReadableStreamType;
29
+ }
30
+
31
+ export class IntoUnderlyingSink {
32
+ private constructor();
33
+ free(): void;
34
+ [Symbol.dispose](): void;
35
+ abort(reason: any): Promise<any>;
36
+ close(): Promise<any>;
37
+ write(chunk: any): Promise<any>;
38
+ }
39
+
40
+ export class IntoUnderlyingSource {
41
+ private constructor();
42
+ free(): void;
43
+ [Symbol.dispose](): void;
44
+ cancel(): void;
45
+ pull(controller: ReadableStreamDefaultController): Promise<any>;
46
+ }
47
+
48
+ export class WasmClient {
49
+ free(): void;
50
+ [Symbol.dispose](): void;
51
+ add_peer_scope(id: string, scope: string): Promise<any>;
52
+ /**
53
+ * Clear all short-lived session tokens and admission state.
54
+ */
55
+ clear_session_tokens(): void;
56
+ connect(ticket: string): Promise<ReadableStream>;
57
+ connect_device(device_id: string | null | undefined, endpoint_ticket: string): Promise<any>;
58
+ connection_state(connection_id: string): Promise<any>;
59
+ connection_states(): Promise<any>;
60
+ create_room(room_id: string, user_id: string, ticket_str: string, my_node_id: string, tag: string, max_members?: number | null): Promise<boolean>;
61
+ create_session(session_json: string): Promise<void>;
62
+ delete_device(user_id: string, device_id: string): Promise<void>;
63
+ devices_with_status(user_id: string): Promise<any>;
64
+ disconnect(endpoint_id: string): Promise<void>;
65
+ endpoint_id_from_ticket(ticket: string): string;
66
+ endpoint_ticket(): Promise<string>;
67
+ /**
68
+ * Build a compound ticket with an embedded session token.
69
+ * Registers the token on the canonical Rust client and returns the compound ticket string.
70
+ * `scope`: logical label (e.g. "share"). `max_connections`: 0 = unlimited.
71
+ */
72
+ endpoint_ticket_with_token(grant_scope: string, max_connections: number): Promise<string>;
73
+ force_reconnect_snapshot(): void;
74
+ get_members(room_id: string, my_node_id: string, tag: string): Promise<string>;
75
+ heartbeat_tick(room_id: string, member_id: string, tag: string): Promise<void>;
76
+ incoming_streams(): Promise<ReadableStream>;
77
+ init_iroh(secret_key?: Uint8Array | null): Promise<string>;
78
+ iroh_secret_key(): Promise<Uint8Array>;
79
+ is_connected(endpoint_id: string): Promise<boolean>;
80
+ join_room(room_id: string, user_id: string, ticket_str: string, my_node_id: string, tag: string): Promise<void>;
81
+ leave_room(room_id: string, my_node_id: string, tag: string): Promise<void>;
82
+ list_managed_connections(): Promise<any>;
83
+ constructor(project_id: string, tag: string);
84
+ static newWithAppTag(project_id: string, app_tag: string): WasmClient;
85
+ node_addr(): Promise<string>;
86
+ open_bi(endpoint_id: string): Promise<BiStream>;
87
+ open_peer_bi(id: string, timeout_ms?: number | null): Promise<BiStream>;
88
+ open_peer_uni(id: string, timeout_ms?: number | null): Promise<WritableStream>;
89
+ open_uni(endpoint_id: string): Promise<WritableStream>;
90
+ peer_scopes(id: string): Promise<any>;
91
+ peer_session(id: string): Promise<any>;
92
+ peer_sessions(): Promise<any>;
93
+ peer_snapshot(id: string): Promise<any>;
94
+ peer_snapshots(): Promise<any>;
95
+ /**
96
+ * Present a session token to the remote host over the SDK-owned
97
+ * native main stream before application traffic starts.
98
+ * Returns the approved scope string once the host acknowledges admission.
99
+ */
100
+ present_session_token_to_host(endpoint_id: string, token: string): Promise<string>;
101
+ /**
102
+ * Register a session token on the canonical Rust client.
103
+ */
104
+ register_session_token(token: string, grant_scope: string, max_connections: number): void;
105
+ release_peer_scope(id: string, scope?: string | null): Promise<any>;
106
+ report_managed_connection_settled(connection_id: string, settled: boolean, device_id?: string | null): Promise<any>;
107
+ resolve_peer_connection_records(id: string): Promise<any>;
108
+ /**
109
+ * Revoke a single token by value.
110
+ */
111
+ revoke_session_token(token: string): void;
112
+ /**
113
+ * Revoke all tokens that match the given scope and disconnect affected peers.
114
+ */
115
+ revoke_tokens_by_scope(grant_scope: string): Promise<any>;
116
+ same_peer(left: string, right: string): Promise<boolean>;
117
+ search_devices(user_id: string): Promise<any>;
118
+ send_message(target_id: string, payload: string, state?: string | null, reply_payload?: string | null): Promise<string>;
119
+ set_auth_token(token?: string | null): void;
120
+ set_auto_connect_excluded(device_id: string, excluded: boolean): void;
121
+ set_offline(user_id: string): Promise<void>;
122
+ start_presence_loop(user_id: string, device_name: string, ticket: string, metadata?: string | null): void;
123
+ stop_auth_scoped_activity(): void;
124
+ stop_auto_connect(): void;
125
+ stop_presence_loop(): void;
126
+ update_device(user_id: string, device_id: string, device_name?: string | null, capabilities?: any | null, metadata?: string | null): Promise<void>;
127
+ update_presence(user_id: string, device_name: string, ticket: string, metadata?: string | null, ttl_ms?: bigint | null): Promise<void>;
128
+ update_session(session_id: string, update_json: string): Promise<void>;
129
+ /**
130
+ * Validate (and consume one use of) a session token.
131
+ * Returns the scope string on success, throws on failure.
132
+ * If the registry is empty, always succeeds (backward-compat gate).
133
+ */
134
+ validate_session_token(token: string): string;
135
+ /**
136
+ * Validate and record token admission for a specific connection.
137
+ */
138
+ validate_session_token_for_connection(token: string, connection_id: string): Promise<string>;
139
+ wait_for_settled_peer(id: string, timeout_ms?: number | null): Promise<any>;
140
+ }
141
+
142
+ export class WasmConnection {
143
+ free(): void;
144
+ [Symbol.dispose](): void;
145
+ create_data_channel(label: string): RTCDataChannel;
146
+ constructor();
147
+ }
148
+
149
+ export function start(): void;
150
+
151
+ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
152
+
153
+ export interface InitOutput {
154
+ readonly memory: WebAssembly.Memory;
155
+ readonly __wbg_bistream_free: (a: number, b: number) => void;
156
+ readonly bistream_recv: (a: number) => any;
157
+ readonly bistream_send: (a: number) => any;
158
+ readonly bistream_endpoint_id: (a: number) => [number, number];
159
+ readonly __wbg_wasmclient_free: (a: number, b: number) => void;
160
+ readonly wasmclient_new: (a: number, b: number, c: number, d: number) => [number, number, number];
161
+ readonly wasmclient_newWithAppTag: (a: number, b: number, c: number, d: number) => [number, number, number];
162
+ readonly wasmclient_set_auth_token: (a: number, b: number, c: number) => void;
163
+ readonly wasmclient_init_iroh: (a: number, b: number, c: number) => any;
164
+ readonly wasmclient_iroh_secret_key: (a: number) => any;
165
+ readonly wasmclient_node_addr: (a: number) => any;
166
+ readonly wasmclient_endpoint_ticket: (a: number) => any;
167
+ readonly wasmclient_endpoint_ticket_with_token: (a: number, b: number, c: number, d: number) => any;
168
+ readonly wasmclient_register_session_token: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
169
+ readonly wasmclient_validate_session_token: (a: number, b: number, c: number) => [number, number, number, number];
170
+ readonly wasmclient_validate_session_token_for_connection: (a: number, b: number, c: number, d: number, e: number) => any;
171
+ readonly wasmclient_present_session_token_to_host: (a: number, b: number, c: number, d: number, e: number) => any;
172
+ readonly wasmclient_revoke_session_token: (a: number, b: number, c: number) => void;
173
+ readonly wasmclient_revoke_tokens_by_scope: (a: number, b: number, c: number) => any;
174
+ readonly wasmclient_clear_session_tokens: (a: number) => void;
175
+ readonly wasmclient_endpoint_id_from_ticket: (a: number, b: number, c: number) => [number, number, number, number];
176
+ readonly wasmclient_connect: (a: number, b: number, c: number) => any;
177
+ readonly wasmclient_disconnect: (a: number, b: number, c: number) => any;
178
+ readonly wasmclient_is_connected: (a: number, b: number, c: number) => any;
179
+ readonly wasmclient_add_peer_scope: (a: number, b: number, c: number, d: number, e: number) => any;
180
+ readonly wasmclient_release_peer_scope: (a: number, b: number, c: number, d: number, e: number) => any;
181
+ readonly wasmclient_peer_scopes: (a: number, b: number, c: number) => any;
182
+ readonly wasmclient_same_peer: (a: number, b: number, c: number, d: number, e: number) => any;
183
+ readonly wasmclient_peer_snapshot: (a: number, b: number, c: number) => any;
184
+ readonly wasmclient_peer_snapshots: (a: number) => any;
185
+ readonly wasmclient_peer_session: (a: number, b: number, c: number) => any;
186
+ readonly wasmclient_peer_sessions: (a: number) => any;
187
+ readonly wasmclient_connection_state: (a: number, b: number, c: number) => any;
188
+ readonly wasmclient_connection_states: (a: number) => any;
189
+ readonly wasmclient_wait_for_settled_peer: (a: number, b: number, c: number, d: number) => any;
190
+ readonly wasmclient_resolve_peer_connection_records: (a: number, b: number, c: number) => any;
191
+ readonly wasmclient_list_managed_connections: (a: number) => any;
192
+ readonly wasmclient_report_managed_connection_settled: (a: number, b: number, c: number, d: number, e: number, f: number) => any;
193
+ readonly wasmclient_open_bi: (a: number, b: number, c: number) => any;
194
+ readonly wasmclient_open_peer_bi: (a: number, b: number, c: number, d: number) => any;
195
+ readonly wasmclient_open_uni: (a: number, b: number, c: number) => any;
196
+ readonly wasmclient_open_peer_uni: (a: number, b: number, c: number, d: number) => any;
197
+ readonly wasmclient_incoming_streams: (a: number) => any;
198
+ readonly wasmclient_update_presence: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: bigint) => any;
199
+ readonly wasmclient_send_message: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => any;
200
+ readonly wasmclient_set_offline: (a: number, b: number, c: number) => any;
201
+ readonly wasmclient_update_device: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => any;
202
+ readonly wasmclient_delete_device: (a: number, b: number, c: number, d: number, e: number) => any;
203
+ readonly wasmclient_force_reconnect_snapshot: (a: number) => void;
204
+ readonly wasmclient_stop_presence_loop: (a: number) => void;
205
+ readonly wasmclient_stop_auto_connect: (a: number) => void;
206
+ readonly wasmclient_set_auto_connect_excluded: (a: number, b: number, c: number, d: number) => void;
207
+ readonly wasmclient_stop_auth_scoped_activity: (a: number) => void;
208
+ readonly wasmclient_start_presence_loop: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => void;
209
+ readonly wasmclient_search_devices: (a: number, b: number, c: number) => any;
210
+ readonly wasmclient_devices_with_status: (a: number, b: number, c: number) => any;
211
+ readonly wasmclient_connect_device: (a: number, b: number, c: number, d: number, e: number) => any;
212
+ readonly wasmclient_create_session: (a: number, b: number, c: number) => any;
213
+ readonly wasmclient_update_session: (a: number, b: number, c: number, d: number, e: number) => any;
214
+ readonly wasmclient_create_room: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => any;
215
+ readonly wasmclient_join_room: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => any;
216
+ readonly wasmclient_get_members: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => any;
217
+ readonly wasmclient_leave_room: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => any;
218
+ readonly wasmclient_heartbeat_tick: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => any;
219
+ readonly start: () => void;
220
+ readonly __wbg_wasmconnection_free: (a: number, b: number) => void;
221
+ readonly wasmconnection_new: () => [number, number, number];
222
+ readonly wasmconnection_create_data_channel: (a: number, b: number, c: number) => any;
223
+ readonly __wbg_intounderlyingsource_free: (a: number, b: number) => void;
224
+ readonly intounderlyingsource_pull: (a: number, b: any) => any;
225
+ readonly intounderlyingsource_cancel: (a: number) => void;
226
+ readonly __wbg_intounderlyingbytesource_free: (a: number, b: number) => void;
227
+ readonly intounderlyingbytesource_type: (a: number) => number;
228
+ readonly intounderlyingbytesource_autoAllocateChunkSize: (a: number) => number;
229
+ readonly intounderlyingbytesource_start: (a: number, b: any) => void;
230
+ readonly intounderlyingbytesource_pull: (a: number, b: any) => any;
231
+ readonly intounderlyingbytesource_cancel: (a: number) => void;
232
+ readonly __wbg_intounderlyingsink_free: (a: number, b: number) => void;
233
+ readonly intounderlyingsink_write: (a: number, b: any) => any;
234
+ readonly intounderlyingsink_close: (a: number) => any;
235
+ readonly intounderlyingsink_abort: (a: number, b: any) => any;
236
+ readonly ring_core_0_17_14__bn_mul_mont: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
237
+ readonly wasm_bindgen__closure__destroy__h371e680d2c9813cc: (a: number, b: number) => void;
238
+ readonly wasm_bindgen__closure__destroy__h80a0a4202b98bec2: (a: number, b: number) => void;
239
+ readonly wasm_bindgen__closure__destroy__hdda622e051292cf2: (a: number, b: number) => void;
240
+ readonly wasm_bindgen__closure__destroy__h0b41a02fbe6471ce: (a: number, b: number) => void;
241
+ readonly wasm_bindgen__closure__destroy__h8e81dd7dd6597798: (a: number, b: number) => void;
242
+ readonly wasm_bindgen__closure__destroy__hc4385c46a735f91a: (a: number, b: number) => void;
243
+ readonly wasm_bindgen__closure__destroy__h65fdc278f5332d1f: (a: number, b: number) => void;
244
+ readonly wasm_bindgen__closure__destroy__h2853267a0cbc2b04: (a: number, b: number) => void;
245
+ readonly wasm_bindgen__convert__closures_____invoke__h517a56e03d34d888: (a: number, b: number, c: any) => [number, number];
246
+ readonly wasm_bindgen__convert__closures_____invoke__h3f605e54c3ccc792: (a: number, b: number, c: any, d: any) => void;
247
+ readonly wasm_bindgen__convert__closures_____invoke__hf53043a3aa608bb3: (a: number, b: number, c: any) => void;
248
+ readonly wasm_bindgen__convert__closures_____invoke__h14717fdf60edc0ad: (a: number, b: number, c: any) => void;
249
+ readonly wasm_bindgen__convert__closures_____invoke__hb5064d1dd77b5d01: (a: number, b: number, c: any) => void;
250
+ readonly wasm_bindgen__convert__closures_____invoke__h3736bba9aeac8b38: (a: number, b: number) => void;
251
+ readonly wasm_bindgen__convert__closures_____invoke__h3b2823c6a5a88a62: (a: number, b: number) => void;
252
+ readonly wasm_bindgen__convert__closures_____invoke__h9f65334fdbabfcc8: (a: number, b: number) => void;
253
+ readonly wasm_bindgen__convert__closures_____invoke__hc3d2296b352a462d: (a: number, b: number) => void;
254
+ readonly __wbindgen_malloc: (a: number, b: number) => number;
255
+ readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
256
+ readonly __wbindgen_exn_store: (a: number) => void;
257
+ readonly __externref_table_alloc: () => number;
258
+ readonly __wbindgen_externrefs: WebAssembly.Table;
259
+ readonly __wbindgen_free: (a: number, b: number, c: number) => void;
260
+ readonly __externref_table_dealloc: (a: number) => void;
261
+ readonly __wbindgen_start: () => void;
262
+ }
263
+
264
+ export type SyncInitInput = BufferSource | WebAssembly.Module;
265
+
266
+ /**
267
+ * Instantiates the given `module`, which can either be bytes or
268
+ * a precompiled `WebAssembly.Module`.
269
+ *
270
+ * @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
271
+ *
272
+ * @returns {InitOutput}
273
+ */
274
+ export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;
275
+
276
+ /**
277
+ * If `module_or_path` is {RequestInfo} or {URL}, makes a request and
278
+ * for everything else, calls `WebAssembly.instantiate` directly.
279
+ *
280
+ * @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
281
+ *
282
+ * @returns {Promise<InitOutput>}
283
+ */
284
+ export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;