diff --git a/password-hash/password-hash-tests.ts b/password-hash/password-hash-tests.ts
new file mode 100644
index 000000000..a36db4e8b
--- /dev/null
+++ b/password-hash/password-hash-tests.ts
@@ -0,0 +1,18 @@
+///
+'use strict';
+
+import {generate, verify, isHashed} from 'password-hash';
+
+let password = 'raw-password';
+let hashed: string;
+
+hashed = generate(password);
+hashed = generate(password, {algorithm: 'sha256'});
+hashed = generate(password, {saltLength: 10});
+hashed = generate(password, {iterations: 11});
+hashed = generate(password, {algorithm: 'sha512', saltLength: 9, iterations: 11});
+
+let isOk: boolean;
+
+isOk = verify(password, hashed);
+isOk = isHashed(password);
diff --git a/password-hash/password-hash.d.ts b/password-hash/password-hash.d.ts
new file mode 100644
index 000000000..d2a90abdb
--- /dev/null
+++ b/password-hash/password-hash.d.ts
@@ -0,0 +1,16 @@
+// Type definitions for password-hash 1.2.x
+// Project: https://github.com/davidwood/node-password-hash
+// Definitions by: TANAKA Koichi
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+declare module 'password-hash' {
+ export function generate(password: string, options?: Options): string;
+ export function verify(password: string, hashedPassword: string): boolean;
+ export function isHashed(password: string): boolean;
+
+ export interface Options {
+ algorithm?: string;
+ saltLength?: number;
+ iterations?: number;
+ }
+}