openrtc 1.0.26 → 2.0.0-rc.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 (64) hide show
  1. package/README.md +143 -205
  2. package/dist/DelegatingRuntimeAdapter-DqfHkjLy.d.ts +373 -0
  3. package/dist/ITransport-BsPcaov7.d.ts +16 -0
  4. package/dist/OpenRTCShared-TKAQLONA.js +1 -0
  5. package/dist/WasmBridge-2A22U7RU.js +1 -0
  6. package/dist/auth/index.js +1 -1
  7. package/dist/auth/internal.js +1 -1
  8. package/dist/{capabilities-CaqXOIUU.d.ts → capabilities-YSskrE8H.d.ts} +1 -1
  9. package/dist/chunk-2QHDEGVX.js +1 -0
  10. package/dist/chunk-4K2QPYGT.js +2 -0
  11. package/dist/chunk-7Z6N46RB.js +2 -0
  12. package/dist/chunk-A3IAG6EL.js +1 -0
  13. package/dist/chunk-BXFXPIXO.js +1 -0
  14. package/dist/chunk-CEMN2JKR.js +3 -0
  15. package/dist/chunk-DTWEQS3J.js +1 -0
  16. package/dist/chunk-GW7P3D54.js +1 -0
  17. package/dist/chunk-K37WVIZL.js +1 -0
  18. package/dist/chunk-N26S7V4N.js +1 -0
  19. package/dist/chunk-N4SX7C3W.js +2 -0
  20. package/dist/chunk-NB4H5TP3.js +1 -0
  21. package/dist/chunk-NT5YHZQH.js +1 -0
  22. package/dist/chunk-PODAMIL6.js +2 -0
  23. package/dist/chunk-RD3JEGGF.js +2 -0
  24. package/dist/chunk-UEYM6WTT.js +2 -0
  25. package/dist/chunk-VK6KX433.js +1 -0
  26. package/dist/chunk-WMRCP3YX.js +1 -0
  27. package/dist/chunk-XE43HAXV.js +2 -0
  28. package/dist/chunk-YBXGNKM7.js +2 -0
  29. package/dist/chunk-YGJ6OAPR.js +1 -0
  30. package/dist/factories-O5575ECL.js +1 -0
  31. package/dist/index.d.ts +11 -65
  32. package/dist/index.js +1 -1
  33. package/dist/ipcFactory-FBNUVH7V.js +1 -0
  34. package/dist/native.d.ts +9 -15
  35. package/dist/native.js +1 -1
  36. package/dist/openrtc_bg.wasm +0 -0
  37. package/dist/runtime/WasmRuntimeAdapter.d.ts +3 -3
  38. package/dist/runtime/WasmRuntimeAdapter.js +1 -1
  39. package/dist/runtime/device-status.d.ts +3 -2
  40. package/dist/runtime/index.d.ts +110 -17
  41. package/dist/runtime/index.js +2 -1
  42. package/dist/runtime/tauri.d.ts +4 -4
  43. package/dist/runtime/tauri.js +1 -1
  44. package/dist/{tauri-BpsecNrp.d.ts → tauri-Cz9n17g8.d.ts} +2 -2
  45. package/dist/testing.d.ts +29 -0
  46. package/dist/testing.js +1 -0
  47. package/dist/transport/index.d.ts +47 -7
  48. package/dist/transport/index.js +1 -1
  49. package/dist/{assembly-CscFVHYK.d.ts → types-BDc7AZYI.d.ts} +446 -28
  50. package/dist/{types-BJU2GoVb.d.ts → types-BUXwspL0.d.ts} +11 -17
  51. package/dist/{types-zT2QwuCv.d.ts → types-BVJr065k.d.ts} +43 -3
  52. package/package.json +15 -4
  53. package/dist/DelegatingRuntimeAdapter-Cg3jFk1b.d.ts +0 -133
  54. package/dist/chunk-2W2YWRIZ.js +0 -1
  55. package/dist/chunk-BW6OKBHV.js +0 -2
  56. package/dist/chunk-D4JYPV6F.js +0 -2
  57. package/dist/chunk-DIBUXEEO.js +0 -1
  58. package/dist/chunk-DXJZDB7Q.js +0 -3
  59. package/dist/chunk-OCSZA6PK.js +0 -2
  60. package/dist/chunk-PPGIC6DR.js +0 -2
  61. package/dist/chunk-QBAVJDN2.js +0 -2
  62. package/dist/chunk-QT2ASNI3.js +0 -1
  63. package/dist/framing-zRvEKOld.d.ts +0 -29
  64. package/dist/spaceTokens-CiwcKKr2.d.ts +0 -297
@@ -1,7 +1,7 @@
1
+ import { H as GrantScope, q as ISignalingBackend, Y as ConnectDeviceHooks, Z as ConnectDeviceOptions, _ as ConnectDeviceResult, u as ManagedConnectionRecord, m as PeerSessionSnapshot, v as ResolvedPeerIdentity, $ as AppLimits, N as NativeConnectParams, z as NativeConnectResult, E as ExplicitFileDataSendParams } from './types-BVJr065k.js';
1
2
  import { A as AuthContext } from './IEngineBridge-BbsT8hof.js';
2
- import { G as GrantScope, I as ISignalingBackend, b as ConnectDeviceHooks, c as ConnectDeviceOptions, C as ConnectDeviceResult, M as ManagedConnectionRecord, P as PeerSessionSnapshot, R as ResolvedPeerIdentity, Y as AppLimits, p as NativeConnectParams, q as NativeConnectResult, E as ExplicitFileDataSendParams } from './types-zT2QwuCv.js';
3
- import { h as RuntimePeerState, s as RuntimeConnectionStateSnapshot, j as RuntimePeerReadinessSnapshot, i as RuntimePeerConnectOptions, C as Connection, n as RuntimeIncomingStream, R as RuntimeClientOptions, H as RuntimeAuthIdentity, f as RuntimeLocalDeviceInfo, g as RuntimeLocalDeviceProfile, c as RuntimeDevice, a as RuntimeManagedSessionOptions, b as RuntimeManagedSession, d as RuntimeDeviceStatusSnapshot, e as RuntimeDeviceConnectOptions, X as RuntimeSession, q as RuntimeJoinRoomOptions, r as RuntimeRoomMember, K as RuntimeConnectionTarget, o as RuntimeScopedChannelOptions, p as RuntimeScopedLogicalChannel, m as RuntimePeerStreamOptions, v as RuntimeRawConnection, l as RuntimeChannelDescriptor, V as RuntimePresenceLoopOptions, k as RuntimePeerHealth, t as RuntimeApplicationPayloadReadinessOptions, u as RuntimeConnectionEvent } from './types-BJU2GoVb.js';
4
- import { R as RuntimeCapabilities, a as RuntimeCapabilityProfile } from './capabilities-CaqXOIUU.js';
3
+ import { a as RuntimePeerState, b as RuntimeConnectionStateSnapshot, c as RuntimePeerReadinessSnapshot, d as RuntimePeerConnectOptions, C as Connection, e as RuntimeIncomingStream, R as RuntimeClientOptions, f as RuntimeAuthIdentity, g as RuntimeLocalDeviceInfo, h as RuntimeLocalDeviceProfile, i as RuntimeDevice, j as RuntimeManagedSessionOptions, k as RuntimeManagedSession, l as RuntimeDeviceStatusSnapshot, m as RuntimeDeviceConnectOptions, n as RuntimeSession, o as RuntimeJoinRoomOptions, p as RuntimeRoomMember, q as RuntimeConnectionTarget, r as RuntimeScopedChannelOptions, s as RuntimeScopedLogicalChannel, t as RuntimePeerStreamOptions, u as RuntimeRawConnection, v as RuntimeChannelDescriptor, w as RuntimePresenceLoopOptions, x as RuntimePeerHealth, y as RuntimeApplicationPayloadReadinessOptions, z as RuntimeConnectionEvent } from './types-BUXwspL0.js';
4
+ import { R as RuntimeCapabilities, a as RuntimeCapabilityProfile } from './capabilities-YSskrE8H.js';
5
5
 
6
6
  /**
7
7
  * Coalesced peer reconciliation scheduler and full reconcile orchestration.
@@ -75,30 +75,6 @@ interface Session {
75
75
  /** Tear down all subscriptions and disconnect scope-tagged connections. */
76
76
  dispose(): void;
77
77
  }
78
- declare class ScopedSession implements Session {
79
- readonly scope: string;
80
- private _disposed;
81
- private readonly runtime;
82
- private readonly allowAllPeers;
83
- private readonly allowedPeerIds;
84
- private readonly cleanups;
85
- constructor(runtime: RuntimeClient, options: SessionOptions);
86
- get disposed(): boolean;
87
- /** Returns true when this session should receive events for this peer. */
88
- private matchesPeer;
89
- private matchesConnectionState;
90
- private matchesStream;
91
- watchPeerStates(callback: (peers: RuntimePeerState[]) => void): () => void;
92
- onConnectionStateChange(callback: (state: RuntimeConnectionStateSnapshot) => void): (() => void) | Promise<() => void>;
93
- listConnectedPeers(): RuntimePeerState[];
94
- getPeerReadiness(peerId: string): Promise<RuntimePeerReadinessSnapshot>;
95
- connectPeer(options: RuntimePeerConnectOptions): Promise<Connection>;
96
- disconnectPeer(peerId: string): Promise<void>;
97
- onIncomingStream(callback: (stream: RuntimeIncomingStream) => void): () => void;
98
- dispose(): void;
99
- private releaseScopedPeersOnDispose;
100
- private assertNotDisposed;
101
- }
102
78
 
103
79
  /**
104
80
  * Phase 4 of the OpenRTC auth + connection remediation plan
@@ -320,6 +296,7 @@ declare class RuntimeClient {
320
296
  private managedSessionOptions;
321
297
  private managedSessionTransition;
322
298
  private managedSessionStartInFlight;
299
+ private terminalShutdown;
323
300
  private readonly managedReconciliationTasks;
324
301
  private managedReconciliationTimer;
325
302
  private readonly managedReconciliationFollowupTimers;
@@ -617,6 +594,14 @@ declare class RuntimeClient {
617
594
  connect(): Promise<void>;
618
595
  /** Disconnect from the runtime (alias for stop()) */
619
596
  disconnect(): void;
597
+ /**
598
+ * Await the provider-neutral terminal lifecycle before destroying this
599
+ * runtime instance. Consumers that may create a replacement runtime in the
600
+ * same page should use this instead of composing setOffline(), stop(), and
601
+ * destroy() themselves: the active adapter owns presence, coordination
602
+ * sockets, session readers, and scoped connection actors.
603
+ */
604
+ shutdown(): Promise<void>;
620
605
  /**
621
606
  * Terminal teardown of the runtime instance. Unlike stop()/disconnect()
622
607
  * (which only stop the listen loop and are used during normal operation),
@@ -715,4 +700,437 @@ interface PlutoRuntimeAssembly<TBackend extends RuntimeAdapterWithAuth = Runtime
715
700
  setAutoConnectExcluded(deviceId: string, excluded: boolean): Promise<void>;
716
701
  }
717
702
 
718
- export { DriveGrantActorError as D, OPENRTC_RUNTIME_POLICY as O, type PeerReconciliationStats as P, RuntimeClient as R, ScopedSession as S, type RuntimePolicySnapshot as a, type PlutoRuntimeAssembly as b, type Session as c, type SessionOptions as d, type RuntimeFactoryOptions as e, type DriveGrantActorErrorKind as f, getRuntimePolicy as g, DriveGrantActorHandle as h, type DriveGrantActorHandleOptions as i, DriveGrantActorRegistry as j, type DriveGrantActorState as k, type DriveGrantClose as l, type DriveGrantDial as m, type DriveGrantConnectionKey as n, type DriveGrantLogicalChannelHandle as o, type DriveGrantPreferredTransport as p, driveGrantConnectionKey as q, driveGrantConnectionKeyToString as r };
703
+ type OpenRTCChannelConnectOptions = Omit<RuntimeScopedChannelOptions, 'scope' | 'deviceId' | 'ticket'> & {
704
+ /**
705
+ * Device selected from `client.devices.*`. Passing the device object lets
706
+ * OpenRTC reuse its current ticket for native and ticket-gated routes.
707
+ */
708
+ device?: string | RuntimeDevice;
709
+ deviceId?: string | null;
710
+ ticket?: string;
711
+ /**
712
+ * Logical channel lifecycle scope. Most app channels should use the default
713
+ * `session`; pass a custom scope only when you intentionally manage peer
714
+ * lifecycle separately from the channel.
715
+ */
716
+ scope?: RuntimeScopedChannelOptions['scope'];
717
+ };
718
+ type OpenRTCDeviceSessionOptions = Omit<RuntimeManagedSessionOptions, 'platform'> & {
719
+ /**
720
+ * Runtime host for the managed user-device session. Normal apps can omit
721
+ * this: `OpenRTC(...)` defaults to `web`, and `OpenRTC.native(...)` defaults
722
+ * to `native`.
723
+ */
724
+ platform?: RuntimeManagedSessionOptions['platform'];
725
+ };
726
+ interface OpenRTCDeviceNamespace {
727
+ startSession(options?: OpenRTCDeviceSessionOptions): Promise<RuntimeManagedSession>;
728
+ stopSession(options?: {
729
+ preserveBackendSession?: boolean;
730
+ }): Promise<void>;
731
+ list(): Promise<RuntimeDevice[]>;
732
+ listWithStatus(): Promise<RuntimeDeviceStatusSnapshot[]>;
733
+ watch(callback: (devices: RuntimeDevice[]) => void): () => void;
734
+ watchWithStatus(callback: (devices: RuntimeDeviceStatusSnapshot[]) => void): () => void;
735
+ connect(device: string | RuntimeDevice, options?: RuntimeDeviceConnectOptions): Promise<ConnectDeviceResult>;
736
+ /**
737
+ * @deprecated Use `devices.connect()`. Retry and route recovery are owned by
738
+ * OpenRTC; legacy consumer-provided connection hooks are ignored.
739
+ */
740
+ connectWithRetry(device: string | RuntimeDevice, hooks: ConnectDeviceHooks, options: ConnectDeviceOptions): Promise<ConnectDeviceResult>;
741
+ disconnect(deviceId: string): Promise<void>;
742
+ update(deviceId: string, updates: {
743
+ deviceName?: string;
744
+ capabilities?: RuntimeDevice['capabilities'];
745
+ metadata?: string;
746
+ }): Promise<void>;
747
+ delete(deviceId: string): Promise<void>;
748
+ localId(): Promise<string | null>;
749
+ localInfo(): Promise<RuntimeLocalDeviceInfo | null>;
750
+ localProfile(options?: {
751
+ deviceName?: string;
752
+ localDeviceId?: string | null;
753
+ platform?: 'native' | 'web';
754
+ userId?: string | null;
755
+ }): Promise<RuntimeLocalDeviceProfile>;
756
+ updateLocalName(deviceName: string): Promise<RuntimeLocalDeviceInfo | null>;
757
+ }
758
+ interface OpenRTCPeerNamespace {
759
+ watch(callback: (peers: RuntimePeerState[]) => void): () => void;
760
+ watchLifecycle(callback: (peers: RuntimePeerState[]) => void): () => void;
761
+ get(id: string): RuntimePeerState | undefined;
762
+ listConnected(): RuntimePeerState[];
763
+ connect(options: RuntimePeerConnectOptions): Promise<Connection>;
764
+ disconnect(id: string, scope?: string): Promise<void>;
765
+ forceDisconnect(id: string): Promise<void>;
766
+ session(id: string): Promise<PeerSessionSnapshot | null>;
767
+ sessions(): Promise<PeerSessionSnapshot[]>;
768
+ waitConnected(id: string, timeoutMs?: number): Promise<PeerSessionSnapshot | null>;
769
+ readiness(id: string, timeoutMs?: number): Promise<RuntimePeerReadinessSnapshot>;
770
+ health(id: string): Promise<RuntimePeerHealth>;
771
+ identity(id: string): Promise<ResolvedPeerIdentity>;
772
+ addScope(id: string, scope?: string): RuntimePeerState | undefined;
773
+ releaseScope(id: string, scope?: string): RuntimePeerState | undefined;
774
+ scopes(id: string): string[];
775
+ refresh(): Promise<RuntimePeerState[]>;
776
+ }
777
+ interface OpenRTCChannelNamespace {
778
+ register(descriptor: RuntimeChannelDescriptor): void;
779
+ unregister(channelId: string): void;
780
+ list(): RuntimeChannelDescriptor[];
781
+ openBi(id: string, channelId: string, options?: Omit<RuntimePeerStreamOptions, 'channelId'>): Promise<{
782
+ connection: Connection;
783
+ readable: ReadableStream<Uint8Array>;
784
+ writable: WritableStream<Uint8Array>;
785
+ }>;
786
+ openUni(id: string, channelId: string, options?: Omit<RuntimePeerStreamOptions, 'channelId'>): Promise<{
787
+ connection: Connection;
788
+ writable: WritableStream<Uint8Array>;
789
+ }>;
790
+ onIncoming(callback: (stream: RuntimeIncomingStream) => boolean | void): () => void;
791
+ onIncomingChannel(channelId: string, callback: (stream: RuntimeIncomingStream & {
792
+ channel: NonNullable<RuntimeIncomingStream['channel']>;
793
+ }) => boolean | void): () => void;
794
+ connect(options: OpenRTCChannelConnectOptions): Promise<RuntimeScopedLogicalChannel>;
795
+ connectScoped(options: RuntimeScopedChannelOptions): Promise<RuntimeScopedLogicalChannel>;
796
+ }
797
+ interface OpenRTCRoomNamespace {
798
+ create(roomId?: string): Promise<string>;
799
+ join(roomId: string, options?: RuntimeJoinRoomOptions): Promise<Connection[]>;
800
+ leave(roomId: string): Promise<void>;
801
+ watch(roomId: string, callback: (members: RuntimeRoomMember[]) => void): () => void;
802
+ members(roomId: string): Promise<RuntimeRoomMember[]>;
803
+ }
804
+ interface OpenRTCTicketNamespace {
805
+ raw(): Promise<string>;
806
+ share(options?: {
807
+ maxConnections?: number;
808
+ }): Promise<string>;
809
+ grant(scope: GrantScope, options?: {
810
+ maxConnections?: number;
811
+ }): Promise<string>;
812
+ revoke(scope: GrantScope): Promise<string[]>;
813
+ }
814
+ interface OpenRTCDiagnosticsNamespace {
815
+ status(): Promise<{
816
+ runtime: 'tauri' | 'browser' | 'unknown';
817
+ wasmLoaded: boolean;
818
+ localNodeId?: string;
819
+ userId?: string;
820
+ }>;
821
+ policy(): RuntimePolicySnapshot;
822
+ capabilities(): RuntimeCapabilities;
823
+ capabilityProfile(): RuntimeCapabilityProfile;
824
+ connectionStates(): Promise<RuntimeConnectionStateSnapshot[]>;
825
+ onConnectionStateChange(callback: (state: RuntimeConnectionStateSnapshot) => void): Promise<() => void> | (() => void);
826
+ connections(): Connection[];
827
+ applicationReadyConnections(options?: RuntimeApplicationPayloadReadinessOptions): Connection[];
828
+ onConnection(callback: (connection: Connection) => void): () => void;
829
+ onDisconnection(callback: (connection: Connection) => void): () => void;
830
+ onConnectionEvent(callback: (event: RuntimeConnectionEvent) => void): () => void;
831
+ forceReconnectSnapshot(): void;
832
+ peerReconciliation(): Readonly<PeerReconciliationStats>;
833
+ }
834
+ interface OpenRTCAdvancedNamespace {
835
+ readonly runtime: RuntimeClient;
836
+ readonly assembly: PlutoRuntimeAssembly;
837
+ nodeId(): Promise<string>;
838
+ nodeIdFromTicket(ticket: string): Promise<string | null>;
839
+ endpointTicket(): Promise<string>;
840
+ connectRaw(target: {
841
+ ticket: string;
842
+ timeoutMs?: number;
843
+ }): Promise<RuntimeRawConnection>;
844
+ openBi(nodeId: string): Promise<{
845
+ readable: ReadableStream<Uint8Array>;
846
+ writable: WritableStream<Uint8Array>;
847
+ }>;
848
+ openUni(nodeId: string): Promise<WritableStream<Uint8Array>>;
849
+ isConnected(nodeId: string): Promise<boolean>;
850
+ disconnectNode(nodeId: string): Promise<void>;
851
+ setAutoConnectExcluded(deviceId: string, excluded: boolean): Promise<void>;
852
+ notifyNetworkChange(reason?: string): Promise<void>;
853
+ }
854
+ /**
855
+ * OpenRTCClient extends RuntimeClient with auth helpers that were
856
+ * previously only available on PlutoRuntimeAssembly.
857
+ *
858
+ * This is the unified type returned by OpenRTC() and OpenRTC.native().
859
+ */
860
+ interface OpenRTCClient$1 extends RuntimeClient {
861
+ readonly devices: OpenRTCDeviceNamespace;
862
+ readonly peers: OpenRTCPeerNamespace;
863
+ readonly channels: OpenRTCChannelNamespace;
864
+ readonly rooms: OpenRTCRoomNamespace;
865
+ readonly tickets: OpenRTCTicketNamespace;
866
+ readonly diagnostics: OpenRTCDiagnosticsNamespace;
867
+ readonly advanced: OpenRTCAdvancedNamespace;
868
+ /** @deprecated Use setAuth() instead */
869
+ setAuthContext(context: AuthContext | null): Promise<void>;
870
+ /** Set auth context for the runtime */
871
+ setAuth(context: AuthContext | null): Promise<void>;
872
+ /** Sync Pluto-hosted auth to the runtime */
873
+ syncPlutoAuth(options?: {
874
+ userId?: string | null;
875
+ forceRefresh?: boolean;
876
+ }): Promise<void>;
877
+ /** Bind Pluto auth host to auto-sync on token changes */
878
+ bindPlutoAuthHost(): () => void;
879
+ /** Sign in via Pluto SSO */
880
+ signIn(): Promise<void>;
881
+ /** Sign out and clear auth context */
882
+ signOut(): Promise<void>;
883
+ /**
884
+ * @deprecated Use `client.devices.startSession(...)` for the public
885
+ * user-device avenue lifecycle. This top-level method remains for
886
+ * RuntimeClient compatibility and advanced integrations.
887
+ */
888
+ startManagedSession(options: RuntimeManagedSessionOptions): Promise<RuntimeManagedSession>;
889
+ /**
890
+ * @deprecated Use `client.devices.stopSession(...)` for the public
891
+ * user-device avenue lifecycle.
892
+ */
893
+ stopManagedSession(options?: {
894
+ preserveBackendSession?: boolean;
895
+ }): Promise<void>;
896
+ /** @deprecated Use `client.rooms.create(...)`. */
897
+ createRoom(roomId?: string): Promise<string>;
898
+ /** @deprecated Use `client.rooms.join(...)`. */
899
+ joinRoom(roomId: string, options?: RuntimeJoinRoomOptions): Promise<Connection[]>;
900
+ /** @deprecated Use `client.rooms.leave(...)`. */
901
+ leaveRoom(roomId: string): Promise<void>;
902
+ /** @deprecated Use `client.rooms.watch(...)`. */
903
+ watchRoom(roomId: string, callback: (members: RuntimeRoomMember[]) => void): () => void;
904
+ /** @deprecated Use `client.rooms.members(...)`. */
905
+ getRoomMembers(roomId: string): Promise<RuntimeRoomMember[]>;
906
+ /** @deprecated Use `client.tickets.raw(...)`. */
907
+ getInvite(): Promise<string>;
908
+ /** @deprecated Use `client.tickets.raw(...)`. */
909
+ getTicket(): Promise<string>;
910
+ /** @deprecated Use `client.tickets.share(...)` or `client.tickets.grant(...)`. */
911
+ getTicketWithToken(scope: GrantScope, maxConnections?: number): Promise<string>;
912
+ /** @deprecated Use `client.tickets.revoke(...)`. */
913
+ revokeTokensByScope(scope: GrantScope): Promise<string[]>;
914
+ /** @deprecated Use `client.peers.connect(...)`. */
915
+ connectPeer(options: RuntimePeerConnectOptions): Promise<Connection>;
916
+ /** @deprecated Use `client.peers.connect(...)`. */
917
+ connectTo(options: RuntimePeerConnectOptions): Promise<Connection>;
918
+ /** @deprecated Use `client.peers.waitConnected(...)`. */
919
+ waitForConnectedPeer(id: string, timeoutMs?: number): Promise<PeerSessionSnapshot | null>;
920
+ /** @deprecated Use `client.channels.connect(...)`; use `client.channels.connectScoped(...)` only for custom lifecycle scopes. */
921
+ connectScopedChannel(options: RuntimeScopedChannelOptions): Promise<RuntimeScopedLogicalChannel>;
922
+ /** @deprecated Use `client.channels.openBi(...)`. */
923
+ openPeerBi(id: string, options?: RuntimePeerStreamOptions): Promise<{
924
+ connection: Connection;
925
+ readable: ReadableStream<Uint8Array>;
926
+ writable: WritableStream<Uint8Array>;
927
+ }>;
928
+ /** @deprecated Use `client.channels.openUni(...)`. */
929
+ openPeerUni(id: string, options?: RuntimePeerStreamOptions): Promise<{
930
+ connection: Connection;
931
+ writable: WritableStream<Uint8Array>;
932
+ }>;
933
+ /**
934
+ * Access to the underlying PlutoRuntimeAssembly for backward compatibility.
935
+ * @deprecated Access methods directly on the client instead.
936
+ */
937
+ readonly runtime: RuntimeClient;
938
+ /**
939
+ * Access to the underlying PlutoRuntimeAssembly for backward compatibility.
940
+ * @internal
941
+ */
942
+ readonly _assembly: PlutoRuntimeAssembly;
943
+ }
944
+
945
+ interface OpenRTCAuthProvider {
946
+ /** Registered provider ID from the developer app capability manifest. */
947
+ readonly providerId?: string;
948
+ getAssertion(input: {
949
+ audience: 'https://api.openrtc.app/v2/assertions/exchange';
950
+ forceRefresh: boolean;
951
+ }): Promise<string | null>;
952
+ /**
953
+ * Optional identity-epoch observer. Notify only when the signed-in
954
+ * principal/session changes (login, logout, account switch, or explicit
955
+ * revocation). Do not notify for ordinary OAuth/Firebase access-token
956
+ * refreshes: OpenRTC refreshes its own avenue grant in place.
957
+ */
958
+ subscribe?(listener: () => void): () => void;
959
+ }
960
+ interface OpenRTCAttestationProvider {
961
+ readonly kind: 'firebase-app-check' | 'apple-app-attest' | 'play-integrity' | `custom:${string}`;
962
+ /**
963
+ * Describes what the provider actually signs. Reusable app-integrity
964
+ * tokens (for example Firebase App Check) do not become request-bound just
965
+ * because OpenRTC supplies an enrollment challenge. The server derives and
966
+ * enforces the authoritative binding from the registered provider kind;
967
+ * this field keeps host integrations and diagnostics honest.
968
+ */
969
+ readonly evidenceBinding: 'app-session' | 'request-challenge';
970
+ getEvidence(input: {
971
+ challenge: string;
972
+ apiKey: string;
973
+ }): Promise<{
974
+ token: string;
975
+ }>;
976
+ }
977
+ /**
978
+ * Optional consumer-owned bot challenge. Core OpenRTC does not render a UI or
979
+ * load a CAPTCHA dependency; the host supplies a fresh token only when its
980
+ * developer manifest requires anonymous capability verification.
981
+ */
982
+ interface OpenRTCBotVerificationProvider {
983
+ getToken(input: {
984
+ action: 'openrtc_capability';
985
+ apiKey: string;
986
+ }): Promise<string>;
987
+ }
988
+ interface OpenRTCUsageUpdate {
989
+ sessionCreditsUsd: number;
990
+ operation: string;
991
+ estimated: boolean;
992
+ }
993
+ interface OpenRTCUsageWarning extends OpenRTCUsageUpdate {
994
+ thresholdCreditsUsd: number;
995
+ kind: 'warning' | 'session-limit';
996
+ }
997
+ interface OpenRTCTransportPreferences {
998
+ iroh?: boolean;
999
+ webrtc?: boolean;
1000
+ relay?: boolean;
1001
+ moq?: boolean;
1002
+ ble?: boolean;
1003
+ /**
1004
+ * Advanced privacy mode. `relay-only` suppresses direct Iroh addresses,
1005
+ * local discovery, and host/srflx WebRTC candidates. It also requires the
1006
+ * developer manifest's relay opt-in.
1007
+ */
1008
+ privacy?: 'direct' | 'relay-only';
1009
+ /**
1010
+ * Advanced native integration for hosts whose Rust process owns the
1011
+ * application protocol registry (for example, a Tauri file-transfer host).
1012
+ * Normal SDK consumers should leave this disabled.
1013
+ */
1014
+ nativeHostProtocols?: boolean;
1015
+ priority?: readonly ('iroh' | 'webrtc' | 'moq' | 'ble')[];
1016
+ }
1017
+ interface OpenRTCOptions {
1018
+ apiKey: string;
1019
+ auth?: OpenRTCAuthProvider;
1020
+ trust?: {
1021
+ attestation?: OpenRTCAttestationProvider;
1022
+ botVerification?: OpenRTCBotVerificationProvider;
1023
+ };
1024
+ usage?: {
1025
+ warnAtSessionCreditsUsd?: number;
1026
+ maxSessionCreditsUsd?: number;
1027
+ onUsage?: (event: OpenRTCUsageUpdate) => void;
1028
+ onWarning?: (warning: OpenRTCUsageWarning) => void;
1029
+ };
1030
+ transports?: OpenRTCTransportPreferences;
1031
+ }
1032
+ type OpenRTCAccessMode = 'capability' | 'authenticated';
1033
+ type OpenRTCLatestStateMode = 'reliable' | 'latest-state';
1034
+ interface OpenRTCCapabilityHandle {
1035
+ readonly kind: 'devices' | 'space' | 'room' | 'ticket';
1036
+ readonly id: string;
1037
+ readonly peers: OpenRTCPeerNamespace;
1038
+ readonly channels: OpenRTCChannelNamespace;
1039
+ readonly diagnostics: OpenRTCDiagnosticsNamespace;
1040
+ readonly closed: boolean;
1041
+ close(): Promise<void>;
1042
+ }
1043
+ interface OpenRTCDevicesHandle extends OpenRTCCapabilityHandle {
1044
+ readonly kind: 'devices';
1045
+ localId(): ReturnType<OpenRTCDeviceNamespace['localId']>;
1046
+ localInfo(): ReturnType<OpenRTCDeviceNamespace['localInfo']>;
1047
+ list(): ReturnType<OpenRTCDeviceNamespace['list']>;
1048
+ listWithStatus(): ReturnType<OpenRTCDeviceNamespace['listWithStatus']>;
1049
+ watch: OpenRTCDeviceNamespace['watch'];
1050
+ connect: OpenRTCDeviceNamespace['connect'];
1051
+ disconnect: OpenRTCDeviceNamespace['disconnect'];
1052
+ }
1053
+ interface OpenRTCSpaceHandle extends OpenRTCCapabilityHandle {
1054
+ readonly kind: 'space';
1055
+ readonly delivery: OpenRTCLatestStateMode;
1056
+ leave(): Promise<void>;
1057
+ }
1058
+ interface OpenRTCRoomHandle extends OpenRTCCapabilityHandle {
1059
+ readonly kind: 'room';
1060
+ readonly membership: 'ephemeral' | 'durable';
1061
+ leave(): Promise<void>;
1062
+ }
1063
+ interface OpenRTCTicketHandle extends OpenRTCCapabilityHandle {
1064
+ readonly kind: 'ticket';
1065
+ readonly token: string;
1066
+ }
1067
+ interface OpenRTCDevicesStartOptions {
1068
+ auth?: OpenRTCAuthProvider;
1069
+ autoConnect?: 'none' | 'online';
1070
+ /** Optional local profile; it does not alter the durable device identity. */
1071
+ profile?: {
1072
+ name?: string;
1073
+ /**
1074
+ * Optional application-owned public presence metadata. It is bounded
1075
+ * to 4 KiB and folded into the initial connection/presence operation.
1076
+ */
1077
+ metadata?: string;
1078
+ };
1079
+ maxPeers?: number;
1080
+ /** Requires the app manifest's advanced-fanout opt-in. */
1081
+ advancedFanout?: boolean;
1082
+ }
1083
+ interface OpenRTCSpaceJoinOptions {
1084
+ access?: 'capability';
1085
+ identity?: 'ephemeral';
1086
+ payload?: OpenRTCLatestStateMode;
1087
+ maxPeers?: number;
1088
+ /** Requires the app manifest's advanced-fanout opt-in. */
1089
+ advancedFanout?: boolean;
1090
+ }
1091
+ interface OpenRTCRoomJoinOptions {
1092
+ access?: OpenRTCAccessMode;
1093
+ membership?: 'ephemeral' | 'durable';
1094
+ auth?: OpenRTCAuthProvider;
1095
+ maxPeers?: number;
1096
+ /** Requires the app manifest's advanced-fanout opt-in. */
1097
+ advancedFanout?: boolean;
1098
+ }
1099
+ interface OpenRTCTicketIssueOptions {
1100
+ maxPeers?: number;
1101
+ /** Requires the app manifest's advanced-fanout opt-in. */
1102
+ advancedFanout?: boolean;
1103
+ }
1104
+ interface OpenRTCChannelCatalog {
1105
+ register(descriptor: RuntimeChannelDescriptor): () => void;
1106
+ list(): readonly RuntimeChannelDescriptor[];
1107
+ }
1108
+ interface OpenRTCUsageNamespace {
1109
+ estimate(input: {
1110
+ operation: string;
1111
+ units?: number;
1112
+ }): {
1113
+ creditsUsd: number;
1114
+ estimated: true;
1115
+ };
1116
+ readonly sessionCreditsUsd: number;
1117
+ }
1118
+ interface OpenRTCClient {
1119
+ readonly devices: {
1120
+ start(options?: OpenRTCDevicesStartOptions): Promise<OpenRTCDevicesHandle>;
1121
+ };
1122
+ readonly spaces: {
1123
+ join(id: string, options?: OpenRTCSpaceJoinOptions): Promise<OpenRTCSpaceHandle>;
1124
+ };
1125
+ readonly rooms: {
1126
+ join(id: string, options?: OpenRTCRoomJoinOptions): Promise<OpenRTCRoomHandle>;
1127
+ };
1128
+ readonly tickets: {
1129
+ issue(id: string, options?: OpenRTCTicketIssueOptions): Promise<OpenRTCTicketHandle>;
1130
+ };
1131
+ readonly channels: OpenRTCChannelCatalog;
1132
+ readonly usage: OpenRTCUsageNamespace;
1133
+ close(): Promise<void>;
1134
+ }
1135
+
1136
+ export { DriveGrantActorHandle as A, type DriveGrantActorHandleOptions as B, DriveGrantActorRegistry as C, DriveGrantActorError as D, type DriveGrantActorState as E, type DriveGrantClose as F, type DriveGrantDial as G, type DriveGrantConnectionKey as H, type DriveGrantLogicalChannelHandle as I, type DriveGrantPreferredTransport as J, getRuntimePolicy as K, driveGrantConnectionKey as L, driveGrantConnectionKeyToString as M, type OpenRTCOptions as O, type PlutoRuntimeAssembly as P, type RuntimeFactoryOptions as R, type OpenRTCClient as a, type OpenRTCAccessMode as b, type OpenRTCAttestationProvider as c, type OpenRTCAuthProvider as d, type OpenRTCBotVerificationProvider as e, type OpenRTCCapabilityHandle as f, type OpenRTCChannelCatalog as g, type OpenRTCDevicesHandle as h, type OpenRTCDevicesStartOptions as i, type OpenRTCLatestStateMode as j, type OpenRTCRoomHandle as k, type OpenRTCRoomJoinOptions as l, type OpenRTCSpaceHandle as m, type OpenRTCSpaceJoinOptions as n, type OpenRTCTicketHandle as o, type OpenRTCTicketIssueOptions as p, type OpenRTCTransportPreferences as q, type OpenRTCUsageNamespace as r, type OpenRTCUsageUpdate as s, type OpenRTCUsageWarning as t, type OpenRTCClient$1 as u, type PeerReconciliationStats as v, OPENRTC_RUNTIME_POLICY as w, RuntimeClient as x, type RuntimePolicySnapshot as y, type DriveGrantActorErrorKind as z };
@@ -1,20 +1,6 @@
1
1
  import { A as AuthContext } from './IEngineBridge-BbsT8hof.js';
2
- import { s as ConnectionOptions, t as ApplicationPayloadCrypto, u as ApplicationPayloadReadinessOptions, v as ApplicationPayloadRouteOptions, w as ProtocolName, x as ApplicationPayloadSendOptions, T as TransportLatencySnapshot, y as ChannelDescriptor$1, L as LocalDeviceInfo, z as IncomingStreamChannelMetadata, e as ClientOptions, h as Device, m as SignalingSession, f as RuntimeIdentity, i as DeviceStatusSnapshot, F as ManagedDeviceConnectOptions, H as PeerState, J as PeerHealth, K as JoinRoomOptions, g as RoomMember, O as PeerScope, r as BackendConnectionState, Q as DevicePresenceStatus, U as PeerLifecycleStatus, P as PeerSessionSnapshot } from './types-zT2QwuCv.js';
3
-
4
- interface ITransport {
5
- readonly name: string;
6
- readonly isReady: boolean;
7
- init(localNodeId: string, remoteNodeId: string, options: any): Promise<void>;
8
- send(data: Uint8Array): Promise<void>;
9
- close(): void;
10
- onMessage(callback: (data: Uint8Array) => void): void;
11
- onStateChange(callback: (state: 'connecting' | 'connected' | 'failed' | 'disconnected') => void): void;
12
- handleSignalingMessage?(msg: any): void;
13
- getSignalingHandler?(): (msg: any) => Promise<void>;
14
- getNativeTransport?(): any;
15
- getNegotiationId?(): string | null;
16
- getDataChannelReadyState?(): string | null;
17
- }
2
+ import { C as ConnectionOptions, A as ApplicationPayloadCrypto, a as ApplicationPayloadReadinessOptions, b as ApplicationPayloadRouteOptions, P as ProtocolName, c as ApplicationPayloadSendOptions, T as TransportLatencySnapshot, d as PeerState, e as PeerScope, f as PeerHealth, g as ChannelDescriptor$1, I as IncomingStreamChannelMetadata, D as Device, B as BackendConnectionState, L as LocalDeviceInfo, h as DeviceStatusSnapshot, M as ManagedDeviceConnectOptions, i as ClientOptions, S as SignalingSession, R as RuntimeIdentity, J as JoinRoomOptions, j as RoomMember, k as DevicePresenceStatus, l as PeerLifecycleStatus, m as PeerSessionSnapshot } from './types-BVJr065k.js';
3
+ import { I as ITransport } from './ITransport-BsPcaov7.js';
18
4
 
19
5
  type ConnectionHealth = 'unknown' | 'healthy' | 'suspect' | 'stale';
20
6
 
@@ -483,6 +469,12 @@ interface RuntimeScopedChannelOptions {
483
469
  channelId: string;
484
470
  timeoutMs?: number;
485
471
  respectManualDisconnect?: boolean;
472
+ /**
473
+ * Reuse an application-ready route owned by an active capability and fail
474
+ * if none exists. Protocol packages use this to open a named channel
475
+ * without gaining authority to dial, repair, or add an admission avenue.
476
+ */
477
+ existingRouteOnly?: boolean;
486
478
  /**
487
479
  * Native product protocols such as Plutonium drive-view expect a plaintext
488
480
  * stream label before payload frames. OpenRTC owns that handshake here so
@@ -507,6 +499,7 @@ interface RuntimeScopedLogicalChannel {
507
499
  lastSendTransport?: ProtocolName | 'stream' | null;
508
500
  framing: RuntimeLogicalChannelFraming;
509
501
  nativeLabel: boolean;
502
+ delivery: 'reliable' | 'latest-state';
510
503
  };
511
504
  }
512
505
  /**
@@ -545,6 +538,7 @@ type RuntimeAutoConnectPolicy = 'enabled' | 'disabled' | 'scoped-only';
545
538
  type RuntimePresencePolicy = 'online' | 'disabled';
546
539
  type RuntimeConnectionStateSnapshot = BackendConnectionState;
547
540
  type RuntimeApplicationPayloadReadinessOptions = ApplicationPayloadReadinessOptions;
541
+ type RuntimeApplicationPayloadRouteOptions = ApplicationPayloadRouteOptions;
548
542
  type RuntimeUiConnectionStatus = 'connecting' | 'connected' | 'disconnected' | 'failed';
549
543
  interface RuntimePeerReadinessSnapshot {
550
544
  requestedId: string;
@@ -601,4 +595,4 @@ type SessionOptions = RuntimeManagedSessionOptions;
601
595
  type Session = RuntimeManagedSession;
602
596
  type ChannelDescriptor = RuntimeChannelDescriptor;
603
597
 
604
- export { type Session as $, type PeerReadiness as A, type PeerStreamOptions as B, Connection as C, type DeviceProfile as D, type PresenceLoopOptions as E, type RawConnection as F, type RuntimeAuthContext as G, type RuntimeAuthIdentity as H, type ITransport as I, type RuntimeAutoConnectPolicy as J, type RuntimeConnectionTarget as K, type RuntimeDevicePresenceStatus as L, type RuntimeDeviceStatus as M, type RuntimeLogicalChannelFraming as N, type RuntimeManagedSessionKind as O, type PeerConnectOptions as P, type RuntimeManagedSessionPlatform as Q, type RuntimeClientOptions as R, type RuntimePeerLifecycleStatus as S, type RuntimePeerScope as T, type RuntimePeerSessionSnapshot as U, type RuntimePresenceLoopOptions as V, type RuntimePresencePolicy as W, type RuntimeSession as X, type RuntimeUiConnectionStatus as Y, type ScopedChannelOptions as Z, type ScopedLogicalChannel as _, type RuntimeManagedSessionOptions as a, type SessionOptions as a0, type RuntimeManagedSession as b, type RuntimeDevice as c, type RuntimeDeviceStatusSnapshot as d, type RuntimeDeviceConnectOptions as e, type RuntimeLocalDeviceInfo as f, type RuntimeLocalDeviceProfile as g, type RuntimePeerState as h, type RuntimePeerConnectOptions as i, type RuntimePeerReadinessSnapshot as j, type RuntimePeerHealth as k, type RuntimeChannelDescriptor as l, type RuntimePeerStreamOptions as m, type RuntimeIncomingStream as n, type RuntimeScopedChannelOptions as o, type RuntimeScopedLogicalChannel as p, type RuntimeJoinRoomOptions as q, type RuntimeRoomMember as r, type RuntimeConnectionStateSnapshot as s, type RuntimeApplicationPayloadReadinessOptions as t, type RuntimeConnectionEvent as u, type RuntimeRawConnection as v, type ChannelDescriptor as w, type ConnectionEvent as x, type ConnectionTarget as y, type IncomingStream as z };
598
+ export { type Session as $, type ChannelDescriptor as A, type ConnectionEvent as B, Connection as C, type ConnectionTarget as D, type DeviceProfile as E, type PeerReadiness as F, type PeerStreamOptions as G, type PresenceLoopOptions as H, type IncomingStream as I, type RawConnection as J, type RuntimeApplicationPayloadRouteOptions as K, type RuntimeAuthContext as L, type RuntimeAutoConnectPolicy as M, type RuntimeDevicePresenceStatus as N, type RuntimeDeviceStatus as O, type PeerConnectOptions as P, type RuntimeLogicalChannelFraming as Q, type RuntimeClientOptions as R, type RuntimeManagedSessionKind as S, type RuntimeManagedSessionPlatform as T, type RuntimePeerLifecycleStatus as U, type RuntimePeerScope as V, type RuntimePeerSessionSnapshot as W, type RuntimePresencePolicy as X, type RuntimeUiConnectionStatus as Y, type ScopedChannelOptions as Z, type ScopedLogicalChannel as _, type RuntimePeerState as a, type SessionOptions as a0, type RuntimeConnectionStateSnapshot as b, type RuntimePeerReadinessSnapshot as c, type RuntimePeerConnectOptions as d, type RuntimeIncomingStream as e, type RuntimeAuthIdentity as f, type RuntimeLocalDeviceInfo as g, type RuntimeLocalDeviceProfile as h, type RuntimeDevice as i, type RuntimeManagedSessionOptions as j, type RuntimeManagedSession as k, type RuntimeDeviceStatusSnapshot as l, type RuntimeDeviceConnectOptions as m, type RuntimeSession as n, type RuntimeJoinRoomOptions as o, type RuntimeRoomMember as p, type RuntimeConnectionTarget as q, type RuntimeScopedChannelOptions as r, type RuntimeScopedLogicalChannel as s, type RuntimePeerStreamOptions as t, type RuntimeRawConnection as u, type RuntimeChannelDescriptor as v, type RuntimePresenceLoopOptions as w, type RuntimePeerHealth as x, type RuntimeApplicationPayloadReadinessOptions as y, type RuntimeConnectionEvent as z };
@@ -17,6 +17,14 @@ interface CoordinationGatewayOptions {
17
17
  * verify the matching identity tenant and token audience.
18
18
  */
19
19
  environment: 'staging' | 'production';
20
+ /**
21
+ * Test-runtime authority for an insecure loopback gateway. The public v2
22
+ * constructor never sets this flag; `openrtc/testing` owns it for local
23
+ * emulator harnesses. Non-loopback HTTP/WS endpoints still fail closed.
24
+ *
25
+ * @internal
26
+ */
27
+ testingAllowInsecureLoopback?: boolean;
20
28
  /**
21
29
  * Opaque native trust token loader.
22
30
  *
@@ -29,6 +37,33 @@ interface CoordinationGatewayOptions {
29
37
  token: string;
30
38
  expiresAtMs: number;
31
39
  } | null | undefined>;
40
+ /**
41
+ * OpenRTC 2.0's provider-neutral grant source. This is installed by the
42
+ * public capability client, never supplied as a public endpoint or token
43
+ * hook by application code.
44
+ *
45
+ * @internal
46
+ */
47
+ grantProvider?: (input: CoordinationGatewayGrantRequest) => Promise<CoordinationGatewayGrant>;
48
+ }
49
+ interface CoordinationGatewayGrantRequest {
50
+ avenue: {
51
+ kind: 'user' | 'space' | 'room' | 'session';
52
+ id: string;
53
+ };
54
+ deviceId: string;
55
+ runtimeInstanceId: string;
56
+ ticketFingerprint: string;
57
+ purpose: 'presence' | 'device-control';
58
+ refreshGrant?: string;
59
+ }
60
+ interface CoordinationGatewayGrant {
61
+ protocolVersion: 1 | 2;
62
+ gatewayUrl: string;
63
+ routeKey: string;
64
+ token: string;
65
+ expiresAtMs: number;
66
+ avenue: CoordinationGatewayGrantRequest['avenue'];
32
67
  }
33
68
 
34
69
  interface AppLimits {
@@ -131,6 +166,8 @@ interface ChannelDescriptor {
131
166
  readiness: ChannelReadinessMode;
132
167
  promotionPolicy?: ChannelPromotionPolicy;
133
168
  signalingPolicy?: ChannelSignalingPolicy;
169
+ /** Drop queued superseded payloads while retaining reliable delivery for the newest state. */
170
+ delivery?: 'reliable' | 'latest-state';
134
171
  description?: string;
135
172
  }
136
173
  type ProtocolName = 'iroh' | 'iroh-quic' | 'iroh-relay' | 'iroh-lan' | 'ble' | 'webrtc' | 'webrtc-lan' | 'webrtc-turn' | 'moq';
@@ -182,8 +219,6 @@ interface ProtocolCapability {
182
219
  reason?: string;
183
220
  }
184
221
  type ProtocolCapabilityMap = Record<ProtocolName, ProtocolCapability>;
185
- /** Space discovery always uses namespace-scoped Firebase tokens. */
186
- type SpaceAuthMode = 'scoped-token';
187
222
  type SpaceTokenProvider = () => Promise<{
188
223
  customToken: string;
189
224
  uid?: string;
@@ -242,6 +277,11 @@ interface ClientOptions {
242
277
  * Hosted production clients receive the managed production default.
243
278
  */
244
279
  coordinationGateway?: CoordinationGatewayOptions;
280
+ /** @internal One capability maps to exactly one gateway avenue. */
281
+ coordinationAvenueOverride?: {
282
+ kind: 'user' | 'space' | 'room' | 'session';
283
+ id: string;
284
+ };
245
285
  /**
246
286
  * Supplies the provider-neutral platform-attestation token used by the
247
287
  * configured coordination control plane.
@@ -1040,4 +1080,4 @@ interface JoinRequest {
1040
1080
  state: 'pending' | 'accepted' | 'rejected';
1041
1081
  }
1042
1082
 
1043
- export type { ProtocolImplementationKind as $, AuthMode as A, BackendPeerBiStream as B, ConnectDeviceResult as C, DiscoveryMode as D, ExplicitFileDataSendParams as E, ManagedDeviceConnectOptions as F, GrantScope as G, PeerState as H, ISignalingBackend as I, PeerHealth as J, JoinRoomOptions as K, LocalDeviceInfo as L, ManagedConnectionRecord as M, NativeManagedSessionStartResult as N, PeerScope as O, PeerSessionSnapshot as P, DevicePresenceStatus as Q, ResolvedPeerIdentity as R, SpaceAuthMode as S, TransportLatencySnapshot as T, PeerLifecycleStatus as U, ProtocolCapability as V, ProtocolCapabilityMap as W, ApplicationCryptoStreamTools as X, AppLimits as Y, ApplicationCryptoBiStream as Z, ProtocolBaseName as _, SpaceTokenProvider as a, ProtocolLocality as a0, RouteDescriptor as a1, RouteFamily as a2, RouteImplementationKind as a3, SignalingOptions as a4, RoomCreationMode as a5, ScanningLoopOptions as a6, ScanningLoopHandle as a7, RuntimeBootstrapOptions as a8, RuntimeBootstrapResult as a9, ManagedApplicationRouteOptions as aa, JoinRequest as ab, ConnectDeviceHooks as b, ConnectDeviceOptions as c, SignalingMode as d, ClientOptions as e, RuntimeIdentity as f, RoomMember as g, Device as h, DeviceStatusSnapshot as i, SignalingEnvelope as j, DeviceEvent as k, DesiredPeerProjection as l, SignalingSession as m, SessionEvent as n, BackendPeerUniStream as o, NativeConnectParams as p, NativeConnectResult as q, BackendConnectionState as r, ConnectionOptions as s, ApplicationPayloadCrypto as t, ApplicationPayloadReadinessOptions as u, ApplicationPayloadRouteOptions as v, ProtocolName as w, ApplicationPayloadSendOptions as x, ChannelDescriptor as y, IncomingStreamChannelMetadata as z };
1083
+ export type { AppLimits as $, ApplicationPayloadCrypto as A, BackendConnectionState as B, ConnectionOptions as C, Device as D, ExplicitFileDataSendParams as E, SessionEvent as F, NativeManagedSessionStartResult as G, GrantScope as H, IncomingStreamChannelMetadata as I, JoinRoomOptions as J, RouteDescriptor as K, LocalDeviceInfo as L, ManagedDeviceConnectOptions as M, NativeConnectParams as N, ProtocolCapability as O, ProtocolName as P, ProtocolCapabilityMap as Q, RuntimeIdentity as R, SignalingSession as S, TransportLatencySnapshot as T, ApplicationCryptoStreamTools as U, ApplicationCryptoBiStream as V, RouteFamily as W, RouteImplementationKind as X, ConnectDeviceHooks as Y, ConnectDeviceOptions as Z, ConnectDeviceResult as _, ApplicationPayloadReadinessOptions as a, SignalingOptions as a0, RoomCreationMode as a1, ScanningLoopOptions as a2, ScanningLoopHandle as a3, RuntimeBootstrapOptions as a4, RuntimeBootstrapResult as a5, ManagedApplicationRouteOptions as a6, JoinRequest as a7, SpaceTokenProvider as a8, ApplicationPayloadRouteOptions as b, ApplicationPayloadSendOptions as c, PeerState as d, PeerScope as e, PeerHealth as f, ChannelDescriptor as g, DeviceStatusSnapshot as h, ClientOptions as i, RoomMember as j, DevicePresenceStatus as k, PeerLifecycleStatus as l, PeerSessionSnapshot as m, DiscoveryMode as n, AuthMode as o, SignalingMode as p, ISignalingBackend as q, SignalingEnvelope as r, BackendPeerBiStream as s, BackendPeerUniStream as t, ManagedConnectionRecord as u, ResolvedPeerIdentity as v, DeviceEvent as w, DesiredPeerProjection as x, CoreClientBridgeHost as y, NativeConnectResult as z };