p2party 0.14.3 → 0.14.7

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 (125) hide show
  1. package/README.md +229 -29
  2. package/docs/getting-started.md +15 -0
  3. package/docs/protocol-v4-security.md +40 -0
  4. package/docs/references.md +28 -8
  5. package/docs/session-api.md +10 -2
  6. package/lib/api/signalingServerApi.d.ts +13 -2
  7. package/lib/api/webrtc/applyIceConfiguration.d.ts +9 -0
  8. package/lib/api/webrtc/dataChannelHandler.d.ts +10 -0
  9. package/lib/api/webrtc/deleteRoomData.d.ts +13 -0
  10. package/lib/api/webrtc/disconnectFromAllRoomsQuery.d.ts +2 -1
  11. package/lib/api/webrtc/disconnectFromRoomQuery.d.ts +2 -1
  12. package/lib/api/webrtc/disconnectQuery.d.ts +2 -1
  13. package/lib/api/webrtc/iceRepair.d.ts +3 -1
  14. package/lib/api/webrtc/index.d.ts +2 -1
  15. package/lib/api/webrtc/interfaces.d.ts +37 -0
  16. package/lib/api/webrtc/negotiationLock.d.ts +24 -0
  17. package/lib/api/webrtc/pendingOffer.d.ts +29 -0
  18. package/lib/api/webrtc/rebindDeadline.d.ts +61 -0
  19. package/lib/api/webrtc/remoteTransportChange.d.ts +142 -0
  20. package/lib/api/webrtc/retiredRemoteTransports.d.ts +70 -0
  21. package/lib/api/webrtc/roomEdgeBudget.d.ts +10 -0
  22. package/lib/api/webrtc/setDescriptionQuery.d.ts +8 -1
  23. package/lib/api/webrtc/settleOnClose.d.ts +36 -0
  24. package/lib/blindRendezvous/admissionInput.d.ts +11 -0
  25. package/lib/blindRendezvous/admissionPolicy.d.ts +217 -0
  26. package/lib/blindRendezvous/canonicalSchema.d.ts +139 -0
  27. package/lib/blindRendezvous/carrierEnvelope.d.ts +105 -0
  28. package/lib/blindRendezvous/coreReduce.d.ts +199 -0
  29. package/lib/blindRendezvous/derivations.d.ts +381 -0
  30. package/lib/blindRendezvous/identityHelloAdmission.d.ts +89 -0
  31. package/lib/blindRendezvous/identityHelloAdmissionPersistence.d.ts +133 -0
  32. package/lib/blindRendezvous/identityHelloHistoricalEvidence.d.ts +52 -0
  33. package/lib/blindRendezvous/identityHelloOpen.d.ts +167 -0
  34. package/lib/blindRendezvous/identityHelloTrial.d.ts +271 -0
  35. package/lib/blindRendezvous/localAdmissibleProject.d.ts +101 -0
  36. package/lib/blindRendezvous/localPresenceKeyBinding.d.ts +108 -0
  37. package/lib/blindRendezvous/localStableIdentityCustody.d.ts +46 -0
  38. package/lib/blindRendezvous/normativeKernel.d.ts +222 -0
  39. package/lib/blindRendezvous/operation.d.ts +137 -0
  40. package/lib/blindRendezvous/operationPayload.d.ts +134 -0
  41. package/lib/blindRendezvous/pairBootstrapSuite.d.ts +93 -0
  42. package/lib/blindRendezvous/pairCrypto.d.ts +122 -0
  43. package/lib/blindRendezvous/pairLedger.d.ts +154 -0
  44. package/lib/blindRendezvous/pairOpenBudget.d.ts +67 -0
  45. package/lib/blindRendezvous/pairOpenReservation.d.ts +157 -0
  46. package/lib/blindRendezvous/pairPlaintext.d.ts +240 -0
  47. package/lib/blindRendezvous/pairStepEnvelope.d.ts +60 -0
  48. package/lib/blindRendezvous/plannerState.d.ts +61 -0
  49. package/lib/blindRendezvous/projections.d.ts +71 -0
  50. package/lib/blindRendezvous/publicWindow.d.ts +330 -0
  51. package/lib/blindRendezvous/retainedOperationStore.d.ts +187 -0
  52. package/lib/blindRendezvous/roomInviteV2.d.ts +92 -0
  53. package/lib/blindRendezvous/roomPolicyV4.d.ts +90 -0
  54. package/lib/blindRendezvous/schemas.d.ts +221 -0
  55. package/lib/blindRendezvous/storeDescriptor.d.ts +160 -0
  56. package/lib/cryptography/aeadWasm.d.ts +18 -0
  57. package/lib/cryptography/byteInput.d.ts +12 -0
  58. package/lib/cryptography/carrierAead.d.ts +23 -0
  59. package/lib/cryptography/chacha20poly1305.d.ts +7 -0
  60. package/lib/cryptography/fips202.d.ts +10 -0
  61. package/lib/cryptography/hpke.d.ts +84 -0
  62. package/lib/cryptography/hpkeSuite.d.ts +39 -0
  63. package/lib/cryptography/hybridKem.d.ts +42 -0
  64. package/lib/cryptography/hybridKemSuite.d.ts +22 -0
  65. package/lib/cryptography/interfaces.d.ts +3 -0
  66. package/lib/cryptography/mlkem.d.ts +27 -1
  67. package/lib/cryptography/mnemonic.d.ts +65 -1
  68. package/lib/cryptography/ownedEd25519KeyMaterial.d.ts +27 -0
  69. package/lib/cryptography/webCryptoSha256.d.ts +20 -0
  70. package/lib/cryptography/x25519.d.ts +18 -0
  71. package/lib/cryptography/xchacha20poly1305.d.ts +7 -0
  72. package/lib/db/api.d.ts +6 -3
  73. package/lib/db/identityEd25519ClientBoundary.d.ts +13 -0
  74. package/lib/db/src/getDB.d.ts +2 -2
  75. package/lib/db/types.d.ts +52 -4
  76. package/lib/db.worker.js +1 -1
  77. package/lib/handlers/coverChannelRegistry.d.ts +22 -0
  78. package/lib/handlers/edgeTeardownFollowUp.d.ts +35 -0
  79. package/lib/handlers/handleChallenge.d.ts +2 -1
  80. package/lib/handlers/handleConnectToPeer.d.ts +1 -1
  81. package/lib/handlers/handleHandshake.d.ts +2 -6
  82. package/lib/handlers/handleSendMessage.d.ts +60 -7
  83. package/lib/handlers/handleWebSocketMessage.d.ts +1 -1
  84. package/lib/handlers/handshakeCore.d.ts +2 -7
  85. package/lib/handlers/handshakeFrame.d.ts +25 -0
  86. package/lib/handlers/ratchetGateWait.d.ts +13 -0
  87. package/lib/handlers/requestRoom.d.ts +30 -0
  88. package/lib/handlers/roomResponse.d.ts +53 -0
  89. package/lib/index.d.ts +97 -12
  90. package/lib/index.js +1 -1
  91. package/lib/index.min.js +1 -1
  92. package/lib/index.mjs +1 -1
  93. package/lib/libcrypto.provenance.json +5 -5
  94. package/lib/libcrypto.wasm +0 -0
  95. package/lib/middleware/roomListenerMiddleware.d.ts +4 -1
  96. package/lib/reducers/commonSlice.d.ts +3 -2
  97. package/lib/reducers/keyPairSlice.d.ts +3 -6
  98. package/lib/reducers/roomSlice.d.ts +81 -5
  99. package/lib/reducers/signalingServerSlice.d.ts +3 -2
  100. package/lib/session.d.ts +6 -3
  101. package/lib/session.js +1 -1
  102. package/lib/session.mjs +1 -1
  103. package/lib/store.d.ts +4 -2
  104. package/lib/utils/constants.d.ts +12 -0
  105. package/lib/utils/correlationId.d.ts +4 -0
  106. package/lib/utils/identityRestore.d.ts +108 -0
  107. package/lib/utils/interfaces.d.ts +25 -6
  108. package/lib/utils/roomConnectAdmission.d.ts +15 -0
  109. package/lib/utils/roomLeaveCoordinator.d.ts +38 -0
  110. package/lib/utils/roomRequestCoordinator.d.ts +104 -0
  111. package/lib/utils/roomRosterReconciler.d.ts +83 -0
  112. package/lib/utils/sdpFingerprint.d.ts +6 -0
  113. package/lib/utils/signalingAttemptLifecycle.d.ts +33 -0
  114. package/lib/utils/signalingAuth.d.ts +21 -2
  115. package/lib/utils/signalingBounds.d.ts +6 -0
  116. package/lib/utils/signalingFrame.d.ts +21 -0
  117. package/lib/utils/signalingHeartbeatWatchdog.d.ts +45 -0
  118. package/lib/utils/signalingIngressQueue.d.ts +49 -0
  119. package/lib/utils/signalingPeerRequestDebouncer.d.ts +13 -0
  120. package/lib/utils/signalingRoomLifecycle.d.ts +7 -0
  121. package/lib/utils/signalingRoomOperationLifecycle.d.ts +14 -0
  122. package/lib/utils/signalingServerBoundary.d.ts +11 -0
  123. package/lib/utils/terminalSettlement.d.ts +53 -0
  124. package/lib/utils/transportIdentity.d.ts +5 -0
  125. package/package.json +1 -1
package/lib/index.d.ts CHANGED
@@ -1,19 +1,27 @@
1
1
  import { createSession, generateSessionIdentity, restoreSession } from "./session";
2
+ import { validateMnemonic, validateMnemonicWords } from "./cryptography/mnemonic";
2
3
  import { setWasmSourceUrl } from "./cryptography/wasmLoader";
3
4
  import { setDebugLogging } from "./utils/debug";
4
5
  import { WIRE_CHUNK_FRAME_LEN } from "./utils/constants";
5
6
  import { DEFAULT_ROOM_POLICY_V1, MIN_COVER_CADENCE_MS, MAX_COVER_CADENCE_MS, MAX_COVER_LANES, MAX_COVER_FRAMES_PER_CELL, MIN_COVER_SLOT_MS, canonicalizeRoomPolicyV1, decodeRoomPolicyV1, encodeRoomPolicyV1, hashRoomPolicyV1, roomPoliciesEqualV1, validateRoomPolicyV1 } from "./roomPolicy";
6
- import type { State } from "./store";
7
+ import { InvalidRecoveryPhraseError } from "./utils/identityRestore";
8
+ import { RemoteRoomRevocationUnconfirmedError } from "./utils/roomLeaveCoordinator";
9
+ import type { State as InternalState } from "./store";
7
10
  import type { Room, Peer, Channel, Message } from "./reducers/roomSlice";
8
11
  import type { SignalingState } from "./reducers/signalingServerSlice";
9
12
  import type { MimeType, FileExtension } from "./utils/messageTypes";
10
- import type { WebSocketMessageRoomIdRequest, WebSocketMessageRoomIdResponse, WebSocketMessageChallengeRequest, WebSocketMessageChallengeResponse, WebSocketMessageDescriptionSend, WebSocketMessageDescriptionReceive, WebSocketMessageCandidateSend, WebSocketMessageCandidateReceive, WebSocketMessageError } from "./utils/interfaces";
13
+ import type { WebSocketMessageRoomIdRequest, WebSocketMessageRoomIdResponse, WebSocketMessageChallengeRequest, WebSocketMessageChallengeResponse, WebSocketMessageDescriptionSend, WebSocketMessageDescriptionReceive, WebSocketMessageCandidateSend, WebSocketMessageCandidateReceive, WebSocketMessageLeaveRoomRequest, WebSocketMessageRoomLeftResponse, WebSocketMessageError } from "./utils/interfaces";
11
14
  import type { RoomData } from "./api/webrtc/interfaces";
12
- import type { BlacklistedPeer, UsernamedPeer, UniqueRoom, RoomStats } from "./db/types";
15
+ import type { BlacklistedPeer, IdentityDerivation, UsernamedPeer, UniqueRoom, RoomStats } from "./db/types";
16
+ import type { CreatedRecoverableIdentity, CreateRecoverableIdentityOptions, RestoredIdentity } from "./utils/identityRestore";
13
17
  import type { KeyPair } from "./reducers/keyPairSlice";
14
18
  import type { RoomPolicyV1 } from "./roomPolicy";
15
19
  import type { SendMessageResult } from "./handlers/handleSendMessage";
16
20
  import { MessageDeliveryError } from "./handlers/handleSendMessage";
21
+ /** Public projection; reducer state keeps its additional fields normalized. */
22
+ type State = Omit<InternalState, "rooms"> & {
23
+ rooms: Room[];
24
+ };
17
25
  export interface ConnectRoomOptions {
18
26
  /**
19
27
  * Canonical public room policy. Omit on reconnect to preserve the room's
@@ -121,11 +129,69 @@ export interface MessageTransferHandle {
121
129
  /** Cancels exactly this logical send, even before hashing/WASM setup finishes. */
122
130
  cancel(): Promise<void>;
123
131
  }
132
+ /**
133
+ * Adopt the identity a recovery phrase encodes, in place of the current one.
134
+ *
135
+ * An invalid phrase rejects with `InvalidRecoveryPhraseError` before anything
136
+ * is disconnected, so a typo costs nothing. Only a phrase that derives a key
137
+ * opens the exclusive boundary: signaling is disconnected, every room's WebRTC
138
+ * transport is brought to a terminal state, the cross-signed X25519 identity is
139
+ * deleted (the next connection regenerates and re-signs it), the Ed25519 key is
140
+ * persisted, and the identity is adopted in memory last.
141
+ *
142
+ * Rooms, messages, the address book and cached room PINs are all kept. Peers
143
+ * see a new identity key for this device, exactly as they would after a purge,
144
+ * so the address book will report an identity change.
145
+ *
146
+ * Signaling is left disconnected: call `connect(roomUrl)` afterwards to come
147
+ * back online under the restored identity.
148
+ *
149
+ * @param mnemonic - The recovery phrase, in any transcription
150
+ * @param password - The passphrase the identity was created with, if any
151
+ * @returns The restored Ed25519 public key, hex-encoded
152
+ */
153
+ declare const restoreIdentityFromMnemonic: (mnemonic: string, password?: string) => Promise<RestoredIdentity>;
154
+ /**
155
+ * Replace the current identity with a freshly generated, recoverable one and
156
+ * return the phrase that restores it.
157
+ *
158
+ * The phrase is shown once and stored nowhere: it is the only backup, and a
159
+ * caller that drops it before the user has written it down has lost it. A
160
+ * `password` is folded into the derivation and is equally unrecoverable — the
161
+ * phrase alone will not restore the identity without it.
162
+ *
163
+ * As with `restoreIdentityFromMnemonic`, signaling is left disconnected; call
164
+ * `connect(roomUrl)` afterwards.
165
+ *
166
+ * @param options - Entropy bits (128 gives 12 words, 256 gives 24) and an
167
+ * optional passphrase
168
+ * @returns The recovery phrase and the Ed25519 public key it now derives
169
+ */
170
+ declare const createRecoverableIdentity: (options?: CreateRecoverableIdentityOptions) => Promise<CreatedRecoverableIdentity>;
171
+ /** What the current account key is, and whether a phrase can reproduce it. */
172
+ export interface IdentityBackupStatus {
173
+ publicKey: string;
174
+ derivation: IdentityDerivation | null;
175
+ }
176
+ /**
177
+ * Whether the identity in use can be backed up at all.
178
+ *
179
+ * `derivation` is "mnemonic" only for an identity that was created from a
180
+ * recovery phrase; a "random" one cannot be exported, and the only way to get a
181
+ * recoverable identity is `createRecoverableIdentity`, which replaces it. It is
182
+ * null when no identity is stored yet, and also when the stored flag no longer
183
+ * describes the stored key — an unreadable provenance hint must never be
184
+ * reported as "this can be backed up".
185
+ *
186
+ * @returns The current Ed25519 public key (empty when there is none) and how it
187
+ * came into being
188
+ */
189
+ declare const getIdentityBackupStatus: () => Promise<IdentityBackupStatus>;
124
190
  export declare const p2party: {
125
191
  store: import("@reduxjs/toolkit").EnhancedStore<{
126
192
  commonState: import("./reducers/commonSlice").CommonState;
127
193
  keyPair: KeyPair;
128
- rooms: Room[];
194
+ rooms: import("./reducers/roomSlice").ManagedRoom[];
129
195
  signalingServer: SignalingState;
130
196
  signalingServerApi: import("@reduxjs/toolkit/query").CombinedState<{
131
197
  connectWebSocket: import("@reduxjs/toolkit/query").MutationDefinition<string, import("@reduxjs/toolkit/query").BaseQueryFn<import("./api/signalingServerApi").WebSocketParams, undefined>, never, undefined, "signalingServerApi", undefined>;
@@ -137,6 +203,7 @@ export declare const p2party: {
137
203
  connectWithPeer: import("@reduxjs/toolkit/query").MutationDefinition<import("./api/webrtc/interfaces").RTCPeerConnectionParams, import("@reduxjs/toolkit/query").BaseQueryFn<import("./api/webrtc/baseQuery").RTCPeerConnectionParamsExtend, undefined>, never, undefined, "webrtcApi", undefined>;
138
204
  setDescription: import("@reduxjs/toolkit/query").MutationDefinition<import("./api/webrtc/interfaces").RTCSetDescriptionParams, import("@reduxjs/toolkit/query").BaseQueryFn<import("./api/webrtc/baseQuery").RTCPeerConnectionParamsExtend, undefined>, never, undefined, "webrtcApi", undefined>;
139
205
  setCandidate: import("@reduxjs/toolkit/query").MutationDefinition<import("./api/webrtc/interfaces").RTCSetCandidateParams, import("@reduxjs/toolkit/query").BaseQueryFn<import("./api/webrtc/baseQuery").RTCPeerConnectionParamsExtend, undefined>, never, undefined, "webrtcApi", undefined>;
206
+ applyRoomConfiguration: import("@reduxjs/toolkit/query").MutationDefinition<import("./api/webrtc/interfaces").RTCApplyRoomConfigurationParams, import("@reduxjs/toolkit/query").BaseQueryFn<import("./api/webrtc/baseQuery").RTCPeerConnectionParamsExtend, undefined>, never, undefined, "webrtcApi", undefined>;
140
207
  openChannel: import("@reduxjs/toolkit/query").MutationDefinition<import("./api/webrtc/interfaces").RTCOpenChannelParams, import("@reduxjs/toolkit/query").BaseQueryFn<import("./api/webrtc/baseQuery").RTCPeerConnectionParamsExtend, undefined>, never, undefined, "webrtcApi", undefined>;
141
208
  sendMessage: import("@reduxjs/toolkit/query").MutationDefinition<import("./api/webrtc/interfaces").RTCSendMessageParams, import("@reduxjs/toolkit/query").BaseQueryFn<import("./api/webrtc/baseQuery").RTCPeerConnectionParamsExtend, undefined>, never, SendMessageResult | undefined, "webrtcApi", undefined>;
142
209
  disconnect: import("@reduxjs/toolkit/query").MutationDefinition<import("./api/webrtc/interfaces").RTCDisconnectParams, import("@reduxjs/toolkit/query").BaseQueryFn<import("./api/webrtc/baseQuery").RTCPeerConnectionParamsExtend, undefined>, never, undefined, "webrtcApi", undefined>;
@@ -150,7 +217,7 @@ export declare const p2party: {
150
217
  dispatch: import("redux-thunk").ThunkDispatch<{
151
218
  commonState: import("./reducers/commonSlice").CommonState;
152
219
  keyPair: KeyPair;
153
- rooms: Room[];
220
+ rooms: import("./reducers/roomSlice").ManagedRoom[];
154
221
  signalingServer: SignalingState;
155
222
  signalingServerApi: import("@reduxjs/toolkit/query").CombinedState<{
156
223
  connectWebSocket: import("@reduxjs/toolkit/query").MutationDefinition<string, import("@reduxjs/toolkit/query").BaseQueryFn<import("./api/signalingServerApi").WebSocketParams, undefined>, never, undefined, "signalingServerApi", undefined>;
@@ -162,6 +229,7 @@ export declare const p2party: {
162
229
  connectWithPeer: import("@reduxjs/toolkit/query").MutationDefinition<import("./api/webrtc/interfaces").RTCPeerConnectionParams, import("@reduxjs/toolkit/query").BaseQueryFn<import("./api/webrtc/baseQuery").RTCPeerConnectionParamsExtend, undefined>, never, undefined, "webrtcApi", undefined>;
163
230
  setDescription: import("@reduxjs/toolkit/query").MutationDefinition<import("./api/webrtc/interfaces").RTCSetDescriptionParams, import("@reduxjs/toolkit/query").BaseQueryFn<import("./api/webrtc/baseQuery").RTCPeerConnectionParamsExtend, undefined>, never, undefined, "webrtcApi", undefined>;
164
231
  setCandidate: import("@reduxjs/toolkit/query").MutationDefinition<import("./api/webrtc/interfaces").RTCSetCandidateParams, import("@reduxjs/toolkit/query").BaseQueryFn<import("./api/webrtc/baseQuery").RTCPeerConnectionParamsExtend, undefined>, never, undefined, "webrtcApi", undefined>;
232
+ applyRoomConfiguration: import("@reduxjs/toolkit/query").MutationDefinition<import("./api/webrtc/interfaces").RTCApplyRoomConfigurationParams, import("@reduxjs/toolkit/query").BaseQueryFn<import("./api/webrtc/baseQuery").RTCPeerConnectionParamsExtend, undefined>, never, undefined, "webrtcApi", undefined>;
165
233
  openChannel: import("@reduxjs/toolkit/query").MutationDefinition<import("./api/webrtc/interfaces").RTCOpenChannelParams, import("@reduxjs/toolkit/query").BaseQueryFn<import("./api/webrtc/baseQuery").RTCPeerConnectionParamsExtend, undefined>, never, undefined, "webrtcApi", undefined>;
166
234
  sendMessage: import("@reduxjs/toolkit/query").MutationDefinition<import("./api/webrtc/interfaces").RTCSendMessageParams, import("@reduxjs/toolkit/query").BaseQueryFn<import("./api/webrtc/baseQuery").RTCPeerConnectionParamsExtend, undefined>, never, SendMessageResult | undefined, "webrtcApi", undefined>;
167
235
  disconnect: import("@reduxjs/toolkit/query").MutationDefinition<import("./api/webrtc/interfaces").RTCDisconnectParams, import("@reduxjs/toolkit/query").BaseQueryFn<import("./api/webrtc/baseQuery").RTCPeerConnectionParamsExtend, undefined>, never, undefined, "webrtcApi", undefined>;
@@ -173,10 +241,18 @@ export declare const p2party: {
173
241
  }, never, "webrtcApi">;
174
242
  }, undefined, import("redux").UnknownAction> & ((action: import("redux").Action<"listenerMiddleware/add">) => import("@reduxjs/toolkit").UnsubscribeListener);
175
243
  }>, import("redux").StoreEnhancer]>>;
176
- commonStateSelector: (state: State) => import("./reducers/commonSlice").CommonState;
177
- signalingServerSelector: (state: State) => SignalingState;
178
- roomSelector: (state: State) => Room[];
179
- keyPairSelector: (state: State) => KeyPair;
244
+ commonStateSelector: (state: {
245
+ readonly commonState: import("./reducers/commonSlice").CommonState;
246
+ }) => import("./reducers/commonSlice").CommonState;
247
+ signalingServerSelector: (state: {
248
+ readonly signalingServer: SignalingState;
249
+ }) => SignalingState;
250
+ roomSelector: <TRoom extends Room>(state: {
251
+ readonly rooms: TRoom[];
252
+ }) => TRoom[];
253
+ keyPairSelector: (state: {
254
+ readonly keyPair: KeyPair;
255
+ }) => KeyPair;
180
256
  connect: (roomUrl: string, signalingServerUrl?: string, rtcConfig?: RTCConfiguration, options?: ConnectRoomOptions) => Promise<void>;
181
257
  connectToSignalingServer: (roomUrl: string, signalingServerUrl?: string) => Promise<void>;
182
258
  disconnectFromSignalingServer: () => Promise<void>;
@@ -242,7 +318,13 @@ export declare const p2party: {
242
318
  generateKeyPair: (module?: import("./cryptography/libcrypto").LibCrypto) => Promise<import("./cryptography/interfaces").SignKeyPair>;
243
319
  newKeyPair: (module?: import("./cryptography/libcrypto").LibCrypto) => Promise<import("./cryptography/interfaces").SignKeyPair>;
244
320
  generateMnemonic: (strength?: 128 | 160 | 192 | 224 | 256 | 288 | 320 | 352 | 384 | 416 | 448 | 480 | 512) => Promise<string>;
245
- keyPairFromMnemonic: (mnemonic: string, password?: string) => Promise<import("./cryptography/interfaces").SignKeyPair>;
321
+ keyPairFromMnemonic: (mnemonic: string, password?: string, module?: import("./cryptography/libcrypto").LibCrypto) => Promise<import("./cryptography/interfaces").SignKeyPair>;
322
+ validateMnemonic: (mnemonic: string) => Promise<boolean>;
323
+ validateMnemonicWords: (words: string) => import(".").MnemonicValidation;
324
+ createRecoverableIdentity: (options?: CreateRecoverableIdentityOptions) => Promise<CreatedRecoverableIdentity>;
325
+ restoreIdentityFromMnemonic: (mnemonic: string, password?: string) => Promise<RestoredIdentity>;
326
+ getIdentityBackupStatus: () => Promise<IdentityBackupStatus>;
327
+ InvalidRecoveryPhraseError: typeof InvalidRecoveryPhraseError;
246
328
  MIN_CHUNKS: number;
247
329
  MIN_CHUNK_SIZE: number;
248
330
  MAX_CHUNK_SIZE: number;
@@ -254,6 +336,7 @@ export declare const p2party: {
254
336
  MIN_COVER_SLOT_MS: number;
255
337
  validateRoomPolicyV1: (policy: RoomPolicyV1) => void;
256
338
  MessageDeliveryError: typeof MessageDeliveryError;
339
+ RemoteRoomRevocationUnconfirmedError: typeof RemoteRoomRevocationUnconfirmedError;
257
340
  joinRoom: (roomUrl: string, signalingServerUrl?: string, rtcConfig?: RTCConfiguration, options?: ConnectRoomOptions & WaitForRoomOptions) => Promise<Room>;
258
341
  waitForRoom: (roomUrl: string, options?: WaitForRoomOptions) => Promise<Room>;
259
342
  waitForPeers: (roomId: string, options?: WaitForPeersOptions) => Promise<Peer[]>;
@@ -348,11 +431,13 @@ declare global {
348
431
  p2party: typeof p2party;
349
432
  }
350
433
  }
351
- export type { State, Room, Peer, Channel, Message, RoomData, MimeType, FileExtension, UsernamedPeer, BlacklistedPeer, UniqueRoom, RoomStats, SignalingState, KeyPair, RoomPolicyV1, WebSocketMessageRoomIdRequest, WebSocketMessageRoomIdResponse, WebSocketMessageChallengeRequest, WebSocketMessageChallengeResponse, WebSocketMessageDescriptionSend, WebSocketMessageDescriptionReceive, WebSocketMessageCandidateSend, WebSocketMessageCandidateReceive, WebSocketMessageError, };
352
- export { createSession, restoreSession, generateSessionIdentity, setWasmSourceUrl, MessageDeliveryError, joinRoom, waitForRoom, waitForPeers, onMessage, setDebugLogging, };
434
+ export type { State, Room, Peer, Channel, Message, RoomData, MimeType, FileExtension, UsernamedPeer, BlacklistedPeer, UniqueRoom, RoomStats, SignalingState, KeyPair, RoomPolicyV1, IdentityDerivation, WebSocketMessageRoomIdRequest, WebSocketMessageRoomIdResponse, WebSocketMessageChallengeRequest, WebSocketMessageChallengeResponse, WebSocketMessageDescriptionSend, WebSocketMessageDescriptionReceive, WebSocketMessageCandidateSend, WebSocketMessageCandidateReceive, WebSocketMessageLeaveRoomRequest, WebSocketMessageRoomLeftResponse, WebSocketMessageError, };
435
+ export { createSession, restoreSession, generateSessionIdentity, setWasmSourceUrl, MessageDeliveryError, RemoteRoomRevocationUnconfirmedError, createRecoverableIdentity, restoreIdentityFromMnemonic, getIdentityBackupStatus, validateMnemonic, validateMnemonicWords, InvalidRecoveryPhraseError, joinRoom, waitForRoom, waitForPeers, onMessage, setDebugLogging, };
353
436
  export { DEFAULT_ROOM_POLICY_V1, canonicalizeRoomPolicyV1, decodeRoomPolicyV1, encodeRoomPolicyV1, hashRoomPolicyV1, roomPoliciesEqualV1, };
354
437
  export { MIN_COVER_CADENCE_MS, MAX_COVER_CADENCE_MS, MAX_COVER_LANES, MAX_COVER_FRAMES_PER_CELL, MIN_COVER_SLOT_MS, validateRoomPolicyV1, WIRE_CHUNK_FRAME_LEN, };
355
438
  export type { TransferAck } from "./handlers/reconcile";
439
+ export type { MnemonicValidation } from "./cryptography/mnemonic";
440
+ export type { CreatedRecoverableIdentity, CreateRecoverableIdentityOptions, RestoredIdentity, } from "./utils/identityRestore";
356
441
  export type { RoomAuthMode, RoomCoverMode, RoomPqMode, RoomRendezvousMode, } from "./roomPolicy";
357
442
  export type { CreateSessionOptions, EncryptedSessionMessage, GenerateSessionIdentityOptions, GeneratedSessionIdentity, HandshakeTransport, LocalSessionIdentity, P2PartySession, SessionChannelBinding, SessionCryptoOptions, } from "./session";
358
443
  export default p2party;