diff --git a/git-config/git-config-async-tests.ts b/git-config/git-config-async-tests.ts
new file mode 100644
index 0000000000..66b77fbe08
--- /dev/null
+++ b/git-config/git-config-async-tests.ts
@@ -0,0 +1,11 @@
+///
+
+import gitConfig = require('git-config');
+
+gitConfig(function(err: any, config: Object) {
+ console.log(JSON.stringify(config));
+});
+
+gitConfig('gitconfig', function(err: any, config: Object) {
+ console.log(JSON.stringify(config));
+});
diff --git a/git-config/git-config-async.d.ts b/git-config/git-config-async.d.ts
new file mode 100644
index 0000000000..34ef3a17d6
--- /dev/null
+++ b/git-config/git-config-async.d.ts
@@ -0,0 +1,9 @@
+// Type definitions for git-config
+// Project: https://github.com/eugeneware/git-config
+// Definitions by: Sam Saint-Pettersen
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare module "git-config" {
+ function gitConfig(gitFile_or_cb: any, cb?: any): void; // Asynchronous version.
+ export = gitConfig;
+}
diff --git a/git-config/git-config-tests.ts b/git-config/git-config-tests.ts
new file mode 100644
index 0000000000..9d46c51393
--- /dev/null
+++ b/git-config/git-config-tests.ts
@@ -0,0 +1,9 @@
+///
+
+import gitConfig = require('git-config');
+
+var config: Object = gitConfig.sync(); // => Object if .gitconfig exists.
+console.log(JSON.stringify(config));
+
+config = gitConfig.sync('gitconfig'); // => Object as gitconfig definitely exists.
+console.log(JSON.stringify(config));
diff --git a/git-config/git-config.d.ts b/git-config/git-config.d.ts
new file mode 100644
index 0000000000..0db2f294b4
--- /dev/null
+++ b/git-config/git-config.d.ts
@@ -0,0 +1,8 @@
+// Type definitions for git-config
+// Project: https://github.com/eugeneware/git-config
+// Definitions by: Sam Saint-Pettersen
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare module "git-config" {
+ export function sync(gitFile?: string): Object; // Synchronous version.
+}