import type { CryptoSecretKey, CryptoPublicKey, OutputOptions } from "./types.js"; /** * Sign a message. * * The signature can be encoded * * * as plain string, with the value encoded, by default, in base64 or, on request, in base58 * * as a Multibase string, with the value encoded, by default, in base58 or, on request, in base64 * * Default for Multikeys is multibase with base58; plain string with base64 otherwise. * * @param message * @param userKeys - the private/public key pair * @param options - choice between signature result in multibase or plain, and between base64 or base58 encoding * @returns - signature in plain or multibase encoded format */ export declare function sign(message: string, userKeys: CryptoSecretKey, options?: OutputOptions): Promise; /** * Verify a signature. * * The option should be identical to the value used (if any) for signature, except that, * if the signature option refers to multibase, the values of encoding is ignored (and is deduced from the * multibase itself). * * @param message * @param signature * @param userKey * @param options - choice between signature result in multibase or plain, and between base64 or base58 encoding. */ export declare function verify(message: string, signature: string, userKey: CryptoPublicKey, options?: OutputOptions): Promise; /** * Encrypt a message. * * The generated ciphertext can be encoded * * * as plain string, with the value encoded, by default, in base64 or, on request, in base58. * * as a Multibase string, with the value encoded, by default, in base58 or, on request, in base64. * * Default is plain string with base64. * * @param message * @param userKey * @param options - choice between signature result in multibase or plain, and between base64 or base58 encoding * @return - ciphertext in plain or multibase encoded format */ export declare function encrypt(message: string, userKey: CryptoPublicKey, options?: OutputOptions): Promise; /** * Decrypt a ciphertext. * * The option should be identical to the value used (if any) for signature, except that, * if the signature option refers to multibase, the values of encoding is ignored (and is deduced from the * multibase itself). * * @param ciphertext * @param userKey * @param options - choice between signature result in multibase or plain, and between base64 or base58 encoding. */ export declare function decrypt(ciphertext: string, userKey: CryptoSecretKey, options?: OutputOptions): Promise; //# sourceMappingURL=crypto.d.ts.map