///
import * as crypto from 'crypto';
import { Key } from './basic';
import { CryptoCipher, CipherMode, CipherKeySize, HashAlgorithm, KeySize } from './types';
export interface SCryptOptions {
cost?: number;
blockSize?: number;
parallelization?: number;
maxmem?: number;
}
export declare const CIPHER_IV: {
[name: string]: CipherKeySize;
};
export declare class SecretKey extends Key {
export(): Uint8Array;
encrypt(alhorithm: CryptoCipher, data: Uint8Array | Iterable | AsyncIterable, iv: Uint8Array, mode?: CipherMode): Promise>;
decrypt(alhorithm: CryptoCipher, data: Uint8Array | Iterable | AsyncIterable, iv: Uint8Array, mode?: CipherMode): Promise>;
static fromBytes(keydata: Uint8Array): SecretKey;
static createRandom(size: CipherKeySize): Promise;
static createPBKDF2(password: string | Uint8Array, salt: string | Uint8Array, iterations?: number, keylen?: CipherKeySize, digest?: HashAlgorithm): Promise;
static createSCRYPT(password: string | Uint8Array, salt: string | Uint8Array, keylen?: KeySize, options?: crypto.ScryptOptions): Promise;
static keySize(name: CryptoCipher): CipherKeySize;
static ivSize(name: CryptoCipher): number;
static iv(name: CryptoCipher): Promise;
static get ciphers(): CryptoCipher[];
}