import * as Crypto from './Crypto'; import { DocUrl } from './Misc'; import { ToBackendQueryMsg } from './RepoMsg'; export declare type RequestFn = (msg: ToBackendQueryMsg, cb: (msg: any) => void) => void; export declare class CryptoClient { request: RequestFn; constructor(request: RequestFn); sign(url: DocUrl, message: T): Promise>; verify(url: DocUrl, signedMessage: Crypto.SignedMessage): Promise; /** * Helper function to extract the message from a SignedMessage. * Verifies the signature and returns the message if valid, otherwise rejects. */ verifiedMessage(url: DocUrl, signedMessage: Crypto.SignedMessage): Promise; box(senderSecretKey: Crypto.EncodedSecretEncryptionKey, recipientPublicKey: Crypto.EncodedPublicEncryptionKey, message: string): Promise; openBox(senderPublicKey: Crypto.EncodedPublicEncryptionKey, recipientSecretKey: Crypto.EncodedSecretEncryptionKey, box: Crypto.Box): Promise; sealedBox(publicKey: Crypto.EncodedPublicEncryptionKey, message: string): Promise; openSealedBox(keyPair: Crypto.EncodedEncryptionKeyPair, sealedBox: Crypto.EncodedSealedBoxCiphertext): Promise; encryptionKeyPair(): Promise; }