///
import { HashInput } from './hash-fn';
import { IHasher, IInternalHash, IHasherDigestOptions } from '../base/index';
import { Transform, TransformCallback } from 'stream';
import { IBaseHashOptions } from '../base/hash-fn';
import { NodeHashReader } from './hash-reader';
export interface INodeHash extends IHasher {
/**
* @inheritdoc
* @override
*/
update(data: HashInput, encoding?: BufferEncoding): this;
/**
* @inheritdoc
* @override
*/
digest(options?: IBaseHashOptions): Buffer;
/**
* Returns a digest of the hash with the given set of hash options.
*/
digest(encoding: undefined, options: IBaseHashOptions): Buffer;
/**
* Returns a digest of the hash with the given encoding.
*/
digest(encoding: BufferEncoding, options?: IBaseHashOptions): string;
}
/**
* @inheritdoc
*/
export declare class NodeHash extends Transform implements IHasher {
private readonly hash;
constructor(implementation: IInternalHash, getReader: (r: Reader) => NodeHashReader);
/**
* @reader
*/
reader(options?: {
dispose?: boolean;
}): NodeHashReader;
/**
* @inheritdoc
*/
update(data: HashInput, encoding?: BufferEncoding): this;
/**
* @inheritdoc
*/
digest(encoding?: IHasherDigestOptions): Buffer;
digest(encoding: undefined, options: IHasherDigestOptions): Buffer;
digest(encoding: BufferEncoding, options?: IHasherDigestOptions): string;
/**
* @inheritdoc
*/
dispose(): void;
/**
* @inheritdoc
* @hidden
*/
_transform(chunk: Buffer | string, encoding: string, callback: TransformCallback): void;
/**
* @inheritdoc
* @hidden
*/
_flush(callback: TransformCallback): void;
}
/**
* A Node.js crypto-like createHash method.
*/
export declare const createHash: () => NodeHash;
/**
* Construct a new Hasher for the keyed hash function.
*/
export declare const createKeyed: (key: Buffer) => NodeHash;
/**
* Construct a new Hasher for the key derivation function.
*/
export declare const createDeriveKey: (context: string) => NodeHash;