import { LagunaObject } from '../../types/index'; import { toBase64, fromBase64 } from './encryption.helper'; type ExpectedType = 'string' | 'object' | 'buffer'; type KeyType = 'client' | 'server' | 'other'; type SessionKeyItem = { key: string; keyType: KeyType; hash?: string; md5?: string; } | undefined; declare let publicJWT: LagunaObject; export declare const Init: (key: string, hash?: LagunaObject, md5?: LagunaObject) => Promise<{ hash: any; md5: any; }>; export declare const InitMultiple: (keys: SessionKeyItem[]) => Promise<{ key: string; keyType: KeyType; hash?: string; md5?: string; }[]>; export declare const CreateKey: (key: string, keyType: KeyType) => Promise<{ key: string; keyType: KeyType; hash: any; md5: any; }>; export declare const Encrypt: (value: LagunaObject, expectedType?: ExpectedType, keyType?: KeyType) => Promise; export declare const Decrypt: (value: string, expectedType?: ExpectedType, keyType?: KeyType) => Promise; export declare const EncryptBinary: (value: ArrayBuffer) => Promise<{ encryptedBuffer: ArrayBuffer; hash: string; md5: string; }>; export declare const DecryptBinary: (value: ArrayBuffer, hash: string) => Promise; export declare const Transform: (value: LagunaObject) => Promise; export declare const RandomID: () => string; export declare const HashString: (hashString: LagunaObject, iterations?: number) => Promise; export declare const CompareHash: (storedHash: string, hashString: LagunaObject) => Promise; export declare const EncryptionInitialized: () => boolean; export declare const awaitEncryption: () => Promise; export { toBase64, fromBase64, publicJWT };