/********************************************************************
 * @author:      Kaven
 * @email:       kaven@wuwenkai.com
 * @website:     http://blog.kaven.xyz
 * @file:        [Kaven-Utils] /src/KavenRSA.ts
 * @create:      2020-07-10 13:39:53.988
 * @modify:      2024-11-01 10:48:07.329
 * @version:     5.4.5
 * @times:       29
 * @lines:       232
 * @copyright:   Copyright © 2020-2024 Kaven. All Rights Reserved.
 * @description: [description]
 * @license:     [license]
 ********************************************************************/
/**
 * crypto wrap
 * @since 2.0.8
 * @version 2020-07-10
 */
export declare class KavenRSA {
    readonly PublicKey: string | undefined;
    readonly PrivateKey: string | undefined;
    constructor(publicKey?: string, privateKey?: string);
    static Create(bits?: number, exponent?: number): KavenRSA;
    Encrypt(data: Buffer, padding?: number, oaepHash?: string): NonSharedBuffer;
    Decrypt(data: Buffer, padding?: number, oaepHash?: string): NonSharedBuffer;
    Sign(data: Buffer, algorithm?: string, padding?: number, saltLength?: number): NonSharedBuffer;
    Verify(data: Buffer, signature: Buffer, algorithm?: string, padding?: number, saltLength?: number): boolean;
    EncryptToString<T>(data: T, encoding?: BufferEncoding, padding?: number, oaepHash?: string): string;
    DecryptFromString<T = unknown>(data: string, encoding?: BufferEncoding, padding?: number, oaepHash?: string): T;
    SignToString<T>(data: T, encoding?: BufferEncoding, algorithm?: string, padding?: number, saltLength?: number): string;
    VerifyFromString<T>(data: T, signature: string, encoding?: BufferEncoding, algorithm?: string, padding?: number, saltLength?: number): boolean;
    EncryptBigData<T>(data: T, encoding?: BufferEncoding, padding?: number, oaepHash?: string): string;
    DecryptBigData<T = unknown>(data: string, encoding?: BufferEncoding, padding?: number, oaepHash?: string): T;
}
