diff --git a/config/config-tests.ts b/config/config-tests.ts
new file mode 100644
index 000000000..2f53b76d6
--- /dev/null
+++ b/config/config-tests.ts
@@ -0,0 +1,30 @@
+///
+
+import config = require('config');
+
+var value1: string = config.get("");
+var value2: any = config.get("");
+
+var has: boolean = config.has("");
+
+// util tests:
+var extended1: any = config.util.extendDeep({}, {});
+var extended2: any = config.util.extendDeep({}, {}, 20);
+
+var clone1: any = config.util.cloneDeep({});
+var clone2: any = config.util.cloneDeep({}, 20);
+
+var equals1: boolean = config.util.equalsDeep({}, {});
+var equals2: boolean = config.util.equalsDeep({}, {}, 20);
+
+var diff1: any = config.util.diffDeep({}, {});
+var diff2: any = config.util.diffDeep({}, {}, 20);
+
+var immutable1: any = config.util.makeImmutable({});
+var immutable2: any = config.util.makeImmutable({}, "");
+var immutable3: any = config.util.makeImmutable({}, "", "");
+
+var hidden1: any = config.util.makeHidden({}, "");
+var hidden2: any = config.util.makeHidden({}, "", "");
+
+var env: string = config.util.getEnv("");
diff --git a/config/config.d.ts b/config/config.d.ts
new file mode 100644
index 000000000..c37eddae9
--- /dev/null
+++ b/config/config.d.ts
@@ -0,0 +1,34 @@
+// Type definitions for node-config
+// Project: https://github.com/lorenwest/node-config
+// Definitions by: Roman Korneev
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare module "config" {
+ // see https://github.com/lorenwest/node-config/wiki/Using-Config-Utilities
+ interface IUtil {
+ // Extend an object (and any object it contains) with one or more objects (and objects contained in them).
+ extendDeep(mergeInto: any, mergeFrom: any, depth?: number): any;
+
+ // Return a deep copy of the specified object.
+ cloneDeep(copyFrom: any, depth?: number): any;
+
+ // Return true if two objects have equal contents.
+ equalsDeep(object1: any, object2: any, dept?: number): boolean;
+
+ // Returns an object containing all elements that differ between two objects.
+ diffDeep(object1: any, object2: any, depth?: number): any;
+
+ // Make a javascript object property immutable (assuring it cannot be changed from the current value).
+ makeImmutable(object: any, propertyName?: string, propertyValue?: string): any;
+
+ // Make an object property hidden so it doesn't appear when enumerating elements of the object.
+ makeHidden(object: any, propertyName: string, propertyValue?: string): any;
+
+ // Get the current value of a config environment variable
+ getEnv(varName: string): string;
+ }
+
+ export function get(setting: string): T;
+ export function has(setting: string): boolean;
+ export var util: IUtil;
+}