@ajna-inc/vaults 0.1.0 → 0.1.2

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 (208) hide show
  1. package/build/VaultsApi.d.ts +363 -0
  2. package/build/VaultsApi.js +450 -248
  3. package/build/VaultsApi.js.map +1 -0
  4. package/build/VaultsEvents.d.ts +227 -0
  5. package/build/VaultsEvents.js +8 -0
  6. package/build/VaultsEvents.js.map +1 -0
  7. package/build/VaultsModule.d.ts +64 -0
  8. package/build/VaultsModule.js +43 -18
  9. package/build/VaultsModule.js.map +1 -0
  10. package/build/crypto/wasm/VaultCrypto.d.ts +19 -0
  11. package/build/crypto/wasm/VaultCrypto.js +29 -42
  12. package/build/crypto/wasm/VaultCrypto.js.map +1 -0
  13. package/build/errors/BadSuiteError.d.ts +8 -0
  14. package/build/errors/BadSuiteError.js +8 -25
  15. package/build/errors/BadSuiteError.js.map +1 -0
  16. package/build/errors/DecryptAeadError.d.ts +8 -0
  17. package/build/errors/DecryptAeadError.js +8 -25
  18. package/build/errors/DecryptAeadError.js.map +1 -0
  19. package/build/errors/DecryptKemError.d.ts +8 -0
  20. package/build/errors/DecryptKemError.js +8 -25
  21. package/build/errors/DecryptKemError.js.map +1 -0
  22. package/build/errors/PolicyError.d.ts +8 -0
  23. package/build/errors/PolicyError.js +8 -25
  24. package/build/errors/PolicyError.js.map +1 -0
  25. package/build/errors/VaultError.d.ts +52 -0
  26. package/build/errors/VaultError.js +19 -30
  27. package/build/errors/VaultError.js.map +1 -0
  28. package/build/errors/index.d.ts +5 -0
  29. package/build/errors/index.js +1 -0
  30. package/build/errors/index.js.map +1 -0
  31. package/build/handlers/CreateVaultHandler.d.ts +18 -0
  32. package/build/handlers/CreateVaultHandler.js +75 -0
  33. package/build/handlers/CreateVaultHandler.js.map +1 -0
  34. package/build/handlers/DeleteVaultHandler.d.ts +17 -0
  35. package/build/handlers/DeleteVaultHandler.js +48 -0
  36. package/build/handlers/DeleteVaultHandler.js.map +1 -0
  37. package/build/handlers/DenyAccessHandler.d.ts +15 -0
  38. package/build/handlers/DenyAccessHandler.js +39 -0
  39. package/build/handlers/DenyAccessHandler.js.map +1 -0
  40. package/build/handlers/DenyShareHandler.d.ts +17 -0
  41. package/build/handlers/DenyShareHandler.js +49 -0
  42. package/build/handlers/DenyShareHandler.js.map +1 -0
  43. package/build/handlers/GrantAccessHandler.d.ts +17 -0
  44. package/build/handlers/GrantAccessHandler.js +59 -0
  45. package/build/handlers/GrantAccessHandler.js.map +1 -0
  46. package/build/handlers/ProvideShareHandler.d.ts +17 -0
  47. package/build/handlers/ProvideShareHandler.js +77 -0
  48. package/build/handlers/ProvideShareHandler.js.map +1 -0
  49. package/build/handlers/RequestAccessHandler.d.ts +18 -0
  50. package/build/handlers/RequestAccessHandler.js +60 -0
  51. package/build/handlers/RequestAccessHandler.js.map +1 -0
  52. package/build/handlers/RequestShareHandler.d.ts +19 -0
  53. package/build/handlers/RequestShareHandler.js +70 -0
  54. package/build/handlers/RequestShareHandler.js.map +1 -0
  55. package/build/handlers/RequestStorageHandler.d.ts +53 -0
  56. package/build/handlers/RequestStorageHandler.js +158 -0
  57. package/build/handlers/RequestStorageHandler.js.map +1 -0
  58. package/build/handlers/RetrieveVaultHandler.d.ts +18 -0
  59. package/build/handlers/RetrieveVaultHandler.js +65 -0
  60. package/build/handlers/RetrieveVaultHandler.js.map +1 -0
  61. package/build/handlers/StoreVaultHandler.d.ts +17 -0
  62. package/build/handlers/StoreVaultHandler.js +77 -0
  63. package/build/handlers/StoreVaultHandler.js.map +1 -0
  64. package/build/handlers/UpdateVaultHandler.d.ts +18 -0
  65. package/build/handlers/UpdateVaultHandler.js +77 -0
  66. package/build/handlers/UpdateVaultHandler.js.map +1 -0
  67. package/build/handlers/VaultCreatedAckHandler.d.ts +15 -0
  68. package/build/handlers/VaultCreatedAckHandler.js +39 -0
  69. package/build/handlers/VaultCreatedAckHandler.js.map +1 -0
  70. package/build/handlers/VaultDataHandler.d.ts +19 -0
  71. package/build/handlers/VaultDataHandler.js +68 -0
  72. package/build/handlers/VaultDataHandler.js.map +1 -0
  73. package/build/handlers/VaultProblemReportHandler.d.ts +17 -0
  74. package/build/handlers/VaultProblemReportHandler.js +40 -0
  75. package/build/handlers/VaultProblemReportHandler.js.map +1 -0
  76. package/build/handlers/VaultReferenceHandler.d.ts +33 -0
  77. package/build/handlers/VaultReferenceHandler.js +169 -0
  78. package/build/handlers/VaultReferenceHandler.js.map +1 -0
  79. package/build/handlers/VaultStoredAckHandler.d.ts +15 -0
  80. package/build/handlers/VaultStoredAckHandler.js +38 -0
  81. package/build/handlers/VaultStoredAckHandler.js.map +1 -0
  82. package/build/handlers/index.d.ts +17 -0
  83. package/build/handlers/index.js +44 -0
  84. package/build/handlers/index.js.map +1 -0
  85. package/build/index.d.ts +42 -0
  86. package/build/index.js +13 -1
  87. package/build/index.js.map +1 -0
  88. package/build/messages/CreateVaultMessage.d.ts +39 -0
  89. package/build/messages/CreateVaultMessage.js +65 -115
  90. package/build/messages/CreateVaultMessage.js.map +1 -0
  91. package/build/messages/DeleteVaultMessage.d.ts +22 -0
  92. package/build/messages/DeleteVaultMessage.js +51 -103
  93. package/build/messages/DeleteVaultMessage.js.map +1 -0
  94. package/build/messages/DenyAccessMessage.d.ts +22 -0
  95. package/build/messages/DenyAccessMessage.js +50 -103
  96. package/build/messages/DenyAccessMessage.js.map +1 -0
  97. package/build/messages/DenyShareMessage.d.ts +24 -0
  98. package/build/messages/DenyShareMessage.js +56 -109
  99. package/build/messages/DenyShareMessage.js.map +1 -0
  100. package/build/messages/GrantAccessMessage.d.ts +32 -0
  101. package/build/messages/GrantAccessMessage.js +63 -115
  102. package/build/messages/GrantAccessMessage.js.map +1 -0
  103. package/build/messages/ProvideShareMessage.d.ts +26 -0
  104. package/build/messages/ProvideShareMessage.js +62 -115
  105. package/build/messages/ProvideShareMessage.js.map +1 -0
  106. package/build/messages/ProvideStorageMessage.d.ts +90 -0
  107. package/build/messages/ProvideStorageMessage.js +193 -0
  108. package/build/messages/ProvideStorageMessage.js.map +1 -0
  109. package/build/messages/RequestAccessMessage.d.ts +30 -0
  110. package/build/messages/RequestAccessMessage.js +57 -109
  111. package/build/messages/RequestAccessMessage.js.map +1 -0
  112. package/build/messages/RequestShareMessage.d.ts +24 -0
  113. package/build/messages/RequestShareMessage.js +56 -109
  114. package/build/messages/RequestShareMessage.js.map +1 -0
  115. package/build/messages/RequestStorageMessage.d.ts +50 -0
  116. package/build/messages/RequestStorageMessage.js +98 -0
  117. package/build/messages/RequestStorageMessage.js.map +1 -0
  118. package/build/messages/RetrieveVaultMessage.d.ts +20 -0
  119. package/build/messages/RetrieveVaultMessage.js +44 -97
  120. package/build/messages/RetrieveVaultMessage.js.map +1 -0
  121. package/build/messages/StoreVaultMessage.d.ts +23 -0
  122. package/build/messages/StoreVaultMessage.js +51 -103
  123. package/build/messages/StoreVaultMessage.js.map +1 -0
  124. package/build/messages/UpdateVaultMessage.d.ts +25 -0
  125. package/build/messages/UpdateVaultMessage.js +58 -109
  126. package/build/messages/UpdateVaultMessage.js.map +1 -0
  127. package/build/messages/VaultCreatedAckMessage.d.ts +20 -0
  128. package/build/messages/VaultCreatedAckMessage.js +44 -97
  129. package/build/messages/VaultCreatedAckMessage.js.map +1 -0
  130. package/build/messages/VaultDataMessage.d.ts +34 -0
  131. package/build/messages/VaultDataMessage.js +59 -110
  132. package/build/messages/VaultDataMessage.js.map +1 -0
  133. package/build/messages/VaultProblemReportMessage.d.ts +35 -0
  134. package/build/messages/VaultProblemReportMessage.js +56 -102
  135. package/build/messages/VaultProblemReportMessage.js.map +1 -0
  136. package/build/messages/VaultReferenceMessage.d.ts +66 -0
  137. package/build/messages/VaultReferenceMessage.js +138 -0
  138. package/build/messages/VaultReferenceMessage.js.map +1 -0
  139. package/build/messages/VaultStoredAckMessage.d.ts +33 -0
  140. package/build/messages/VaultStoredAckMessage.js +51 -104
  141. package/build/messages/VaultStoredAckMessage.js.map +1 -0
  142. package/build/messages/index.d.ts +18 -0
  143. package/build/messages/index.js +6 -1
  144. package/build/messages/index.js.map +1 -0
  145. package/build/models/ThresholdSession.d.ts +37 -0
  146. package/build/models/ThresholdSession.js +1 -0
  147. package/build/models/ThresholdSession.js.map +1 -0
  148. package/build/models/VaultDocument.d.ts +22 -0
  149. package/build/models/VaultDocument.js +1 -0
  150. package/build/models/VaultDocument.js.map +1 -0
  151. package/build/models/VaultHeader.d.ts +92 -0
  152. package/build/models/VaultHeader.js +4 -6
  153. package/build/models/VaultHeader.js.map +1 -0
  154. package/build/models/VaultPolicy.d.ts +24 -0
  155. package/build/models/VaultPolicy.js +1 -0
  156. package/build/models/VaultPolicy.js.map +1 -0
  157. package/build/models/index.d.ts +4 -0
  158. package/build/models/index.js +1 -0
  159. package/build/models/index.js.map +1 -0
  160. package/build/repository/KemKeypairRecord.d.ts +37 -0
  161. package/build/repository/KemKeypairRecord.js +35 -0
  162. package/build/repository/KemKeypairRecord.js.map +1 -0
  163. package/build/repository/KemKeypairRepository.d.ts +18 -0
  164. package/build/repository/KemKeypairRepository.js +50 -0
  165. package/build/repository/KemKeypairRepository.js.map +1 -0
  166. package/build/repository/ThresholdSessionRecord.d.ts +93 -0
  167. package/build/repository/ThresholdSessionRecord.js +58 -92
  168. package/build/repository/ThresholdSessionRecord.js.map +1 -0
  169. package/build/repository/ThresholdSessionRepository.d.ts +35 -0
  170. package/build/repository/ThresholdSessionRepository.js +72 -208
  171. package/build/repository/ThresholdSessionRepository.js.map +1 -0
  172. package/build/repository/VaultRecord.d.ts +105 -0
  173. package/build/repository/VaultRecord.js +94 -115
  174. package/build/repository/VaultRecord.js.map +1 -0
  175. package/build/repository/VaultRepository.d.ts +35 -0
  176. package/build/repository/VaultRepository.js +66 -192
  177. package/build/repository/VaultRepository.js.map +1 -0
  178. package/build/repository/index.d.ts +9 -0
  179. package/build/repository/index.js +7 -1
  180. package/build/repository/index.js.map +1 -0
  181. package/build/services/HPKEService.d.ts +67 -0
  182. package/build/services/HPKEService.js +106 -0
  183. package/build/services/HPKEService.js.map +1 -0
  184. package/build/services/KemKeyExchangeService.d.ts +207 -0
  185. package/build/services/KemKeyExchangeService.js +323 -0
  186. package/build/services/KemKeyExchangeService.js.map +1 -0
  187. package/build/services/VaultEncryptionService.d.ts +120 -0
  188. package/build/services/VaultEncryptionService.js +469 -588
  189. package/build/services/VaultEncryptionService.js.map +1 -0
  190. package/build/services/VaultService.d.ts +127 -0
  191. package/build/services/VaultService.js +224 -376
  192. package/build/services/VaultService.js.map +1 -0
  193. package/build/services/VaultSigningService.d.ts +216 -0
  194. package/build/services/VaultSigningService.js +498 -0
  195. package/build/services/VaultSigningService.js.map +1 -0
  196. package/build/services/index.d.ts +9 -0
  197. package/build/services/index.js +10 -1
  198. package/build/services/index.js.map +1 -0
  199. package/build/storage/VaultStorageConfig.d.ts +97 -0
  200. package/build/storage/VaultStorageConfig.js +22 -0
  201. package/build/storage/VaultStorageConfig.js.map +1 -0
  202. package/build/storage/VaultStorageService.d.ts +118 -0
  203. package/build/storage/VaultStorageService.js +381 -0
  204. package/build/storage/VaultStorageService.js.map +1 -0
  205. package/build/storage/index.d.ts +2 -0
  206. package/build/storage/index.js +21 -0
  207. package/build/storage/index.js.map +1 -0
  208. package/package.json +5 -2
@@ -0,0 +1,363 @@
1
+ import type { VaultRecord } from './repository/VaultRecord';
2
+ import type { KemKeypairWithKid } from './services/KemKeyExchangeService';
3
+ import type { VaultInfo, CreateVaultOptions, OpenVaultOptions, UpdateVaultOptions } from './services/VaultService';
4
+ import type { CreateSigningVaultOptions, SigningVaultResult, OpenSigningVaultResult, ReturnSignedDocumentOptions } from './services/VaultSigningService';
5
+ import type { Logger } from '@credo-ts/core';
6
+ import type { S3StorageConfig } from './storage/VaultStorageConfig';
7
+ import { AgentContext, MessageHandlerRegistry, EventEmitter } from '@credo-ts/core';
8
+ import { VaultService } from './services/VaultService';
9
+ import { KemKeyExchangeService } from './services/KemKeyExchangeService';
10
+ import { VaultSigningService } from './services/VaultSigningService';
11
+ import { VaultStorageService } from './storage/VaultStorageService';
12
+ import { VaultRepository } from './repository/VaultRepository';
13
+ import { ThresholdSessionRepository } from './repository/ThresholdSessionRepository';
14
+ import { VaultDataMessage } from './messages';
15
+ /**
16
+ * Vaults API
17
+ *
18
+ * Public API for vault operations.
19
+ * Provides a clean interface for creating, opening, and managing encrypted vaults.
20
+ *
21
+ * All encryption and decryption happens client-side.
22
+ */
23
+ export declare class VaultsApi {
24
+ private vaultService;
25
+ private agentContext;
26
+ private logger;
27
+ private kemKeyExchangeService;
28
+ private vaultSigningService;
29
+ private storageService;
30
+ constructor(agentContext: AgentContext, messageHandlerRegistry: MessageHandlerRegistry, eventEmitter: EventEmitter, logger: Logger, vaultService: VaultService, kemKeyExchangeService: KemKeyExchangeService, vaultSigningService: VaultSigningService, storageService: VaultStorageService, vaultRepository: VaultRepository, thresholdSessionRepository: ThresholdSessionRepository);
31
+ private registerMessageHandlers;
32
+ /**
33
+ * Configure external storage (S3) for large file support
34
+ *
35
+ * @param config - S3 storage configuration
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * await agent.modules.vaults.configureStorage({
40
+ * type: 's3',
41
+ * bucket: 'my-vault-bucket',
42
+ * region: 'us-east-1',
43
+ * accessKeyId: process.env.AWS_ACCESS_KEY_ID,
44
+ * secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
45
+ * })
46
+ * ```
47
+ */
48
+ configureStorage(config: S3StorageConfig): Promise<void>;
49
+ /**
50
+ * Check if external storage is configured
51
+ */
52
+ isStorageConfigured(): boolean;
53
+ /**
54
+ * Get the storage service for direct operations
55
+ */
56
+ getStorageService(): VaultStorageService;
57
+ /**
58
+ * Create a new encrypted vault
59
+ *
60
+ * @param data - Raw data to encrypt (e.g., PDF bytes)
61
+ * @param options - Creation options including passphrase
62
+ * @returns Created vault identifiers
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * const pdfBytes = await fs.readFile('contract.pdf')
67
+ * const { vaultId } = await agent.modules.vaults.create(pdfBytes, {
68
+ * passphrase: 'my-secure-passphrase',
69
+ * metadata: { description: 'Employment Contract' }
70
+ * })
71
+ * ```
72
+ */
73
+ create(data: Uint8Array, options: CreateVaultOptions): Promise<{
74
+ vaultId: string;
75
+ docId: string;
76
+ }>;
77
+ /**
78
+ * Open (decrypt) a vault
79
+ *
80
+ * @param vaultId - Vault identifier
81
+ * @param options - Open options including passphrase
82
+ * @returns Decrypted data
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * const decrypted = await agent.modules.vaults.open(vaultId, {
87
+ * passphrase: 'my-secure-passphrase'
88
+ * })
89
+ * await fs.writeFile('contract-decrypted.pdf', decrypted)
90
+ * ```
91
+ */
92
+ open(vaultId: string, options: OpenVaultOptions): Promise<Uint8Array>;
93
+ /**
94
+ * Update vault with new data
95
+ *
96
+ * @param vaultId - Vault identifier
97
+ * @param data - New data to encrypt
98
+ * @param options - Update options including passphrase
99
+ *
100
+ * @example
101
+ * ```typescript
102
+ * const newPdfBytes = await fs.readFile('contract-v2.pdf')
103
+ * await agent.modules.vaults.update(vaultId, newPdfBytes, {
104
+ * passphrase: 'my-secure-passphrase'
105
+ * })
106
+ * ```
107
+ */
108
+ update(vaultId: string, data: Uint8Array, options: UpdateVaultOptions): Promise<void>;
109
+ /**
110
+ * Delete a vault
111
+ *
112
+ * @param vaultId - Vault identifier
113
+ *
114
+ * @example
115
+ * ```typescript
116
+ * await agent.modules.vaults.delete(vaultId)
117
+ * ```
118
+ */
119
+ delete(vaultId: string): Promise<void>;
120
+ /**
121
+ * List all vaults
122
+ *
123
+ * @returns Array of vault records
124
+ *
125
+ * @example
126
+ * ```typescript
127
+ * const vaults = await agent.modules.vaults.list()
128
+ * console.log(`Total vaults: ${vaults.length}`)
129
+ * ```
130
+ */
131
+ list(): Promise<VaultRecord[]>;
132
+ /**
133
+ * Get vault info (metadata without decrypting)
134
+ *
135
+ * @param vaultId - Vault identifier
136
+ * @returns Vault information
137
+ *
138
+ * @example
139
+ * ```typescript
140
+ * const info = await agent.modules.vaults.getInfo(vaultId)
141
+ * console.log(`Vault: ${info.vaultId}, Epoch: ${info.header.epoch}`)
142
+ * ```
143
+ */
144
+ getInfo(vaultId: string): Promise<VaultInfo>;
145
+ /**
146
+ * Check if a vault exists
147
+ *
148
+ * @param vaultId - Vault identifier
149
+ * @returns True if vault exists
150
+ *
151
+ * @example
152
+ * ```typescript
153
+ * if (await agent.modules.vaults.exists(vaultId)) {
154
+ * console.log('Vault found!')
155
+ * }
156
+ * ```
157
+ */
158
+ exists(vaultId: string): Promise<boolean>;
159
+ /**
160
+ * Get the raw vault record (for advanced operations)
161
+ *
162
+ * @param vaultId - Vault identifier
163
+ * @returns Vault record or null
164
+ */
165
+ getRecord(vaultId: string): Promise<VaultRecord | null>;
166
+ /**
167
+ * Generate a new ML-KEM keypair for vault sharing
168
+ *
169
+ * @returns Keypair with key ID
170
+ *
171
+ * @example
172
+ * ```typescript
173
+ * const keypair = agent.modules.vaults.generateKemKeypair()
174
+ * console.log(`Generated KEM key: ${keypair.kid}`)
175
+ * ```
176
+ */
177
+ generateKemKeypair(): KemKeypairWithKid;
178
+ /**
179
+ * Store peer's ML-KEM public key for vault encryption
180
+ *
181
+ * @param connectionId - Connection to associate the key with
182
+ * @param kid - Key identifier
183
+ * @param publicKey - ML-KEM public key
184
+ *
185
+ * @example
186
+ * ```typescript
187
+ * await agent.modules.vaults.storePeerKemKey(connectionId, {
188
+ * kid: 'peer-key-id',
189
+ * publicKey: peerPublicKey
190
+ * })
191
+ * ```
192
+ */
193
+ storePeerKemKey(connectionId: string, keyInfo: {
194
+ kid: string;
195
+ publicKey: Uint8Array;
196
+ }): Promise<void>;
197
+ /**
198
+ * Get peer's ML-KEM public key
199
+ *
200
+ * @param connectionId - Connection ID
201
+ * @returns Peer's key info or null
202
+ *
203
+ * @example
204
+ * ```typescript
205
+ * const peerKey = await agent.modules.vaults.getPeerKemKey(connectionId)
206
+ * if (peerKey) {
207
+ * // Can now create vault encrypted to peer
208
+ * }
209
+ * ```
210
+ */
211
+ getPeerKemKey(connectionId: string): Promise<import("./services/KemKeyExchangeService").KemPublicKeyInfo | null>;
212
+ /**
213
+ * Check if peer has a KEM key stored
214
+ *
215
+ * @param connectionId - Connection ID
216
+ * @returns True if peer has KEM key
217
+ */
218
+ hasPeerKemKey(connectionId: string): Promise<boolean>;
219
+ /**
220
+ * Store a local KEM keypair for a connection
221
+ *
222
+ * Call this after generateKemKeypair() to persist the keypair locally
223
+ * for later vault decryption.
224
+ *
225
+ * @param connectionId - Connection to associate the keypair with
226
+ * @param keypair - Full keypair including secret key
227
+ */
228
+ storeLocalKeypair(connectionId: string, keypair: KemKeypairWithKid): Promise<void>;
229
+ /**
230
+ * Get the local KEM keypair for a connection
231
+ *
232
+ * @param connectionId - Connection ID
233
+ * @returns Full keypair or null
234
+ */
235
+ getLocalKeypair(connectionId: string): Promise<KemKeypairWithKid | null>;
236
+ /**
237
+ * Check if a local keypair exists for a connection
238
+ *
239
+ * @param connectionId - Connection ID
240
+ * @returns True if local keypair exists
241
+ */
242
+ hasLocalKeypair(connectionId: string): Promise<boolean>;
243
+ /**
244
+ * Find a local keypair by key identifier (kid)
245
+ *
246
+ * @param kid - Key identifier to search for
247
+ * @returns Keypair and associated connectionId, or null
248
+ */
249
+ findKeypairByKid(kid: string): Promise<{
250
+ keypair: KemKeypairWithKid;
251
+ connectionId: string;
252
+ } | null>;
253
+ /**
254
+ * Delete the local keypair for a connection
255
+ *
256
+ * @param connectionId - Connection ID
257
+ */
258
+ deleteLocalKeypair(connectionId: string): Promise<void>;
259
+ /**
260
+ * Create a signing vault encrypted to a signer's ML-KEM key
261
+ *
262
+ * Use this to send a document to someone for signing.
263
+ * The document is encrypted so only the intended signer can decrypt it.
264
+ *
265
+ * @param options - Creation options
266
+ * @returns Created vault identifiers
267
+ *
268
+ * @example
269
+ * ```typescript
270
+ * // Create vault for Bob to sign
271
+ * const { vaultId } = await agent.modules.vaults.createSigningVault({
272
+ * document: pdfBytes,
273
+ * signerConnectionId: bobConnectionId,
274
+ * documentType: 'pdf',
275
+ * metadata: { description: 'Contract for signing' }
276
+ * })
277
+ *
278
+ * // Share with Bob
279
+ * await agent.modules.vaults.shareSigningVault(vaultId, bobConnectionId)
280
+ * ```
281
+ */
282
+ createSigningVault(options: CreateSigningVaultOptions): Promise<SigningVaultResult>;
283
+ /**
284
+ * Open (decrypt) a vault received for signing
285
+ *
286
+ * @param vaultData - Received vault data (message or record)
287
+ * @param secretKey - Your ML-KEM secret key
288
+ * @param kid - Your key identifier
289
+ * @returns Decrypted document and metadata
290
+ *
291
+ * @example
292
+ * ```typescript
293
+ * // Decrypt vault received for signing
294
+ * const { document, header } = await agent.modules.vaults.openSigningVault(
295
+ * vaultRecord,
296
+ * myKemKeypair.secretKey,
297
+ * myKemKeypair.kid
298
+ * )
299
+ *
300
+ * // Sign the document
301
+ * const signedPdf = await signPdf(document)
302
+ * ```
303
+ */
304
+ openSigningVault(vaultData: VaultDataMessage | VaultRecord, secretKey: Uint8Array, kid: string): Promise<OpenSigningVaultResult>;
305
+ /**
306
+ * Share a signing vault with a connection
307
+ *
308
+ * Sends the encrypted vault to the specified connection via DIDComm
309
+ *
310
+ * @param vaultId - Vault to share
311
+ * @param connectionId - Connection to send to
312
+ *
313
+ * @example
314
+ * ```typescript
315
+ * await agent.modules.vaults.shareSigningVault(vaultId, bobConnectionId)
316
+ * ```
317
+ */
318
+ shareSigningVault(vaultId: string, connectionId: string): Promise<void>;
319
+ /**
320
+ * Return a signed document to the vault owner
321
+ *
322
+ * Creates a new vault with the signed document encrypted to the owner's key
323
+ *
324
+ * @param options - Return options
325
+ * @returns New vault containing the signed document
326
+ *
327
+ * @example
328
+ * ```typescript
329
+ * await agent.modules.vaults.returnSignedDocument({
330
+ * signedDocument: signedPdfBytes,
331
+ * originalVaultId: receivedVaultId,
332
+ * ownerConnectionId: aliceConnectionId,
333
+ * documentType: 'pdf',
334
+ * metadata: { signatureType: 'pades-b-lta' }
335
+ * })
336
+ * ```
337
+ */
338
+ returnSignedDocument(options: ReturnSignedDocumentOptions): Promise<SigningVaultResult>;
339
+ /**
340
+ * Resolve the decryption key for a vault
341
+ *
342
+ * Automatically finds the correct local KEM keypair that can decrypt
343
+ * the specified vault by matching recipient kids in the vault header.
344
+ *
345
+ * @param vaultId - Vault to find decryption key for
346
+ * @returns Secret key, kid, and connectionId; or null if no matching key found
347
+ *
348
+ * @example
349
+ * ```typescript
350
+ * const key = await agent.modules.vaults.resolveVaultDecryptionKey(vaultId)
351
+ * if (key) {
352
+ * const { document } = await agent.modules.vaults.openSigningVault(
353
+ * vaultRecord, key.secretKey, key.kid
354
+ * )
355
+ * }
356
+ * ```
357
+ */
358
+ resolveVaultDecryptionKey(vaultId: string): Promise<{
359
+ secretKey: Uint8Array;
360
+ kid: string;
361
+ connectionId: string;
362
+ } | null>;
363
+ }