///
import { AsymmetricEncryptedData, AsymmetricEncryptedDataString, EciesOptions, SymmetricCypherType } from './asymmetricModels';
import { PrivateKey, PublicKey, Signature } from '../models';
export * from './asymmetricModels';
/** default options for ECIES Assymetric encryption (encrypt with public key, decrypt with private key) */
export declare const DefaultEciesOptions: any;
export declare const emptyBuffer: Buffer;
/** compose the right length of empty buffer for a specific cypherType */
export declare function emptyBufferForIv(symmetricCypherType: SymmetricCypherType): Buffer;
/** Verifies that the value is a valid, stringified JSON Encrypted object */
export declare function isAsymEncryptedDataString(value: string): value is AsymmetricEncryptedDataString;
/** Ensures that the value comforms to a well-formed, stringified JSON Encrypted Object */
export declare function toAsymEncryptedDataString(value: any): AsymmetricEncryptedDataString;
/** ECDH encryption using publicKey */
export declare function encryptWithPublicKey(publicKey: string, // hex string
plainText: string, options?: EciesOptions): AsymmetricEncryptedData;
/** ECDH decryption using privateKey */
export declare function decryptWithPrivateKey(encrypted: AsymmetricEncryptedData, privateKey: string, // hex string
options?: EciesOptions): string;
/** Signs a string (utf8) using the private key (hex string) and returns a signature (hex string) */
export declare function sign(value: string, privateKey: PrivateKey): Promise;
/** Verifies the signature for the string and returns true if verification succeeded */
export declare function verifySignedWithPublicKey(value: string, publicKey: PublicKey, signature: Signature): boolean;