import { JSEncryptRSAKey } from "./JSEncryptRSAKey"; 
 | 
export interface IJSEncryptOptions { 
 | 
    default_key_size?: string; 
 | 
    default_public_exponent?: string; 
 | 
    log?: boolean; 
 | 
} 
 | 
/** 
 | 
 * 
 | 
 * @param {Object} [options = {}] - An object to customize JSEncrypt behaviour 
 | 
 * possible parameters are: 
 | 
 * - default_key_size        {number}  default: 1024 the key size in bit 
 | 
 * - default_public_exponent {string}  default: '010001' the hexadecimal representation of the public exponent 
 | 
 * - log                     {boolean} default: false whether log warn/error or not 
 | 
 * @constructor 
 | 
 */ 
 | 
export declare class JSEncrypt { 
 | 
    constructor(options?: IJSEncryptOptions); 
 | 
    private default_key_size; 
 | 
    private default_public_exponent; 
 | 
    private log; 
 | 
    private key; 
 | 
    static version: string; 
 | 
    /** 
 | 
     * Method to set the rsa key parameter (one method is enough to set both the public 
 | 
     * and the private key, since the private key contains the public key paramenters) 
 | 
     * Log a warning if logs are enabled 
 | 
     * @param {Object|string} key the pem encoded string or an object (with or without header/footer) 
 | 
     * @public 
 | 
     */ 
 | 
    setKey(key: string): void; 
 | 
    /** 
 | 
     * Proxy method for setKey, for api compatibility 
 | 
     * @see setKey 
 | 
     * @public 
 | 
     */ 
 | 
    setPrivateKey(privkey: string): void; 
 | 
    /** 
 | 
     * Proxy method for setKey, for api compatibility 
 | 
     * @see setKey 
 | 
     * @public 
 | 
     */ 
 | 
    setPublicKey(pubkey: string): void; 
 | 
    /** 
 | 
     * Proxy method for RSAKey object's decrypt, decrypt the string using the private 
 | 
     * components of the rsa key object. Note that if the object was not set will be created 
 | 
     * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor 
 | 
     * @param {string} str base64 encoded crypted string to decrypt 
 | 
     * @return {string} the decrypted string 
 | 
     * @public 
 | 
     */ 
 | 
    decrypt(str: string): string | false; 
 | 
    /** 
 | 
     * Proxy method for RSAKey object's encrypt, encrypt the string using the public 
 | 
     * components of the rsa key object. Note that if the object was not set will be created 
 | 
     * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor 
 | 
     * @param {string} str the string to encrypt 
 | 
     * @return {string} the encrypted string encoded in base64 
 | 
     * @public 
 | 
     */ 
 | 
    encrypt(str: string): string | false; 
 | 
    /** 
 | 
     * Proxy method for RSAKey object's sign. 
 | 
     * @param {string} str the string to sign 
 | 
     * @param {function} digestMethod hash method 
 | 
     * @param {string} digestName the name of the hash algorithm 
 | 
     * @return {string} the signature encoded in base64 
 | 
     * @public 
 | 
     */ 
 | 
    sign(str: string, digestMethod: (str: string) => string, digestName: string): string | false; 
 | 
    /** 
 | 
     * Proxy method for RSAKey object's verify. 
 | 
     * @param {string} str the string to verify 
 | 
     * @param {string} signature the signature encoded in base64 to compare the string to 
 | 
     * @param {function} digestMethod hash method 
 | 
     * @return {boolean} whether the data and signature match 
 | 
     * @public 
 | 
     */ 
 | 
    verify(str: string, signature: string, digestMethod: (str: string) => string): boolean; 
 | 
    /** 
 | 
     * Getter for the current JSEncryptRSAKey object. If it doesn't exists a new object 
 | 
     * will be created and returned 
 | 
     * @param {callback} [cb] the callback to be called if we want the key to be generated 
 | 
     * in an async fashion 
 | 
     * @returns {JSEncryptRSAKey} the JSEncryptRSAKey object 
 | 
     * @public 
 | 
     */ 
 | 
    getKey(cb?: () => void): JSEncryptRSAKey; 
 | 
    /** 
 | 
     * Returns the pem encoded representation of the private key 
 | 
     * If the key doesn't exists a new key will be created 
 | 
     * @returns {string} pem encoded representation of the private key WITH header and footer 
 | 
     * @public 
 | 
     */ 
 | 
    getPrivateKey(): string; 
 | 
    /** 
 | 
     * Returns the pem encoded representation of the private key 
 | 
     * If the key doesn't exists a new key will be created 
 | 
     * @returns {string} pem encoded representation of the private key WITHOUT header and footer 
 | 
     * @public 
 | 
     */ 
 | 
    getPrivateKeyB64(): string; 
 | 
    /** 
 | 
     * Returns the pem encoded representation of the public key 
 | 
     * If the key doesn't exists a new key will be created 
 | 
     * @returns {string} pem encoded representation of the public key WITH header and footer 
 | 
     * @public 
 | 
     */ 
 | 
    getPublicKey(): string; 
 | 
    /** 
 | 
     * Returns the pem encoded representation of the public key 
 | 
     * If the key doesn't exists a new key will be created 
 | 
     * @returns {string} pem encoded representation of the public key WITHOUT header and footer 
 | 
     * @public 
 | 
     */ 
 | 
    getPublicKeyB64(): string; 
 | 
} 
 |