diff --git a/convict/convict-tests.ts b/convict/convict-tests.ts
new file mode 100644
index 0000000000..a36b234802
--- /dev/null
+++ b/convict/convict-tests.ts
@@ -0,0 +1,58 @@
+///
+///
+
+import convict = require('convict');
+import validator = require('validator');
+
+// define a schema
+
+var conf = convict({
+ env: {
+ doc: 'The applicaton environment.',
+ format: ['production', 'development', 'test'],
+ default: 'development',
+ env: 'NODE_ENV',
+ arg: 'node-env',
+ },
+ ip: {
+ doc: 'The IP address to bind.',
+ format: 'ipaddress',
+ default: '127.0.0.1',
+ env: 'IP_ADDRESS',
+ },
+ port: {
+ doc: 'The port to bind.',
+ format: 'port',
+ default: 0,
+ env: 'PORT',
+ arg: 'port',
+ },
+ key: {
+ doc: "API key",
+ format: (val: string) => validator.isUUID(val),
+ default: '01527E56-8431-11E4-AF91-47B661C210CA'
+ },
+});
+
+
+// load environment dependent configuration
+
+var env = conf.get('env');
+conf.loadFile('./config/' + env + '.json');
+conf.loadFile(['./configs/always.json', './configs/sometimes.json']);
+
+// perform validation
+
+conf.validate();
+
+var port: number = conf.default('port');
+
+if (conf.has('key')) {
+ conf.set('the.awesome', true);
+ conf.load({
+ thing: {
+ a: 'b'
+ }
+ });
+}
+// vim:et:sw=2:ts=2
diff --git a/convict/convict.d.ts b/convict/convict.d.ts
new file mode 100644
index 0000000000..dc2b8e82bf
--- /dev/null
+++ b/convict/convict.d.ts
@@ -0,0 +1,33 @@
+// Type definitions for node-convict v0.6.0
+// Project: https://github.com/mozilla/node-convict
+// Definitions by: Wim Looman
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare module "convict" {
+ function convict(schema: convict.Schema): convict.Config;
+
+ module convict {
+ interface Schema {
+ [name: string]: {
+ default: any;
+ doc?: string;
+ format?: any;
+ env?: string;
+ arg?: string;
+ };
+ }
+
+ interface Config {
+ get(name: string): any;
+ default(name: string): any;
+ has(name: string): boolean;
+ set(name: string, value: any): void;
+ load(conf: Object): void;
+ loadFile(file: string): void;
+ loadFile(files: string[]): void;
+ validate(): void;
+ }
+ }
+
+ export = convict;
+}