import { proto } from "../../WAProto"; type DecryptGroupSignalOpts = { group: string; authorJid: string; msg: Uint8Array; }; type ProcessSenderKeyDistributionMessageOpts = { item: proto.Message.ISenderKeyDistributionMessage; authorJid: string; }; type DecryptSignalProtoOpts = { jid: string; type: "pkmsg" | "msg"; ciphertext: Uint8Array; }; type EncryptMessageOpts = { jid: string; data: Uint8Array; }; type EncryptGroupMessageOpts = { group: string; data: Uint8Array; meId: string; }; type PreKey = { keyId: number; publicKey: Uint8Array; }; type SignedPreKey = PreKey & { signature: Uint8Array; }; type E2ESession = { registrationId: number; identityKey: Uint8Array; signedPreKey: SignedPreKey; preKey: PreKey; }; type E2ESessionOpts = { jid: string; session: E2ESession; }; export type SignalRepository = { decryptGroupMessage(opts: DecryptGroupSignalOpts): Promise; processSenderKeyDistributionMessage( opts: ProcessSenderKeyDistributionMessageOpts, ): Promise; decryptMessage(opts: DecryptSignalProtoOpts): Promise; encryptMessage(opts: EncryptMessageOpts): Promise<{ type: "pkmsg" | "msg"; ciphertext: Uint8Array; }>; encryptGroupMessage(opts: EncryptGroupMessageOpts): Promise<{ senderKeyDistributionMessage: Uint8Array; ciphertext: Uint8Array; }>; injectE2ESession(opts: E2ESessionOpts): Promise; jidToSignalProtocolAddress(jid: string): string; }; export {};