| declare var hash: Hash; | 
 |  | 
 | declare module "hash.js" { | 
 |     export = hash; | 
 | } | 
 |  | 
 | interface BlockHash<T> { | 
 |     hmacStrength: number | 
 |     padLength: number | 
 |     endian: 'big' | 'little' | 
 | } | 
 |  | 
 | interface MessageDigest<T> { | 
 |     blockSize: number | 
 |     outSize: number | 
 |     update(msg: any, enc?: 'hex'): T | 
 |     digest(): number[] | 
 |     digest(enc: 'hex'): string | 
 | } | 
 |  | 
 | interface Hash { | 
 |     hmac: HmacConstructor | 
 |     ripemd: RipemdSet | 
 |     ripemd160: Ripemd160Constructor | 
 |     sha: ShaSet | 
 |     sha1: Sha1Constructor | 
 |     sha224: Sha224Constructor | 
 |     sha256: Sha256Constructor | 
 |     sha384: Sha384Constructor | 
 |     sha512: Sha512Constructor | 
 |     utils: Utils | 
 | } | 
 |  | 
 | interface Utils { | 
 |     toArray(msg: any, enc: 'hex'): Array<number> | 
 |     toHex(msg: any): string | 
 | } | 
 |  | 
 | interface RipemdSet { | 
 |     ripemd160: Ripemd160Constructor | 
 | } | 
 |  | 
 | interface ShaSet { | 
 |     sha1: Sha1Constructor | 
 |     sha224: Sha224Constructor | 
 |     sha256: Sha256Constructor | 
 |     sha384: Sha384Constructor | 
 |     sha512: Sha512Constructor | 
 | } | 
 |  | 
 | interface HmacConstructor { (hash: BlockHash<any>, key: any, enc?: 'hex'): Hmac } | 
 | interface Ripemd160Constructor { (): Ripemd160 } | 
 | interface Sha1Constructor { (): Sha1; } | 
 | interface Sha224Constructor { (): Sha224; } | 
 | interface Sha256Constructor { (): Sha256; } | 
 | interface Sha384Constructor { (): Sha384; } | 
 | interface Sha512Constructor { (): Sha512; } | 
 |  | 
 | interface Hmac extends MessageDigest<Hmac> { | 
 |     blockSize: 512 | 
 |     outSize: 160 | 
 | } | 
 |  | 
 | interface Ripemd160 extends BlockHash<Ripemd160>, MessageDigest<Ripemd160> { | 
 |     blockSize: 512 | 
 |     hmacStrength: 192 | 
 |     outSize: 160 | 
 |     padLength: 64 | 
 |     endian: 'little' | 
 | } | 
 |  | 
 | interface Sha1 extends BlockHash<Sha1>, MessageDigest<Sha1> { | 
 |     blockSize: 512 | 
 |     hmacStrength: 80 | 
 |     outSize: 160 | 
 |     padLength: 64 | 
 |     endian: 'big' | 
 | } | 
 | interface Sha224 extends BlockHash<Sha224>, MessageDigest<Sha224> { | 
 |     blockSize: 512 | 
 |     hmacStrength: 192 | 
 |     outSize: 224 | 
 |     padLength: 64 | 
 |     endian: 'big' | 
 | } | 
 | interface Sha256 extends BlockHash<Sha256>, MessageDigest<Sha256> { | 
 |     blockSize: 512 | 
 |     hmacStrength: 192 | 
 |     outSize: 256 | 
 |     padLength: 64 | 
 |     endian: 'big' | 
 | } | 
 | interface Sha384 extends BlockHash<Sha384>, MessageDigest<Sha384> { | 
 |     blockSize: 1024 | 
 |     hmacStrength: 192 | 
 |     outSize: 384 | 
 |     padLength: 128 | 
 |     endian: 'big' | 
 | } | 
 | interface Sha512 extends BlockHash<Sha512>, MessageDigest<Sha512> { | 
 |     blockSize: 1024 | 
 |     hmacStrength: 192 | 
 |     outSize: 512 | 
 |     padLength: 128 | 
 |     endian: 'big' | 
 | } |