///
import type { CipherTypes, JsonPayload } from "../Contracts/Encryption";
import type { ObjectOf } from "../Types";
declare class Encrypter {
protected key: Buffer;
protected cipher: CipherTypes;
private static supportedCiphers;
constructor(key: Buffer, cipher?: CipherTypes);
getKey(): Buffer;
static supported(key: Buffer, cipher: CipherTypes): boolean;
static generateKey(cipher: CipherTypes): Buffer;
encrypt(value: any, needSerialize?: boolean): string;
encryptString(value: string): string;
decrypt(payloadString: string, needUnserialize?: boolean): any;
decryptString(payloadString: string): any;
hash(iv: string, value: string): string;
hashHmac(algoritm: "sha1" | "sha256", data: string, key: Buffer): string;
protected getJsonPayload(payload: string): JsonPayload;
protected isValidPayload(payload: ObjectOf): boolean;
protected isValidMac(payload: JsonPayload): boolean;
static hashEquals(answer: string, guess: string): boolean;
static base64Encode(value: string | Buffer): string;
static base64Decode(value: string): Buffer;
}
export default Encrypter;