@affectively/aeon 1.2.0 → 1.3.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 (43) hide show
  1. package/dist/compression/index.cjs.map +1 -1
  2. package/dist/compression/index.js.map +1 -1
  3. package/dist/core/index.d.cts +105 -100
  4. package/dist/core/index.d.ts +105 -100
  5. package/dist/crypto/index.cjs.map +1 -1
  6. package/dist/crypto/index.d.cts +310 -271
  7. package/dist/crypto/index.d.ts +310 -271
  8. package/dist/crypto/index.js.map +1 -1
  9. package/dist/distributed/index.cjs +8 -2
  10. package/dist/distributed/index.cjs.map +1 -1
  11. package/dist/distributed/index.d.cts +871 -756
  12. package/dist/distributed/index.d.ts +871 -756
  13. package/dist/distributed/index.js +8 -2
  14. package/dist/distributed/index.js.map +1 -1
  15. package/dist/index.cjs +26 -10
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.d.cts +1 -1
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.js +26 -10
  20. package/dist/index.js.map +1 -1
  21. package/dist/offline/index.cjs.map +1 -1
  22. package/dist/offline/index.d.cts +128 -122
  23. package/dist/offline/index.d.ts +128 -122
  24. package/dist/offline/index.js.map +1 -1
  25. package/dist/optimization/index.cjs.map +1 -1
  26. package/dist/optimization/index.js.map +1 -1
  27. package/dist/persistence/index.cjs.map +1 -1
  28. package/dist/persistence/index.d.cts +38 -38
  29. package/dist/persistence/index.d.ts +38 -38
  30. package/dist/persistence/index.js.map +1 -1
  31. package/dist/presence/index.cjs.map +1 -1
  32. package/dist/presence/index.js.map +1 -1
  33. package/dist/{types-CMxO7QF0.d.cts → types-B7gCpNX9.d.cts} +6 -6
  34. package/dist/{types-CMxO7QF0.d.ts → types-B7gCpNX9.d.ts} +6 -6
  35. package/dist/utils/index.d.cts +4 -4
  36. package/dist/utils/index.d.ts +4 -4
  37. package/dist/versioning/index.cjs +18 -8
  38. package/dist/versioning/index.cjs.map +1 -1
  39. package/dist/versioning/index.d.cts +1 -1
  40. package/dist/versioning/index.d.ts +1 -1
  41. package/dist/versioning/index.js +18 -8
  42. package/dist/versioning/index.js.map +1 -1
  43. package/package.json +6 -2
@@ -17,63 +17,63 @@ type SigningAlgorithm = 'ES256' | 'Ed25519' | 'ES384' | 'ES512';
17
17
  * Key pair for signing and verification
18
18
  */
19
19
  interface KeyPair {
20
- algorithm: SigningAlgorithm;
21
- publicKey: JsonWebKey;
22
- privateKey?: JsonWebKey;
23
- fingerprint: string;
20
+ algorithm: SigningAlgorithm;
21
+ publicKey: JsonWebKey;
22
+ privateKey?: JsonWebKey;
23
+ fingerprint: string;
24
24
  }
25
25
  /**
26
26
  * Identity representing a user or node
27
27
  */
28
28
  interface Identity {
29
- did: DID;
30
- signingKey: KeyPair;
31
- encryptionKey?: KeyPair;
32
- createdAt: number;
33
- displayName?: string;
29
+ did: DID;
30
+ signingKey: KeyPair;
31
+ encryptionKey?: KeyPair;
32
+ createdAt: number;
33
+ displayName?: string;
34
34
  }
35
35
  /**
36
36
  * UCAN Capability structure
37
37
  */
38
38
  interface Capability {
39
- can: string;
40
- with: string;
41
- constraints?: Record<string, unknown>;
39
+ can: string;
40
+ with: string;
41
+ constraints?: Record<string, unknown>;
42
42
  }
43
43
  /**
44
44
  * UCAN Token payload
45
45
  */
46
46
  interface UCANPayload {
47
- iss: DID;
48
- aud: DID;
49
- exp: number;
50
- nbf?: number;
51
- iat?: number;
52
- nonce?: string;
53
- jti?: string;
54
- att: Capability[];
55
- prf?: string[];
56
- fct?: Record<string, unknown>;
47
+ iss: DID;
48
+ aud: DID;
49
+ exp: number;
50
+ nbf?: number;
51
+ iat?: number;
52
+ nonce?: string;
53
+ jti?: string;
54
+ att: Capability[];
55
+ prf?: string[];
56
+ fct?: Record<string, unknown>;
57
57
  }
58
58
  /**
59
59
  * Parsed UCAN Token
60
60
  */
61
61
  interface UCANToken {
62
- payload: UCANPayload;
63
- raw: string;
64
- signature: Uint8Array;
65
- algorithm: string;
62
+ payload: UCANPayload;
63
+ raw: string;
64
+ signature: Uint8Array;
65
+ algorithm: string;
66
66
  }
67
67
  /**
68
68
  * UCAN verification result
69
69
  */
70
70
  interface VerificationResult {
71
- valid: boolean;
72
- payload?: UCANPayload;
73
- error?: string;
74
- expired?: boolean;
75
- shouldRotate?: boolean;
76
- expiresIn?: number;
71
+ valid: boolean;
72
+ payload?: UCANPayload;
73
+ error?: string;
74
+ expired?: boolean;
75
+ shouldRotate?: boolean;
76
+ expiresIn?: number;
77
77
  }
78
78
  /**
79
79
  * Encryption algorithms supported
@@ -82,75 +82,86 @@ type EncryptionAlgorithm = 'ECIES-P256' | 'AES-256-GCM';
82
82
  /**
83
83
  * HKDF domain separator categories
84
84
  */
85
- type DomainCategory = 'default' | 'sync' | 'message' | 'api-key' | 'personal-data' | string;
85
+ type DomainCategory =
86
+ | 'default'
87
+ | 'sync'
88
+ | 'message'
89
+ | 'api-key'
90
+ | 'personal-data'
91
+ | string;
86
92
  /**
87
93
  * EC Key pair for ECDH operations
88
94
  */
89
95
  interface ECKeyPair {
90
- publicKey: JsonWebKey;
91
- privateKey: JsonWebKey;
92
- keyId: string;
93
- createdAt: string;
96
+ publicKey: JsonWebKey;
97
+ privateKey: JsonWebKey;
98
+ keyId: string;
99
+ createdAt: string;
94
100
  }
95
101
  /**
96
102
  * Encrypted data envelope
97
103
  */
98
104
  interface EncryptedPayload {
99
- alg: EncryptionAlgorithm;
100
- ct: string;
101
- iv: string;
102
- tag: string;
103
- epk?: JsonWebKey;
104
- category?: DomainCategory;
105
- nonce?: string;
106
- encryptedAt: number;
105
+ alg: EncryptionAlgorithm;
106
+ ct: string;
107
+ iv: string;
108
+ tag: string;
109
+ epk?: JsonWebKey;
110
+ category?: DomainCategory;
111
+ nonce?: string;
112
+ encryptedAt: number;
107
113
  }
108
114
  /**
109
115
  * Decryption result
110
116
  */
111
117
  interface DecryptionResult {
112
- plaintext: Uint8Array;
113
- category?: DomainCategory;
114
- encryptedAt: number;
118
+ plaintext: Uint8Array;
119
+ category?: DomainCategory;
120
+ encryptedAt: number;
115
121
  }
116
122
  /**
117
123
  * Aeon encryption mode
118
124
  */
119
- type AeonEncryptionMode = 'none' | 'transport' | 'at-rest' | 'end-to-end';
125
+ type AeonEncryptionMode =
126
+ | 'none'
127
+ | 'transport'
128
+ | 'at-rest'
129
+ | 'end-to-end';
120
130
  /**
121
131
  * Aeon sync capability namespace
122
132
  */
123
133
  declare const AEON_CAPABILITIES: {
124
- readonly SYNC_READ: "aeon:sync:read";
125
- readonly SYNC_WRITE: "aeon:sync:write";
126
- readonly SYNC_ADMIN: "aeon:sync:admin";
127
- readonly NODE_REGISTER: "aeon:node:register";
128
- readonly NODE_HEARTBEAT: "aeon:node:heartbeat";
129
- readonly REPLICATE_READ: "aeon:replicate:read";
130
- readonly REPLICATE_WRITE: "aeon:replicate:write";
131
- readonly STATE_READ: "aeon:state:read";
132
- readonly STATE_WRITE: "aeon:state:write";
133
- readonly STATE_RECONCILE: "aeon:state:reconcile";
134
+ readonly SYNC_READ: 'aeon:sync:read';
135
+ readonly SYNC_WRITE: 'aeon:sync:write';
136
+ readonly SYNC_ADMIN: 'aeon:sync:admin';
137
+ readonly NODE_REGISTER: 'aeon:node:register';
138
+ readonly NODE_HEARTBEAT: 'aeon:node:heartbeat';
139
+ readonly REPLICATE_READ: 'aeon:replicate:read';
140
+ readonly REPLICATE_WRITE: 'aeon:replicate:write';
141
+ readonly STATE_READ: 'aeon:state:read';
142
+ readonly STATE_WRITE: 'aeon:state:write';
143
+ readonly STATE_RECONCILE: 'aeon:state:reconcile';
134
144
  };
135
- type AeonCapability = (typeof AEON_CAPABILITIES)[keyof typeof AEON_CAPABILITIES];
145
+ type AeonCapability =
146
+ (typeof AEON_CAPABILITIES)[keyof typeof AEON_CAPABILITIES];
136
147
  /**
137
148
  * Crypto configuration for Aeon
138
149
  */
139
150
  interface AeonCryptoConfig {
140
- /** Default encryption mode for sync messages */
141
- defaultEncryptionMode: AeonEncryptionMode;
142
- /** Require all messages to be signed */
143
- requireSignatures: boolean;
144
- /** Require UCAN capability verification */
145
- requireCapabilities: boolean;
146
- /** Allowed signature algorithms */
147
- allowedSignatureAlgorithms: string[];
148
- /** Allowed encryption algorithms */
149
- allowedEncryptionAlgorithms: string[];
150
- /** UCAN audience DID for verification */
151
- ucanAudience?: string;
152
- /** Session key expiration (ms) */
153
- sessionKeyExpiration?: number;
151
+ /** Default encryption mode for sync messages */
152
+ defaultEncryptionMode: AeonEncryptionMode;
153
+ /** Require all messages to be signed */
154
+ requireSignatures: boolean;
155
+ /** Require UCAN capability verification */
156
+ requireCapabilities: boolean;
157
+ /** Allowed signature algorithms */
158
+ allowedSignatureAlgorithms: string[];
159
+ /** Allowed encryption algorithms */
160
+ allowedEncryptionAlgorithms: string[];
161
+ /** UCAN audience DID for verification */
162
+ ucanAudience?: string;
163
+ /** Session key expiration (ms) */
164
+ sessionKeyExpiration?: number;
154
165
  }
155
166
  /**
156
167
  * Default crypto configuration
@@ -160,63 +171,63 @@ declare const DEFAULT_CRYPTO_CONFIG: AeonCryptoConfig;
160
171
  * Authenticated sync message fields
161
172
  */
162
173
  interface AuthenticatedMessageFields {
163
- /** Sender DID */
164
- senderDID?: string;
165
- /** Receiver DID */
166
- receiverDID?: string;
167
- /** UCAN token for capability verification */
168
- ucan?: string;
169
- /** Message signature (base64url) */
170
- signature?: string;
171
- /** Whether payload is encrypted */
172
- encrypted?: boolean;
174
+ /** Sender DID */
175
+ senderDID?: string;
176
+ /** Receiver DID */
177
+ receiverDID?: string;
178
+ /** UCAN token for capability verification */
179
+ ucan?: string;
180
+ /** Message signature (base64url) */
181
+ signature?: string;
182
+ /** Whether payload is encrypted */
183
+ encrypted?: boolean;
173
184
  }
174
185
  /**
175
186
  * Secure sync session
176
187
  */
177
188
  interface SecureSyncSession {
178
- id: string;
179
- initiator: string;
180
- participants: string[];
181
- sessionKey?: Uint8Array;
182
- encryptionMode: AeonEncryptionMode;
183
- requiredCapabilities: string[];
184
- status: 'pending' | 'active' | 'completed' | 'failed';
185
- startTime: string;
186
- endTime?: string;
189
+ id: string;
190
+ initiator: string;
191
+ participants: string[];
192
+ sessionKey?: Uint8Array;
193
+ encryptionMode: AeonEncryptionMode;
194
+ requiredCapabilities: string[];
195
+ status: 'pending' | 'active' | 'completed' | 'failed';
196
+ startTime: string;
197
+ endTime?: string;
187
198
  }
188
199
  /**
189
200
  * Node with identity information
190
201
  */
191
202
  interface SecureNodeInfo {
192
- id: string;
193
- did?: string;
194
- publicSigningKey?: JsonWebKey;
195
- publicEncryptionKey?: JsonWebKey;
196
- capabilities?: string[];
197
- lastSeen?: number;
203
+ id: string;
204
+ did?: string;
205
+ publicSigningKey?: JsonWebKey;
206
+ publicEncryptionKey?: JsonWebKey;
207
+ capabilities?: string[];
208
+ lastSeen?: number;
198
209
  }
199
210
  /**
200
211
  * Capability verification result
201
212
  */
202
213
  interface AeonCapabilityResult {
203
- authorized: boolean;
204
- error?: string;
205
- issuer?: string;
206
- grantedCapabilities?: Array<{
207
- can: string;
208
- with: string;
209
- }>;
214
+ authorized: boolean;
215
+ error?: string;
216
+ issuer?: string;
217
+ grantedCapabilities?: Array<{
218
+ can: string;
219
+ with: string;
220
+ }>;
210
221
  }
211
222
  /**
212
223
  * Signed data envelope for sync operations
213
224
  */
214
225
  interface SignedSyncData<T = unknown> {
215
- payload: T;
216
- signature: string;
217
- signer: string;
218
- algorithm: string;
219
- signedAt: number;
226
+ payload: T;
227
+ signature: string;
228
+ signer: string;
229
+ algorithm: string;
230
+ signedAt: number;
220
231
  }
221
232
 
222
233
  /**
@@ -233,130 +244,158 @@ interface SignedSyncData<T = unknown> {
233
244
  * or other compatible libraries.
234
245
  */
235
246
  interface ICryptoProvider {
236
- /**
237
- * Generate a new identity with DID and key pairs
238
- */
239
- generateIdentity(displayName?: string): Promise<{
240
- did: string;
241
- publicSigningKey: JsonWebKey;
242
- publicEncryptionKey?: JsonWebKey;
243
- }>;
244
- /**
245
- * Get the local identity's DID
246
- */
247
- getLocalDID(): string | null;
248
- /**
249
- * Export local identity's public info for sharing
250
- */
251
- exportPublicIdentity(): Promise<SecureNodeInfo | null>;
252
- /**
253
- * Register a known remote node's public keys
254
- */
255
- registerRemoteNode(node: SecureNodeInfo): Promise<void>;
256
- /**
257
- * Get a remote node's public key
258
- */
259
- getRemotePublicKey(did: string): Promise<JsonWebKey | null>;
260
- /**
261
- * Sign data with local identity's private key
262
- */
263
- sign(data: Uint8Array): Promise<Uint8Array>;
264
- /**
265
- * Sign structured data and wrap in SignedSyncData envelope
266
- */
267
- signData<T>(data: T): Promise<SignedSyncData<T>>;
268
- /**
269
- * Verify a signature from a remote node
270
- */
271
- verify(did: string, signature: Uint8Array, data: Uint8Array): Promise<boolean>;
272
- /**
273
- * Verify a SignedSyncData envelope
274
- */
275
- verifySignedData<T>(signedData: SignedSyncData<T>): Promise<boolean>;
276
- /**
277
- * Encrypt data for a recipient
278
- */
279
- encrypt(plaintext: Uint8Array, recipientDID: string): Promise<{
280
- alg: string;
281
- ct: string;
282
- iv: string;
283
- tag: string;
284
- epk?: JsonWebKey;
285
- encryptedAt: number;
286
- }>;
287
- /**
288
- * Decrypt data
289
- */
290
- decrypt(encrypted: {
291
- alg: string;
292
- ct: string;
293
- iv: string;
294
- tag: string;
295
- epk?: JsonWebKey;
296
- }, senderDID?: string): Promise<Uint8Array>;
297
- /**
298
- * Derive or get a session key for communication with a peer
299
- */
300
- getSessionKey(peerDID: string): Promise<Uint8Array>;
301
- /**
302
- * Encrypt with a session key
303
- */
304
- encryptWithSessionKey(plaintext: Uint8Array, sessionKey: Uint8Array): Promise<{
305
- alg: string;
306
- ct: string;
307
- iv: string;
308
- tag: string;
309
- encryptedAt: number;
310
- }>;
311
- /**
312
- * Decrypt with a session key
313
- */
314
- decryptWithSessionKey(encrypted: {
315
- ct: string;
316
- iv: string;
317
- tag: string;
318
- }, sessionKey: Uint8Array): Promise<Uint8Array>;
319
- /**
320
- * Create a UCAN token
321
- */
322
- createUCAN(audience: string, capabilities: Array<{
323
- can: string;
324
- with: string;
325
- }>, options?: {
326
- expirationSeconds?: number;
327
- proofs?: string[];
328
- }): Promise<string>;
329
- /**
330
- * Verify a UCAN token
331
- */
332
- verifyUCAN(token: string, options?: {
333
- expectedAudience?: string;
334
- requiredCapabilities?: Array<{
335
- can: string;
336
- with: string;
337
- }>;
338
- }): Promise<AeonCapabilityResult>;
339
- /**
340
- * Delegate capabilities
341
- */
342
- delegateCapabilities(parentToken: string, audience: string, capabilities: Array<{
247
+ /**
248
+ * Generate a new identity with DID and key pairs
249
+ */
250
+ generateIdentity(displayName?: string): Promise<{
251
+ did: string;
252
+ publicSigningKey: JsonWebKey;
253
+ publicEncryptionKey?: JsonWebKey;
254
+ }>;
255
+ /**
256
+ * Get the local identity's DID
257
+ */
258
+ getLocalDID(): string | null;
259
+ /**
260
+ * Export local identity's public info for sharing
261
+ */
262
+ exportPublicIdentity(): Promise<SecureNodeInfo | null>;
263
+ /**
264
+ * Register a known remote node's public keys
265
+ */
266
+ registerRemoteNode(node: SecureNodeInfo): Promise<void>;
267
+ /**
268
+ * Get a remote node's public key
269
+ */
270
+ getRemotePublicKey(did: string): Promise<JsonWebKey | null>;
271
+ /**
272
+ * Sign data with local identity's private key
273
+ */
274
+ sign(data: Uint8Array): Promise<Uint8Array>;
275
+ /**
276
+ * Sign structured data and wrap in SignedSyncData envelope
277
+ */
278
+ signData<T>(data: T): Promise<SignedSyncData<T>>;
279
+ /**
280
+ * Verify a signature from a remote node
281
+ */
282
+ verify(
283
+ did: string,
284
+ signature: Uint8Array,
285
+ data: Uint8Array
286
+ ): Promise<boolean>;
287
+ /**
288
+ * Verify a SignedSyncData envelope
289
+ */
290
+ verifySignedData<T>(signedData: SignedSyncData<T>): Promise<boolean>;
291
+ /**
292
+ * Encrypt data for a recipient
293
+ */
294
+ encrypt(
295
+ plaintext: Uint8Array,
296
+ recipientDID: string
297
+ ): Promise<{
298
+ alg: string;
299
+ ct: string;
300
+ iv: string;
301
+ tag: string;
302
+ epk?: JsonWebKey;
303
+ encryptedAt: number;
304
+ }>;
305
+ /**
306
+ * Decrypt data
307
+ */
308
+ decrypt(
309
+ encrypted: {
310
+ alg: string;
311
+ ct: string;
312
+ iv: string;
313
+ tag: string;
314
+ epk?: JsonWebKey;
315
+ },
316
+ senderDID?: string
317
+ ): Promise<Uint8Array>;
318
+ /**
319
+ * Derive or get a session key for communication with a peer
320
+ */
321
+ getSessionKey(peerDID: string): Promise<Uint8Array>;
322
+ /**
323
+ * Encrypt with a session key
324
+ */
325
+ encryptWithSessionKey(
326
+ plaintext: Uint8Array,
327
+ sessionKey: Uint8Array
328
+ ): Promise<{
329
+ alg: string;
330
+ ct: string;
331
+ iv: string;
332
+ tag: string;
333
+ encryptedAt: number;
334
+ }>;
335
+ /**
336
+ * Decrypt with a session key
337
+ */
338
+ decryptWithSessionKey(
339
+ encrypted: {
340
+ ct: string;
341
+ iv: string;
342
+ tag: string;
343
+ },
344
+ sessionKey: Uint8Array
345
+ ): Promise<Uint8Array>;
346
+ /**
347
+ * Create a UCAN token
348
+ */
349
+ createUCAN(
350
+ audience: string,
351
+ capabilities: Array<{
352
+ can: string;
353
+ with: string;
354
+ }>,
355
+ options?: {
356
+ expirationSeconds?: number;
357
+ proofs?: string[];
358
+ }
359
+ ): Promise<string>;
360
+ /**
361
+ * Verify a UCAN token
362
+ */
363
+ verifyUCAN(
364
+ token: string,
365
+ options?: {
366
+ expectedAudience?: string;
367
+ requiredCapabilities?: Array<{
343
368
  can: string;
344
369
  with: string;
345
- }>, options?: {
346
- expirationSeconds?: number;
347
- }): Promise<string>;
348
- /**
349
- * Compute hash of data
350
- */
351
- hash(data: Uint8Array): Promise<Uint8Array>;
352
- /**
353
- * Generate random bytes
354
- */
355
- randomBytes(length: number): Uint8Array;
356
- /**
357
- * Check if crypto is properly initialized
358
- */
359
- isInitialized(): boolean;
370
+ }>;
371
+ }
372
+ ): Promise<AeonCapabilityResult>;
373
+ /**
374
+ * Delegate capabilities
375
+ */
376
+ delegateCapabilities(
377
+ parentToken: string,
378
+ audience: string,
379
+ capabilities: Array<{
380
+ can: string;
381
+ with: string;
382
+ }>,
383
+ options?: {
384
+ expirationSeconds?: number;
385
+ }
386
+ ): Promise<string>;
387
+ /**
388
+ * Compute hash of data
389
+ */
390
+ hash(data: Uint8Array): Promise<Uint8Array>;
391
+ /**
392
+ * Generate random bytes
393
+ */
394
+ randomBytes(length: number): Uint8Array;
395
+ /**
396
+ * Check if crypto is properly initialized
397
+ */
398
+ isInitialized(): boolean;
360
399
  }
361
400
  /**
362
401
  * Null crypto provider for when crypto is disabled
@@ -364,44 +403,44 @@ interface ICryptoProvider {
364
403
  * All operations either throw or return permissive defaults.
365
404
  */
366
405
  declare class NullCryptoProvider implements ICryptoProvider {
367
- private notConfiguredError;
368
- generateIdentity(): Promise<{
369
- did: string;
370
- publicSigningKey: JsonWebKey;
371
- publicEncryptionKey?: JsonWebKey;
372
- }>;
373
- getLocalDID(): string | null;
374
- exportPublicIdentity(): Promise<SecureNodeInfo | null>;
375
- registerRemoteNode(): Promise<void>;
376
- getRemotePublicKey(): Promise<JsonWebKey | null>;
377
- sign(): Promise<Uint8Array>;
378
- signData<T>(_data: T): Promise<SignedSyncData<T>>;
379
- verify(): Promise<boolean>;
380
- verifySignedData(): Promise<boolean>;
381
- encrypt(): Promise<{
382
- alg: string;
383
- ct: string;
384
- iv: string;
385
- tag: string;
386
- epk?: JsonWebKey;
387
- encryptedAt: number;
388
- }>;
389
- decrypt(): Promise<Uint8Array>;
390
- getSessionKey(): Promise<Uint8Array>;
391
- encryptWithSessionKey(): Promise<{
392
- alg: string;
393
- ct: string;
394
- iv: string;
395
- tag: string;
396
- encryptedAt: number;
397
- }>;
398
- decryptWithSessionKey(): Promise<Uint8Array>;
399
- createUCAN(): Promise<string>;
400
- verifyUCAN(): Promise<AeonCapabilityResult>;
401
- delegateCapabilities(): Promise<string>;
402
- hash(): Promise<Uint8Array>;
403
- randomBytes(length: number): Uint8Array;
404
- isInitialized(): boolean;
406
+ private notConfiguredError;
407
+ generateIdentity(): Promise<{
408
+ did: string;
409
+ publicSigningKey: JsonWebKey;
410
+ publicEncryptionKey?: JsonWebKey;
411
+ }>;
412
+ getLocalDID(): string | null;
413
+ exportPublicIdentity(): Promise<SecureNodeInfo | null>;
414
+ registerRemoteNode(): Promise<void>;
415
+ getRemotePublicKey(): Promise<JsonWebKey | null>;
416
+ sign(): Promise<Uint8Array>;
417
+ signData<T>(_data: T): Promise<SignedSyncData<T>>;
418
+ verify(): Promise<boolean>;
419
+ verifySignedData(): Promise<boolean>;
420
+ encrypt(): Promise<{
421
+ alg: string;
422
+ ct: string;
423
+ iv: string;
424
+ tag: string;
425
+ epk?: JsonWebKey;
426
+ encryptedAt: number;
427
+ }>;
428
+ decrypt(): Promise<Uint8Array>;
429
+ getSessionKey(): Promise<Uint8Array>;
430
+ encryptWithSessionKey(): Promise<{
431
+ alg: string;
432
+ ct: string;
433
+ iv: string;
434
+ tag: string;
435
+ encryptedAt: number;
436
+ }>;
437
+ decryptWithSessionKey(): Promise<Uint8Array>;
438
+ createUCAN(): Promise<string>;
439
+ verifyUCAN(): Promise<AeonCapabilityResult>;
440
+ delegateCapabilities(): Promise<string>;
441
+ hash(): Promise<Uint8Array>;
442
+ randomBytes(length: number): Uint8Array;
443
+ isInitialized(): boolean;
405
444
  }
406
445
 
407
446
  export { AEON_CAPABILITIES, type AeonCapability, type AeonCapabilityResult, type AeonCryptoConfig, type AeonEncryptionMode, type AuthenticatedMessageFields, type Capability, DEFAULT_CRYPTO_CONFIG, type DID, type DecryptionResult, type DomainCategory, type ECKeyPair, type EncryptedPayload, type EncryptionAlgorithm, type ICryptoProvider, type Identity, type KeyPair, NullCryptoProvider, type SecureNodeInfo, type SecureSyncSession, type SignedSyncData, type SigningAlgorithm, type UCANPayload, type UCANToken, type VerificationResult };