@signalapp/libsignal-client 0.15.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 (101) hide show
  1. package/Native.d.ts +326 -0
  2. package/Native.js +6 -0
  3. package/dist/Address.d.ts +9 -0
  4. package/dist/Address.js +27 -0
  5. package/dist/Errors.d.ts +48 -0
  6. package/dist/Errors.js +54 -0
  7. package/dist/index.d.ts +353 -0
  8. package/dist/index.js +948 -0
  9. package/dist/zkgroup/NotarySignature.d.ts +6 -0
  10. package/dist/zkgroup/NotarySignature.js +15 -0
  11. package/dist/zkgroup/ServerPublicParams.d.ts +7 -0
  12. package/dist/zkgroup/ServerPublicParams.js +18 -0
  13. package/dist/zkgroup/ServerSecretParams.d.ts +12 -0
  14. package/dist/zkgroup/ServerSecretParams.js +36 -0
  15. package/dist/zkgroup/auth/AuthCredential.d.ts +5 -0
  16. package/dist/zkgroup/auth/AuthCredential.js +15 -0
  17. package/dist/zkgroup/auth/AuthCredentialPresentation.d.ts +8 -0
  18. package/dist/zkgroup/auth/AuthCredentialPresentation.js +22 -0
  19. package/dist/zkgroup/auth/AuthCredentialResponse.d.ts +5 -0
  20. package/dist/zkgroup/auth/AuthCredentialResponse.js +15 -0
  21. package/dist/zkgroup/auth/ClientZkAuthOperations.d.ts +14 -0
  22. package/dist/zkgroup/auth/ClientZkAuthOperations.js +29 -0
  23. package/dist/zkgroup/auth/ServerZkAuthOperations.d.ts +13 -0
  24. package/dist/zkgroup/auth/ServerZkAuthOperations.js +28 -0
  25. package/dist/zkgroup/groups/ClientZkGroupCipher.d.ts +17 -0
  26. package/dist/zkgroup/groups/ClientZkGroupCipher.js +42 -0
  27. package/dist/zkgroup/groups/GroupIdentifier.d.ts +6 -0
  28. package/dist/zkgroup/groups/GroupIdentifier.js +15 -0
  29. package/dist/zkgroup/groups/GroupMasterKey.d.ts +6 -0
  30. package/dist/zkgroup/groups/GroupMasterKey.js +15 -0
  31. package/dist/zkgroup/groups/GroupPublicParams.d.ts +7 -0
  32. package/dist/zkgroup/groups/GroupPublicParams.js +19 -0
  33. package/dist/zkgroup/groups/GroupSecretParams.d.ts +12 -0
  34. package/dist/zkgroup/groups/GroupSecretParams.js +35 -0
  35. package/dist/zkgroup/groups/ProfileKeyCiphertext.d.ts +5 -0
  36. package/dist/zkgroup/groups/ProfileKeyCiphertext.js +15 -0
  37. package/dist/zkgroup/groups/UuidCiphertext.d.ts +5 -0
  38. package/dist/zkgroup/groups/UuidCiphertext.js +15 -0
  39. package/dist/zkgroup/index.d.ts +37 -0
  40. package/dist/zkgroup/index.js +87 -0
  41. package/dist/zkgroup/internal/BigIntUtil.d.ts +2 -0
  42. package/dist/zkgroup/internal/BigIntUtil.js +18 -0
  43. package/dist/zkgroup/internal/ByteArray.d.ts +8 -0
  44. package/dist/zkgroup/internal/ByteArray.js +28 -0
  45. package/dist/zkgroup/internal/Constants.d.ts +4 -0
  46. package/dist/zkgroup/internal/Constants.js +12 -0
  47. package/dist/zkgroup/internal/UUIDUtil.d.ts +4 -0
  48. package/dist/zkgroup/internal/UUIDUtil.js +23 -0
  49. package/dist/zkgroup/profiles/ClientZkProfileOperations.d.ts +27 -0
  50. package/dist/zkgroup/profiles/ClientZkProfileOperations.js +57 -0
  51. package/dist/zkgroup/profiles/PniCredential.d.ts +5 -0
  52. package/dist/zkgroup/profiles/PniCredential.js +15 -0
  53. package/dist/zkgroup/profiles/PniCredentialPresentation.d.ts +10 -0
  54. package/dist/zkgroup/profiles/PniCredentialPresentation.js +26 -0
  55. package/dist/zkgroup/profiles/PniCredentialRequestContext.d.ts +7 -0
  56. package/dist/zkgroup/profiles/PniCredentialRequestContext.js +19 -0
  57. package/dist/zkgroup/profiles/PniCredentialResponse.d.ts +5 -0
  58. package/dist/zkgroup/profiles/PniCredentialResponse.js +15 -0
  59. package/dist/zkgroup/profiles/ProfileKey.d.ts +11 -0
  60. package/dist/zkgroup/profiles/ProfileKey.js +25 -0
  61. package/dist/zkgroup/profiles/ProfileKeyCommitment.d.ts +5 -0
  62. package/dist/zkgroup/profiles/ProfileKeyCommitment.js +15 -0
  63. package/dist/zkgroup/profiles/ProfileKeyCredential.d.ts +5 -0
  64. package/dist/zkgroup/profiles/ProfileKeyCredential.js +15 -0
  65. package/dist/zkgroup/profiles/ProfileKeyCredentialPresentation.d.ts +9 -0
  66. package/dist/zkgroup/profiles/ProfileKeyCredentialPresentation.js +23 -0
  67. package/dist/zkgroup/profiles/ProfileKeyCredentialRequest.d.ts +5 -0
  68. package/dist/zkgroup/profiles/ProfileKeyCredentialRequest.js +15 -0
  69. package/dist/zkgroup/profiles/ProfileKeyCredentialRequestContext.d.ts +7 -0
  70. package/dist/zkgroup/profiles/ProfileKeyCredentialRequestContext.js +19 -0
  71. package/dist/zkgroup/profiles/ProfileKeyCredentialResponse.d.ts +5 -0
  72. package/dist/zkgroup/profiles/ProfileKeyCredentialResponse.js +15 -0
  73. package/dist/zkgroup/profiles/ProfileKeyVersion.d.ts +7 -0
  74. package/dist/zkgroup/profiles/ProfileKeyVersion.js +18 -0
  75. package/dist/zkgroup/profiles/ServerZkProfileOperations.d.ts +20 -0
  76. package/dist/zkgroup/profiles/ServerZkProfileOperations.js +39 -0
  77. package/dist/zkgroup/receipts/ClientZkReceiptOperations.d.ts +16 -0
  78. package/dist/zkgroup/receipts/ClientZkReceiptOperations.js +36 -0
  79. package/dist/zkgroup/receipts/ReceiptCredential.d.ts +7 -0
  80. package/dist/zkgroup/receipts/ReceiptCredential.js +21 -0
  81. package/dist/zkgroup/receipts/ReceiptCredentialPresentation.d.ts +10 -0
  82. package/dist/zkgroup/receipts/ReceiptCredentialPresentation.js +26 -0
  83. package/dist/zkgroup/receipts/ReceiptCredentialRequest.d.ts +5 -0
  84. package/dist/zkgroup/receipts/ReceiptCredentialRequest.js +15 -0
  85. package/dist/zkgroup/receipts/ReceiptCredentialRequestContext.d.ts +8 -0
  86. package/dist/zkgroup/receipts/ReceiptCredentialRequestContext.js +20 -0
  87. package/dist/zkgroup/receipts/ReceiptCredentialResponse.d.ts +5 -0
  88. package/dist/zkgroup/receipts/ReceiptCredentialResponse.js +15 -0
  89. package/dist/zkgroup/receipts/ReceiptSerial.d.ts +6 -0
  90. package/dist/zkgroup/receipts/ReceiptSerial.js +15 -0
  91. package/dist/zkgroup/receipts/ServerZkReceiptOperations.d.ts +12 -0
  92. package/dist/zkgroup/receipts/ServerZkReceiptOperations.js +28 -0
  93. package/package.json +57 -0
  94. package/prebuilds/darwin-arm64/node.napi.node +0 -0
  95. package/prebuilds/darwin-x64/node.napi.node +0 -0
  96. package/prebuilds/linux-arm64/node.napi.node +0 -0
  97. package/prebuilds/linux-x64/node.napi.node +0 -0
  98. package/prebuilds/win32-arm64/node.napi.node +0 -0
  99. package/prebuilds/win32-x64/node.napi.node +0 -0
  100. package/zkgroup.d.ts +7 -0
  101. package/zkgroup.js +7 -0
@@ -0,0 +1,353 @@
1
+ /// <reference types="node" />
2
+ export * from './Errors';
3
+ import { ProtocolAddress } from './Address';
4
+ export * from './Address';
5
+ import * as Native from '../Native';
6
+ export declare enum CiphertextMessageType {
7
+ Whisper = 2,
8
+ PreKey = 3,
9
+ SenderKey = 7,
10
+ Plaintext = 8
11
+ }
12
+ export declare enum Direction {
13
+ Sending = 0,
14
+ Receiving = 1
15
+ }
16
+ export declare enum ContentHint {
17
+ Default = 0,
18
+ Resendable = 1,
19
+ Implicit = 2
20
+ }
21
+ export declare type Uuid = string;
22
+ export declare class HKDF {
23
+ /**
24
+ * @deprecated Use the top-level 'hkdf' function for standard HKDF behavior
25
+ */
26
+ static new(version: number): HKDF;
27
+ deriveSecrets(outputLength: number, keyMaterial: Buffer, label: Buffer, salt: Buffer | null): Buffer;
28
+ }
29
+ export declare function hkdf(outputLength: number, keyMaterial: Buffer, label: Buffer, salt: Buffer | null): Buffer;
30
+ export declare class ScannableFingerprint {
31
+ private readonly scannable;
32
+ private constructor();
33
+ static _fromBuffer(scannable: Buffer): ScannableFingerprint;
34
+ compare(other: ScannableFingerprint): boolean;
35
+ toBuffer(): Buffer;
36
+ }
37
+ export declare class DisplayableFingerprint {
38
+ private readonly display;
39
+ private constructor();
40
+ static _fromString(display: string): DisplayableFingerprint;
41
+ toString(): string;
42
+ }
43
+ export declare class Fingerprint {
44
+ readonly _nativeHandle: Native.Fingerprint;
45
+ private constructor();
46
+ static new(iterations: number, version: number, localIdentifier: Buffer, localKey: PublicKey, remoteIdentifier: Buffer, remoteKey: PublicKey): Fingerprint;
47
+ displayableFingerprint(): DisplayableFingerprint;
48
+ scannableFingerprint(): ScannableFingerprint;
49
+ }
50
+ export declare class Aes256GcmSiv {
51
+ readonly _nativeHandle: Native.Aes256GcmSiv;
52
+ private constructor();
53
+ static new(key: Buffer): Aes256GcmSiv;
54
+ encrypt(message: Buffer, nonce: Buffer, associated_data: Buffer): Buffer;
55
+ decrypt(message: Buffer, nonce: Buffer, associated_data: Buffer): Buffer;
56
+ }
57
+ export declare class PublicKey {
58
+ readonly _nativeHandle: Native.PublicKey;
59
+ private constructor();
60
+ static _fromNativeHandle(handle: Native.PublicKey): PublicKey;
61
+ static deserialize(buf: Buffer): PublicKey;
62
+ compare(other: PublicKey): number;
63
+ serialize(): Buffer;
64
+ getPublicKeyBytes(): Buffer;
65
+ verify(msg: Buffer, sig: Buffer): boolean;
66
+ verifyAlternateIdentity(other: PublicKey, signature: Buffer): boolean;
67
+ }
68
+ export declare class PrivateKey {
69
+ readonly _nativeHandle: Native.PrivateKey;
70
+ private constructor();
71
+ static _fromNativeHandle(handle: Native.PrivateKey): PrivateKey;
72
+ static generate(): PrivateKey;
73
+ static deserialize(buf: Buffer): PrivateKey;
74
+ serialize(): Buffer;
75
+ sign(msg: Buffer): Buffer;
76
+ agree(other_key: PublicKey): Buffer;
77
+ getPublicKey(): PublicKey;
78
+ }
79
+ export declare class IdentityKeyPair {
80
+ readonly publicKey: PublicKey;
81
+ readonly privateKey: PrivateKey;
82
+ constructor(publicKey: PublicKey, privateKey: PrivateKey);
83
+ static generate(): IdentityKeyPair;
84
+ serialize(): Buffer;
85
+ signAlternateIdentity(other: PublicKey): Buffer;
86
+ }
87
+ export declare class PreKeyBundle {
88
+ readonly _nativeHandle: Native.PreKeyBundle;
89
+ private constructor();
90
+ static new(registration_id: number, device_id: number, prekey_id: number | null, prekey: PublicKey | null, signed_prekey_id: number, signed_prekey: PublicKey, signed_prekey_signature: Buffer, identity_key: PublicKey): PreKeyBundle;
91
+ deviceId(): number;
92
+ identityKey(): PublicKey;
93
+ preKeyId(): number | null;
94
+ preKeyPublic(): PublicKey | null;
95
+ registrationId(): number;
96
+ signedPreKeyId(): number;
97
+ signedPreKeyPublic(): PublicKey;
98
+ signedPreKeySignature(): Buffer;
99
+ }
100
+ export declare class PreKeyRecord {
101
+ readonly _nativeHandle: Native.PreKeyRecord;
102
+ private constructor();
103
+ static _fromNativeHandle(nativeHandle: Native.PreKeyRecord): PreKeyRecord;
104
+ static new(id: number, pubKey: PublicKey, privKey: PrivateKey): PreKeyRecord;
105
+ static deserialize(buffer: Buffer): PreKeyRecord;
106
+ id(): number;
107
+ privateKey(): PrivateKey;
108
+ publicKey(): PublicKey;
109
+ serialize(): Buffer;
110
+ }
111
+ export declare class SignedPreKeyRecord {
112
+ readonly _nativeHandle: Native.SignedPreKeyRecord;
113
+ private constructor();
114
+ static _fromNativeHandle(nativeHandle: Native.SignedPreKeyRecord): SignedPreKeyRecord;
115
+ static new(id: number, timestamp: number, pubKey: PublicKey, privKey: PrivateKey, signature: Buffer): SignedPreKeyRecord;
116
+ static deserialize(buffer: Buffer): SignedPreKeyRecord;
117
+ id(): number;
118
+ privateKey(): PrivateKey;
119
+ publicKey(): PublicKey;
120
+ serialize(): Buffer;
121
+ signature(): Buffer;
122
+ timestamp(): number;
123
+ }
124
+ export declare class SignalMessage {
125
+ readonly _nativeHandle: Native.SignalMessage;
126
+ private constructor();
127
+ static _new(messageVersion: number, macKey: Buffer, senderRatchetKey: PublicKey, counter: number, previousCounter: number, ciphertext: Buffer, senderIdentityKey: PublicKey, receiverIdentityKey: PublicKey): SignalMessage;
128
+ static deserialize(buffer: Buffer): SignalMessage;
129
+ body(): Buffer;
130
+ counter(): number;
131
+ messageVersion(): number;
132
+ serialize(): Buffer;
133
+ verifyMac(senderIdentityKey: PublicKey, recevierIdentityKey: PublicKey, macKey: Buffer): boolean;
134
+ }
135
+ export declare class PreKeySignalMessage {
136
+ readonly _nativeHandle: Native.PreKeySignalMessage;
137
+ private constructor();
138
+ static _new(messageVersion: number, registrationId: number, preKeyId: number | null, signedPreKeyId: number, baseKey: PublicKey, identityKey: PublicKey, signalMessage: SignalMessage): PreKeySignalMessage;
139
+ static deserialize(buffer: Buffer): PreKeySignalMessage;
140
+ preKeyId(): number | null;
141
+ registrationId(): number;
142
+ signedPreKeyId(): number;
143
+ version(): number;
144
+ serialize(): Buffer;
145
+ }
146
+ export declare class SessionRecord {
147
+ readonly _nativeHandle: Native.SessionRecord;
148
+ private constructor();
149
+ static _fromNativeHandle(nativeHandle: Native.SessionRecord): SessionRecord;
150
+ static deserialize(buffer: Buffer): SessionRecord;
151
+ serialize(): Buffer;
152
+ archiveCurrentState(): void;
153
+ localRegistrationId(): number;
154
+ remoteRegistrationId(): number;
155
+ hasCurrentState(): boolean;
156
+ /**
157
+ * Returns true if this session was marked as needing a PNI signature and has not received a
158
+ * reply.
159
+ *
160
+ * Precondition: `this.hasCurrentState()`
161
+ */
162
+ needsPniSignature(): boolean;
163
+ /**
164
+ * Marks whether this session needs a PNI signature included in outgoing messages.
165
+ *
166
+ * Precondition: `this.hasCurrentState()`
167
+ */
168
+ setNeedsPniSignature(needsPniSignature: boolean): void;
169
+ currentRatchetKeyMatches(key: PublicKey): boolean;
170
+ }
171
+ export declare class ServerCertificate {
172
+ readonly _nativeHandle: Native.ServerCertificate;
173
+ static _fromNativeHandle(nativeHandle: Native.ServerCertificate): ServerCertificate;
174
+ private constructor();
175
+ static new(keyId: number, serverKey: PublicKey, trustRoot: PrivateKey): ServerCertificate;
176
+ static deserialize(buffer: Buffer): ServerCertificate;
177
+ certificateData(): Buffer;
178
+ key(): PublicKey;
179
+ keyId(): number;
180
+ serialize(): Buffer;
181
+ signature(): Buffer;
182
+ }
183
+ export declare class SenderKeyRecord {
184
+ readonly _nativeHandle: Native.SenderKeyRecord;
185
+ static _fromNativeHandle(nativeHandle: Native.SenderKeyRecord): SenderKeyRecord;
186
+ private constructor();
187
+ static deserialize(buffer: Buffer): SenderKeyRecord;
188
+ serialize(): Buffer;
189
+ }
190
+ export declare class SenderCertificate {
191
+ readonly _nativeHandle: Native.SenderCertificate;
192
+ private constructor();
193
+ static _fromNativeHandle(nativeHandle: Native.SenderCertificate): SenderCertificate;
194
+ static new(senderUuid: string, senderE164: string | null, senderDeviceId: number, senderKey: PublicKey, expiration: number, signerCert: ServerCertificate, signerKey: PrivateKey): SenderCertificate;
195
+ static deserialize(buffer: Buffer): SenderCertificate;
196
+ serialize(): Buffer;
197
+ certificate(): Buffer;
198
+ expiration(): number;
199
+ key(): PublicKey;
200
+ senderE164(): string | null;
201
+ senderUuid(): string;
202
+ senderDeviceId(): number;
203
+ serverCertificate(): ServerCertificate;
204
+ signature(): Buffer;
205
+ validate(trustRoot: PublicKey, time: number): boolean;
206
+ }
207
+ export declare class SenderKeyDistributionMessage {
208
+ readonly _nativeHandle: Native.SenderKeyDistributionMessage;
209
+ private constructor();
210
+ static create(sender: ProtocolAddress, distributionId: Uuid, store: SenderKeyStore): Promise<SenderKeyDistributionMessage>;
211
+ static _new(messageVersion: number, distributionId: Uuid, chainId: number, iteration: number, chainKey: Buffer, pk: PublicKey): SenderKeyDistributionMessage;
212
+ static deserialize(buffer: Buffer): SenderKeyDistributionMessage;
213
+ serialize(): Buffer;
214
+ chainKey(): Buffer;
215
+ iteration(): number;
216
+ chainId(): number;
217
+ distributionId(): Uuid;
218
+ }
219
+ export declare function processSenderKeyDistributionMessage(sender: ProtocolAddress, message: SenderKeyDistributionMessage, store: SenderKeyStore): Promise<void>;
220
+ export declare class SenderKeyMessage {
221
+ readonly _nativeHandle: Native.SenderKeyMessage;
222
+ private constructor();
223
+ static _new(messageVersion: number, distributionId: Uuid, chainId: number, iteration: number, ciphertext: Buffer, pk: PrivateKey): SenderKeyMessage;
224
+ static deserialize(buffer: Buffer): SenderKeyMessage;
225
+ serialize(): Buffer;
226
+ ciphertext(): Buffer;
227
+ iteration(): number;
228
+ chainId(): number;
229
+ distributionId(): Uuid;
230
+ verifySignature(key: PublicKey): boolean;
231
+ }
232
+ export declare class UnidentifiedSenderMessageContent {
233
+ readonly _nativeHandle: Native.UnidentifiedSenderMessageContent;
234
+ private constructor();
235
+ static _fromNativeHandle(nativeHandle: Native.UnidentifiedSenderMessageContent): UnidentifiedSenderMessageContent;
236
+ static new(message: CiphertextMessage, sender: SenderCertificate, contentHint: number, groupId: Buffer | null): UnidentifiedSenderMessageContent;
237
+ static deserialize(buffer: Buffer): UnidentifiedSenderMessageContent;
238
+ serialize(): Buffer;
239
+ contents(): Buffer;
240
+ msgType(): number;
241
+ senderCertificate(): SenderCertificate;
242
+ contentHint(): number;
243
+ groupId(): Buffer | null;
244
+ }
245
+ export declare abstract class SessionStore implements Native.SessionStore {
246
+ _saveSession(name: Native.ProtocolAddress, record: Native.SessionRecord): Promise<void>;
247
+ _getSession(name: Native.ProtocolAddress): Promise<Native.SessionRecord | null>;
248
+ abstract saveSession(name: ProtocolAddress, record: SessionRecord): Promise<void>;
249
+ abstract getSession(name: ProtocolAddress): Promise<SessionRecord | null>;
250
+ abstract getExistingSessions(addresses: ProtocolAddress[]): Promise<SessionRecord[]>;
251
+ }
252
+ export declare abstract class IdentityKeyStore implements Native.IdentityKeyStore {
253
+ _getIdentityKey(): Promise<Native.PrivateKey>;
254
+ _getLocalRegistrationId(): Promise<number>;
255
+ _saveIdentity(name: Native.ProtocolAddress, key: Native.PublicKey): Promise<boolean>;
256
+ _isTrustedIdentity(name: Native.ProtocolAddress, key: Native.PublicKey, sending: boolean): Promise<boolean>;
257
+ _getIdentity(name: Native.ProtocolAddress): Promise<Native.PublicKey | null>;
258
+ abstract getIdentityKey(): Promise<PrivateKey>;
259
+ abstract getLocalRegistrationId(): Promise<number>;
260
+ abstract saveIdentity(name: ProtocolAddress, key: PublicKey): Promise<boolean>;
261
+ abstract isTrustedIdentity(name: ProtocolAddress, key: PublicKey, direction: Direction): Promise<boolean>;
262
+ abstract getIdentity(name: ProtocolAddress): Promise<PublicKey | null>;
263
+ }
264
+ export declare abstract class PreKeyStore implements Native.PreKeyStore {
265
+ _savePreKey(id: number, record: Native.PreKeyRecord): Promise<void>;
266
+ _getPreKey(id: number): Promise<Native.PreKeyRecord>;
267
+ _removePreKey(id: number): Promise<void>;
268
+ abstract savePreKey(id: number, record: PreKeyRecord): Promise<void>;
269
+ abstract getPreKey(id: number): Promise<PreKeyRecord>;
270
+ abstract removePreKey(id: number): Promise<void>;
271
+ }
272
+ export declare abstract class SignedPreKeyStore implements Native.SignedPreKeyStore {
273
+ _saveSignedPreKey(id: number, record: Native.SignedPreKeyRecord): Promise<void>;
274
+ _getSignedPreKey(id: number): Promise<Native.SignedPreKeyRecord>;
275
+ abstract saveSignedPreKey(id: number, record: SignedPreKeyRecord): Promise<void>;
276
+ abstract getSignedPreKey(id: number): Promise<SignedPreKeyRecord>;
277
+ }
278
+ export declare abstract class SenderKeyStore implements Native.SenderKeyStore {
279
+ _saveSenderKey(sender: Native.ProtocolAddress, distributionId: Native.Uuid, record: Native.SenderKeyRecord): Promise<void>;
280
+ _getSenderKey(sender: Native.ProtocolAddress, distributionId: Native.Uuid): Promise<Native.SenderKeyRecord | null>;
281
+ abstract saveSenderKey(sender: ProtocolAddress, distributionId: Uuid, record: SenderKeyRecord): Promise<void>;
282
+ abstract getSenderKey(sender: ProtocolAddress, distributionId: Uuid): Promise<SenderKeyRecord | null>;
283
+ }
284
+ export declare function groupEncrypt(sender: ProtocolAddress, distributionId: Uuid, store: SenderKeyStore, message: Buffer): Promise<CiphertextMessage>;
285
+ export declare function groupDecrypt(sender: ProtocolAddress, store: SenderKeyStore, message: Buffer): Promise<Buffer>;
286
+ export declare class SealedSenderDecryptionResult {
287
+ readonly _nativeHandle: Native.SealedSenderDecryptionResult;
288
+ private constructor();
289
+ static _fromNativeHandle(nativeHandle: Native.SealedSenderDecryptionResult): SealedSenderDecryptionResult;
290
+ message(): Buffer;
291
+ senderE164(): string | null;
292
+ senderUuid(): string;
293
+ deviceId(): number;
294
+ }
295
+ interface CiphertextMessageConvertible {
296
+ asCiphertextMessage(): CiphertextMessage;
297
+ }
298
+ export declare class CiphertextMessage {
299
+ readonly _nativeHandle: Native.CiphertextMessage;
300
+ private constructor();
301
+ static _fromNativeHandle(nativeHandle: Native.CiphertextMessage): CiphertextMessage;
302
+ static from(message: CiphertextMessageConvertible): CiphertextMessage;
303
+ serialize(): Buffer;
304
+ type(): number;
305
+ }
306
+ export declare class PlaintextContent implements CiphertextMessageConvertible {
307
+ readonly _nativeHandle: Native.PlaintextContent;
308
+ private constructor();
309
+ static deserialize(buffer: Buffer): PlaintextContent;
310
+ static from(message: DecryptionErrorMessage): PlaintextContent;
311
+ serialize(): Buffer;
312
+ body(): Buffer;
313
+ asCiphertextMessage(): CiphertextMessage;
314
+ }
315
+ export declare class DecryptionErrorMessage {
316
+ readonly _nativeHandle: Native.DecryptionErrorMessage;
317
+ private constructor();
318
+ static _fromNativeHandle(nativeHandle: Native.DecryptionErrorMessage): DecryptionErrorMessage;
319
+ static forOriginal(bytes: Buffer, type: CiphertextMessageType, timestamp: number, originalSenderDeviceId: number): DecryptionErrorMessage;
320
+ static deserialize(buffer: Buffer): DecryptionErrorMessage;
321
+ static extractFromSerializedBody(buffer: Buffer): DecryptionErrorMessage;
322
+ serialize(): Buffer;
323
+ timestamp(): number;
324
+ deviceId(): number;
325
+ ratchetKey(): PublicKey | undefined;
326
+ }
327
+ export declare function processPreKeyBundle(bundle: PreKeyBundle, address: ProtocolAddress, sessionStore: SessionStore, identityStore: IdentityKeyStore): Promise<void>;
328
+ export declare function signalEncrypt(message: Buffer, address: ProtocolAddress, sessionStore: SessionStore, identityStore: IdentityKeyStore): Promise<CiphertextMessage>;
329
+ export declare function signalDecrypt(message: SignalMessage, address: ProtocolAddress, sessionStore: SessionStore, identityStore: IdentityKeyStore): Promise<Buffer>;
330
+ export declare function signalDecryptPreKey(message: PreKeySignalMessage, address: ProtocolAddress, sessionStore: SessionStore, identityStore: IdentityKeyStore, prekeyStore: PreKeyStore, signedPrekeyStore: SignedPreKeyStore): Promise<Buffer>;
331
+ export declare function sealedSenderEncryptMessage(message: Buffer, address: ProtocolAddress, senderCert: SenderCertificate, sessionStore: SessionStore, identityStore: IdentityKeyStore): Promise<Buffer>;
332
+ export declare function sealedSenderEncrypt(content: UnidentifiedSenderMessageContent, address: ProtocolAddress, identityStore: IdentityKeyStore): Promise<Buffer>;
333
+ export declare function sealedSenderMultiRecipientEncrypt(content: UnidentifiedSenderMessageContent, recipients: ProtocolAddress[], identityStore: IdentityKeyStore, sessionStore: SessionStore): Promise<Buffer>;
334
+ export declare function sealedSenderMultiRecipientMessageForSingleRecipient(message: Buffer): Buffer;
335
+ export declare function sealedSenderDecryptMessage(message: Buffer, trustRoot: PublicKey, timestamp: number, localE164: string | null, localUuid: string, localDeviceId: number, sessionStore: SessionStore, identityStore: IdentityKeyStore, prekeyStore: PreKeyStore, signedPrekeyStore: SignedPreKeyStore): Promise<SealedSenderDecryptionResult>;
336
+ export declare function sealedSenderDecryptToUsmc(message: Buffer, identityStore: IdentityKeyStore): Promise<UnidentifiedSenderMessageContent>;
337
+ export declare class HsmEnclaveClient {
338
+ readonly _nativeHandle: Native.HsmEnclaveClient;
339
+ private constructor();
340
+ static new(public_key: Buffer, code_hashes: Buffer[]): HsmEnclaveClient;
341
+ initialRequest(): Buffer;
342
+ completeHandshake(buffer: Buffer): void;
343
+ establishedSend(buffer: Buffer): Buffer;
344
+ establishedRecv(buffer: Buffer): Buffer;
345
+ }
346
+ export declare enum LogLevel {
347
+ Error = 1,
348
+ Warn = 2,
349
+ Info = 3,
350
+ Debug = 4,
351
+ Trace = 5
352
+ }
353
+ export declare function initLogger(maxLevel: LogLevel, callback: (level: LogLevel, target: string, file: string | null, line: number | null, message: string) => void): void;